こんばんは、初心者ながらC++を勉強しております。
現在の環境はMacでeclipseを使って簡単なプログラムを動かしております。
分からないことも多いのですが、ゆくゆくはC++でシステムトレードのようなことが出来ないかと考えております。
そこで、参考になる書籍もしくはサイト等がございましたら教えていただけないでしょうか。
もちろん、サンプルコード等をいただけましたら非常にありがたく思いますが。。。
入れる必要のあるライブラリも合わせてお教えいただければ幸いです。
他の言語ではいくつかあるようですが、C++ではあまりないようなので質問させていただきました。
どうぞよろしくお願いします。
トレードについて
Re: トレードについて
システムトレードをするには、大きく3つの方法が現状ではあると言えるでしょう。
(1).WEBブラウザ上から証券会社のWEBページにログインし、取引するスクリプトを作って動作させる。
(2).証券会社が提供しているプラットフォームのAPIを使用してトレードするプログラムを作成する。
(3).証券会社が提供しているプラットフォームが自動売買機能を有している場合、その機能を使用して自動売買するプログラムを作成する。
では解説します。
(1)に関しては、WEBブラウザ上からトレードする方法を提供している証券会社向けの方法と言えるでしょう。
但し、証券会社側としては、そもそも自動売買を容認していない為に、WEBブラウザ上からのトレードを提供している場合も有るとは言えます。
特に、バイナリーオプション等ではシステムトレードを行っている事がバレた場合には証拠金の没収等、手痛い目に遭う可能性は有ると言えるでしょう。
この方法を使う場合には、証券会社の規約を十分に認識する必要があると言えるでしょう。
また、標準的な方法ではシステマティックにマーケット情報等を抽出出来ない可能性はありますし、ブラウザを安定させて制御させなければならない事などを考慮すると、シストレの方法としては、ある意味非常に敷居が高い方法と言えるでしょう。
また、この方法は、C++と言うよりも、スクリプトの方が活躍する方法と言えます。
(2)に関しては、APIを提供しているプラットフォーム向けの方法と言えます。
私が認識しているAPIを提供しているプラットフォームと言えばFXTS2ぐらいですが、FXTS2を提供している国内の証券会社と言えば「日産証券」ぐらいです。
この方法を使えば、C++を用いてFXの自動売買を行えるシストレソフトは作成可能と言えます。
しかし、日産証券は本年度を以って店頭FX業務から撤退するらしいので、日本国内の証券会社を使いたいのであれば、現状ではこの方法はもう使えないと言えるでしょう。
また、この方法ではAPIの勉強に大きな労力を割くことになりかねないと言えるでしょう。
(3)については、証券会社が提供しているプラットフォームが自動売買機能を有している場合であり、そのプラットフォーム上での自動売買プログラムをトレーダー側が作成可能な場合と言えるでしょう。
この方法を使うには、大きく、
・日本国内業者で日本株をシストレしたい場合。
→現状ではマネックス証券を使う程度しか有効な方法が無いと思える。
https://info.monex.co.jp/tradestation/features/other/ を参照。
読んで分かる通り、C++は基本的に無関係。
・MetaTrader4若しくはMetaTrader5を提供している証券会社を利用する。
→C++ではないが、C/C++と非常に文法が似ているMQL4及びMQL5が利用可能。(現状のシストレの世界標準とも言える。)
日本国内の証券会社ではMetaTrader4しか提供していないが、その最大の理由は板情報を出す場合に金融商品取引法の都合上・・・という日本の金融庁の規制の影響が強いらしい。
海外ではMetaTrader5を提供している証券会社も存在する。
この場合、日本の証券会社では現状ではFX取引しか提供していないが、海外の証券会社では、株価指数CFDだったり商品先物だったり、仮想通貨だったり、米国株だったり色々な銘柄を提供している場合がある。
但し、MetaTrader4の場合は認識出来る銘柄数の制限があるため、MetaTrader4とMetaTrader5を同時に提供している証券会社に於いて、取引できる銘柄がどちらも同じであるという保証は無い。
C/C++を踏襲しているとは言え、MQL4/MQL5は互換性が無いので、リファレンスを熟読して理解する必要は有り。
また、証券会社に依っては、MetaTrader4を提供していながら、自動売買機能を停止して提供している場合もあるにはあるので、開設時に確認は必要と言える。
問題点は「基本的にはMACにはMetaTrader4/MetaTrader5は対応していない」というところが有りますが、動作させる方法もあるにはある。( http://tetori.jp/mt4/mt4-beginner/mac/ 参照。)
サンプルコード等に関しては、MetaTrader4/MetaTrader5に標準で入っていますし、リファレンス上にもサンプルコードはあります。
(1).WEBブラウザ上から証券会社のWEBページにログインし、取引するスクリプトを作って動作させる。
(2).証券会社が提供しているプラットフォームのAPIを使用してトレードするプログラムを作成する。
(3).証券会社が提供しているプラットフォームが自動売買機能を有している場合、その機能を使用して自動売買するプログラムを作成する。
では解説します。
(1)に関しては、WEBブラウザ上からトレードする方法を提供している証券会社向けの方法と言えるでしょう。
但し、証券会社側としては、そもそも自動売買を容認していない為に、WEBブラウザ上からのトレードを提供している場合も有るとは言えます。
特に、バイナリーオプション等ではシステムトレードを行っている事がバレた場合には証拠金の没収等、手痛い目に遭う可能性は有ると言えるでしょう。
この方法を使う場合には、証券会社の規約を十分に認識する必要があると言えるでしょう。
また、標準的な方法ではシステマティックにマーケット情報等を抽出出来ない可能性はありますし、ブラウザを安定させて制御させなければならない事などを考慮すると、シストレの方法としては、ある意味非常に敷居が高い方法と言えるでしょう。
また、この方法は、C++と言うよりも、スクリプトの方が活躍する方法と言えます。
(2)に関しては、APIを提供しているプラットフォーム向けの方法と言えます。
私が認識しているAPIを提供しているプラットフォームと言えばFXTS2ぐらいですが、FXTS2を提供している国内の証券会社と言えば「日産証券」ぐらいです。
この方法を使えば、C++を用いてFXの自動売買を行えるシストレソフトは作成可能と言えます。
しかし、日産証券は本年度を以って店頭FX業務から撤退するらしいので、日本国内の証券会社を使いたいのであれば、現状ではこの方法はもう使えないと言えるでしょう。
また、この方法ではAPIの勉強に大きな労力を割くことになりかねないと言えるでしょう。
(3)については、証券会社が提供しているプラットフォームが自動売買機能を有している場合であり、そのプラットフォーム上での自動売買プログラムをトレーダー側が作成可能な場合と言えるでしょう。
この方法を使うには、大きく、
・日本国内業者で日本株をシストレしたい場合。
→現状ではマネックス証券を使う程度しか有効な方法が無いと思える。
https://info.monex.co.jp/tradestation/features/other/ を参照。
読んで分かる通り、C++は基本的に無関係。
・MetaTrader4若しくはMetaTrader5を提供している証券会社を利用する。
→C++ではないが、C/C++と非常に文法が似ているMQL4及びMQL5が利用可能。(現状のシストレの世界標準とも言える。)
日本国内の証券会社ではMetaTrader4しか提供していないが、その最大の理由は板情報を出す場合に金融商品取引法の都合上・・・という日本の金融庁の規制の影響が強いらしい。
海外ではMetaTrader5を提供している証券会社も存在する。
この場合、日本の証券会社では現状ではFX取引しか提供していないが、海外の証券会社では、株価指数CFDだったり商品先物だったり、仮想通貨だったり、米国株だったり色々な銘柄を提供している場合がある。
但し、MetaTrader4の場合は認識出来る銘柄数の制限があるため、MetaTrader4とMetaTrader5を同時に提供している証券会社に於いて、取引できる銘柄がどちらも同じであるという保証は無い。
C/C++を踏襲しているとは言え、MQL4/MQL5は互換性が無いので、リファレンスを熟読して理解する必要は有り。
また、証券会社に依っては、MetaTrader4を提供していながら、自動売買機能を停止して提供している場合もあるにはあるので、開設時に確認は必要と言える。
問題点は「基本的にはMACにはMetaTrader4/MetaTrader5は対応していない」というところが有りますが、動作させる方法もあるにはある。( http://tetori.jp/mt4/mt4-beginner/mac/ 参照。)
サンプルコード等に関しては、MetaTrader4/MetaTrader5に標準で入っていますし、リファレンス上にもサンプルコードはあります。