Softgate Limited

株式会社ソフトゲート コーポレートブログ

ウェブAPI開発コースの発注ライブラリ

おかげさまで既に数名の方からウェブAPI開発コースに参加お申し込みをいただいております。

私の方もコンテンツ作りに着手するために、具体的なカリキュラムを詰めているところです。

先日のブログでは、bitFlyer の BOT を作成していくとご説明しましたが、その点について若干補足させてください。

いくら少額で試験運用してもらうとはいえ、いきなり bitFlyer FX のリアル口座でプログラムを動かすのは抵抗がある方もいらっしゃるかもしれません。

そこで、基本スクリプト*1では、こちらでご用意した共通クライアントライブラリを使ってBOTを記述していただこうと思います。

共通クライアントライブラリは、いまのところ

  • bitFlyer FX
  • Liquid by Quoine (レバレッジ取引)
  • BitMEX
  • Binance FX

に対応したものをご提供する予定です。

共通クライアントとは、簡単に言えば、ほぼ同じようなプログラム記述で複数の取引所に対して発注ができるライブラリです。

したがって、いきなり bitFlyer FX や Liquid のリアル口座で取引したくない受講者は、まず BitMEX や Binance のテストネットのデモ口座で開発/実験をし、リアル口座に移行する自信が付いたら、ちょこっと(初期化部分と API キーなどを)変更するだけで bitFlyer FX や Liquid 用の BOT に変更することができるわけです。*2

当初、基本スクリプトのカリキュラムが詰め込み気味になることを危惧していましたが、クライアントライブラリを使っていただけば、比較的容易に取引が出来るところまで実装できますし、モチベーションも維持しやすいと思います。

一方、発展スクリプトにチャレンジしている受講者にとっては、共通クライアントライブラリはサンプルプログラムにもなります。

これをサンプルとして参考にしつつ、同等のものをご自分で実装していただくというのが、発展スクリプトのテーマです。

と、こんな感じで、現在カリキュラムの最終調整をしておりますので、8週間のカリキュラムが確定しましたら、また本ブログでご紹介いたします。

*1:基本スクリプトと発展スクリプトについては前回のブログを参照

*2:誤解の無いように言っておきますと、仮想通貨取引所および各APIはクセが強いので、細かいことをやるには取引所ごとの特殊な処理が必要となり、高頻度になるほど共通クライアントライブラリでは役不足になっていきます

ウェブ API 開発コースのサービス内容

先日アナウンスした「ウェブ API 開発」コースですが、どうやらプログラミングの経験をお持ちの方々にも興味を持っていただいているようです。

一方で、初心者歓迎のコースでもありますので、初心者と経験者どちらにもご満足いただくためにはどうしたら良いか、いろいろと検討しました。

基本スクリプトと発展スクリプト

検討の結果、(苦肉の策で?)二種類のスクリプトを並行開発していくという、特殊なスタイルを採用しようと思います。

  • 基本スクリプト
  • 発展スクリプト

いずれも、だいたい同じ時期に、データ取得/発注/注文管理といった機能を実装していき、最終的には bitFlyer で取引を行う BOT スクリプトが出来上がります。

ただし、基本スクリプトの方はシングルスレッドで HTTP のみの実装であるのに対して、発展スクリプトはデータ受信や約定判定に WebSocket も使用するなど、全ての段階において基本スクリプトより高度なことをやっていきます。

初心者の方は、まず一巡目の学習では、発展スクリプトに関する講義や課題はスキップして、基本スクリプトに集中していただけば十分です。

それが終わったら、二巡目の学習に取りかかり、是非、発展スクリプトの開発にもチャレンジしてほしいと思います。

経験者の方は、基本スクリプトはさくっと作ってしまっても良いですし、必要がなければスキップして、発展スクリプトだけに取り組んでも結構です。

発展スクリプトの流れでは、他の取引所とか FX 業者の API に対応したスクリプト開発などの課題を多めに出すつもりなので、経験者の方々も退屈している余裕はないでしょう。^^;

コンテンツコースとトレーニングコース

それから、受講される方々にはいろいろな時間的制約があると思うので、受講形態も二種類ご用意します。

  • コンテンツコース
  • トレーニングコース

コンテンツコースは、その名の通り、講義動画や PDF ファイルなどの学習用コンテンツを提供し、各自のペースで好きなように学習を進めていただきます。

それに対して、トレーニングコースは、二ヶ月間にわたって開催される期間の決まったコースになります。

基本的には、コンテンツコースと同様に、学習コンテンツを参考に各自で学習してもらうのですが、可能な限り、講師が指示するペースで学習と課題チャレンジをこなしていただきます。

その学習ペースに合わせて、定期的にライブウェビナーを開催し、課題の答え合わせやプログラムの組み方/改善方法のアドバイスをしていきます。

プログラミング未経験の方は、基本スクリプトを開発する一巡目の学習で二ヶ月が終わり、二巡目の学習は動画を見ながらの独学になりますが、ご質問はフォーラムにて受け付けています。

価格設定と提供時期

さて、サービスの提供時期に関してですが、第一回目のトレーニングコースは、2020年の年明けとともにスタートし、2月末まで開催します。

コンテンツコースは学習コンテンツがすべて揃ってからでないとご提供できませんので、第一回目のトレーニングコース終了後、概ね 2020 年 3 月中旬からご提供が可能になると思います。

弊社のセミナーの中で入門編という位置付けのため、当初は価格を抑え気味にするつもりでしたが、いろいろ盛り込んで内容的にかなりのボリュームになったため、

  • コンテンツコース - 220,000 円(税別)
  • トレーニングコース - 350,000 円(税別)

という価格設定にさせていただこうと思います。

ただし、第一回目のトレーニングコースだけは、開始時点ですべてのコンテンツが揃っていないことと、初回から参加してくださった方々への感謝を込めて、 240,000 円(税別)にてご提供いたします。

参加を検討してくださっている方は、以下の商品ページなどもご覧下さい。提供されるサービスなどについて詳しく記述しています。

ストアでは、既に購入が可能な状態になっており、お支払いは PayPal や Stripe を通じたクレジットカード払いや銀行振込に対応しています。

開催までまだ間があり、現時点ではフォーラムやコンテンツの準備も整っておりませんが、参加を決めて下さった方はご購入いただくことができます。

ご購入がフォーラムアカウントと紐付きますので、フォーラムアカウント作成後にご購入下さいますようお願いします。

来月くらいから、完成したコンテンツを順次ご覧いただけるようにしつつ、Discord などのご用意を進めていく予定です。

本コースに関するご質問などは弊社ウェブサイトのお問い合わせフォームからお送り下さい。

ウェブ API 開発コースの概要

前回宣言した通り、トレードをテーマとしたプログラミング/技術のトレーニングコースやセミナーを来年からご提供していくつもりです。

その中で、最初に開催を予定しているのが、入門編という位置付けの「ウェブ API 開発」トレーニングコースです。

今回は、現在決まっている範囲で、「ウェブ API 開発」コースのご紹介をしたいと思います。

・・・が、このコースのコンセプトやプログラミング教育について考えたことなど、いろいろと書いていたら、とても長文になってしまいました。

熱い想いが溢れたということで、何卒暖かく見守ってくださいませ。(・・)(..)

概要

「ウェブ API 開発」コースは、FX 業者や仮想通貨の取引所が提供するウェブ API を使って

  • 裁量支援の半自動化プログラム
  • 自動売買プログラム

などを自分で思い通りに開発できる力を身に付けるためのトレーニングコースで、プログラミング言語としては Python を使用します。

「ウェブ API 開発」というと抽象的ですが、一言で言えば、このコースは、(そこそこ)高頻度に取引をする bitFlyer の仮想通貨 BOT を作る過程を通じてプログラミングおよび技術的知識の習得を目指す、トレーダーのためのプログラミング教育コースです。

価格取得や発注、注文/ポジション管理など、トレードに必要な一通りの処理をすべて実装することで、自動売買プログラムでも半自動化プログラムでも思いのままに作れるようになることを目指します。

また、Python を知らない方でも受講できるようにカリキュラムを組んでおり、プログラミング初心者やプログラミング学習で一度挫折したような方にも是非受講して頂きたいと思っています。

このコースの特徴としては

  • サンプルコードを示して終わりではなく、原理を理解して自分でプログラムを作ることを重視
  • コミュニティフォーラムでの学習サポート
  • 実用レベルのプログラムを作るための幅広い知識を提供
  • 将来にわたって通用する技術的なバックグラウンドを身に付けることを目標とする

などが挙げられます。

課題について

本コースは、受講者自らプログラムを組むことを重視しているため、毎回の講義において課題を出し、次回までに解答を提出していただきます。

(提出しないと脱落、ということはありませんが、極力頑張って欲しいところです)

全体的な流れとしては bitFlyer FX で取引を行う BOT を開発しつつ、発展的な事例として Liquid や FX の Oanda なども課題では取り上げる予定です。

もし、仮に課題通りのプログラムが作れなかったとしても、どのような試行錯誤をしたかを日本語で説明して欲しいと思います。

日本語で自分の意図や考えを明確に伝えることも、プログラミング学習の一環として十分に効果があります。

また、講師が解答を作成する過程を動画にして受講生に提供することで、実際のプログラミングとはどんな感じなのかをリアルにお伝えします(少々恥ずかしいですが)。

コミュニティフォーラム

本コースでは、弊社ウェブサイトにご用意するコミュニティフォーラムで質問を受け付け、学習の支援を行います。

Slack や Discord といったチャットシステムが当たり前に使われている中で、あえて旧式(?)なフォーラムを採用するのは、チャットには

  • リアルタイムにオンラインな人がリアクションしなければいけないような雰囲気が生まれがち
  • 仕事や外出から帰ってきたら、自分の質問とそれへの回答がログの奥の方に流れていたりする
  • そもそもトピック一覧が存在しないので長期的な情報アーカイブとしては優れていない

といった欠点があるからです。

ただし、あくまで補助的な位置付けにはなりますが、リアルタイムなコミュニケーションの場として Discord もご用意します。雑談などにご利用下さい。

なお、フォーラムは一年間のアクセスが有効で、それ以降は会費を払うことでアクセス権限の延長も可能です。

コース自体の受講料やフォーラムの会費などは、また後ほどご案内いたします。少々お待ちください。

このように、まだ概要しか決まっていない状態ですが、もしご質問/ご要望などあれば、ツイッターの DM や弊社ウェブサイトのお問い合わせフォームからお気軽にご連絡ください。

今なら、お寄せ頂いたご意見が反映されるかもしれません。(^^;

本コースの提供に至った背景

ここからは、ちょっと長いのですが、本コースを提供するに至った背景や、本コース設計の意図などを説明しております。

本コースの受講を検討している方のご参考になれば幸いです。

プログラミングを身に付けるとは

私事ですが、最近(大人を対象とした)プログラミング教育に興味があり、色々考えた結果、やはり

興味がある分野のプログラムをひたすら自分で作ることで自然とプログラミングを身に付ける

のが最も効率が良いと思っています。

・・・なんか当たり前のことを言っているようですが、まあ聞いて下さい。

プログラミングというと、どうしても、Python とか JavaScript といった特定の言語で処理を記述するコーディングの部分に目が行きがちですが、実際には細かく分けると

  • 調査
  • 実験
  • 仕様検討
  • 設計
  • コーディング
  • デバッグ

といった様々なタスクをこなす必要があります。

どこかが欠けていると、案外プログラムは完成しないものです。

「自分では結構勉強したつもりなんだけど、どうもプログラムが組めるようにならないんだよなぁ」という方は、おそらく、鍛えられていない弱い箇所がいくつかあるのでしょう。

もっとも、それも仕方の無いことだと思います。

既存のプログラミング教育コースや書籍での学習は、どうしても知識偏重になる上に、安易にサンプルコードを見せられて、受講者自身のプログラミングの機会が十分に確保されません。

これでは、まるで、登山家を志す人に対して、登山の知識だけ提供し、あとはヘリで山頂まで連れて行って登山気分を味わわせているようなものです。

あくまで登頂の体験が目的ならそれも良いと思いますが、そんな「教育」を受けただけで一人前の登山家になれるわけがありません。

本コースでは、自分の足で山を登る、すなわち、受講者自らプログラムを組んでもらうことを重視します。

あれこれ自分で実験したり、正しく書いたつもりのプログラムが動かずにデバッグしたりする過程を経て、リアルなプログラミングを経験して頂きたいと思います。

自分で作るということ

さて、さきほどプログラミングを身に付ける秘訣(?)は

興味がある分野のプログラムをひたすら自分で作ることで自然とプログラミングを身に付ける

ことだと申しました。

「興味がある分野のプログラム」というところがミソで、既存のプログラミング教育の欠点の一つがそこにあると思っています。

たとえば、仮想通貨の BOT を作るために Python の入門書を手に取ったのに、「ゲームのテト○スを作ってみましょう!」みたいなノリで解説とサンプルコードを提示されても、興味が無ければいまいち没頭できませんよね。

なんとか我慢しながらその本を読み終えたとしても、ただ読み終えただけではプログラムが組めるようにはなりません。

それは、自分の足で歩いていない、もしくは歩いた距離が圧倒的に不足しているからです。

そうは言っても、あまり興味の無いプログラムを作ったり、ましてやそれをどんどん改良したり、なんて、なかなか続かないというのも理解できます。

その点、「ウェブ API 開発」コースは、そもそもトレードに関心のある人だけを対象として、トレードを題材にしたプログラムを作っていくわけですから、モチベーションは持続しやすいはずです。

当初は、ロジックが簡単明快なので仮想通貨アービトラージの開発をテーマにするつもりでしたが、現実には椅子取り競争が激しく、初心者が作ったプログラムでは狙った価格でほぼ約定しないため、やや机上の空論のようになってしまい、面白みが半減すると思いました。

そこで、(利益は出なくとも)そこそこ高頻度で実際に取引をするプログラムを実装していくことにしました。

デモ口座ではなくリアル口座で、自分が作ったプログラムが、少額の利益と損失を繰り返しながら取引していく様子を実際に体験していただくのが、トレーダーには最もエキサイティングな題材ではないでしょうか。

そして、取引ロジックについては、コースを進めながら、受講者の皆さんと話し合って決めていこうと思います。

正直な話、そこで利益が出るロジックが完成する見込みは非常に薄いでしょう。

ただ、それを受講者が改良していくことで利益の出るシステムを作れるようになる可能性はありますし、そのために必要な技術的基礎は本コースで提供いたします。

発展的なプログラムを作るために

作成したいプログラムが本格的になればなるほど、コンピュータ全般にわたる知識を、幅広く、そしてある程度の深さまで要求されるようになります。

たとえば、Python でプログラムを組んだことがある方であれば、非同期とかマルチスレッドといった用語を聞いたことがあるかもしれません。

しかしながら、こういう用語を理解するために、プログラミングが本職ではない方にプログラミング言語や OS の専門書を読んでくださいと言うのも酷な話です。

「ウェブ API 開発」コースでは、ウェブ(HTTP)の話のみならず、実用レベルのプログラムを作るために必要な知識を幅広く提供します。

本コースで、各種の技術や用語を正しく理解し、それらをケースバイケースで適切に応用できる能力を身に付けていただきたいと思います。