前にシステム競馬で儲ける方法の第1弾を書いたが、今回はシステムトレードで儲ける方法について解説しよう。
システムトレードというのは何かというと、株や先物、仮想通貨等の金融商品を自動売買することによって利益を得る手法なのだが、方法は多種多様ある。
大きくわけると、自動売買の取引を自分でシステムを作って行う方法と、外部に委託して儲ける方法がある。
外部に委託して儲ける方法は、手数料分が返ってくればいい方で、預けたお金が下せなくなってトンズラされたりとかリスクが高く、売買のタイミングだけ教えてもらうシステムでも、システムの買取費用や会員費用や課金などがあり、かなりの金額になる。そもそもそのシステムで儲かるのなら、なぜ自分たちでやらないのかという疑問と、会員が増えれば利益がその分減るはずだから、あまり儲けは期待できないと思われる。
過去データからバックテストを行って、シミュレーションし、それで利益を上げるパラメータを調整して公開し、「1日に10万円儲かるシステム」とか、「何もしなくてもお金が増えていく」とか言ってシステムを売っているところもある。期間を絞ってパラメータを調整すれば、いくらでも儲ける方法はあるのだが、実際にその通りやっても儲からないことが多い。これはなぜかというと、ちょっと数学的で難しい話になってしまうのだが、カーブフィッティングという現象が出てしまうからである。パラメータで調整すればするほど、儲けを出せるのだが、それにマッチするデータが少なくなってしまい。数少ないデータで一般的な結論を導き出してしまうことになってしまうのである。
例えば、アービトラージと言う2つ以上の商品や取引所の差を見てどちらかを売ったり買ったりして儲ける手法とかもあるが、月利20%とか言って実際に売っている業者もあるが、実際にシステムを組んでみると、秒を争う戦いの場で商品を売買する手数料もあるので、1円玉をかき集めるようなシステムになってしまい、とてもじゃないが月利20%は難しい。
色々考えると、システムトレードで儲ける方法は、1つはシステムトレードのシステムを作ってそれを売るという方法と、システムトレードを自作し、自分で調整しながら利益を得る方法しかないと考える。
実際に自分でシステムを組むというのはどういうことかと言うと、簡単に言えば、取引業者が提供するデータを自動でパソコンにリアルタイムに取り込んで、それを分析し、ある条件になったら買ったり売ったりする仕組みを作らなくてはならない。
パソコン上でデータを取得したり、買ったり売ったりするにはプログラムを書く必要がある。
取引所によってマチマチだが、EXCELのVBAを使ったり、JavaScript、Python、Go、Ruby、Perl、C#、Node.js、PHP、Kitlin、Rust、Haskell、Swiftなど色々な言語がある。自分の使っている取引所がどの言語を使えるのか調べて、その言語を勉強し、プログラムを組んでいくのである。
上の写真はその一例で、VS.codeの画面である。