こんにちは、はかせです。
この記事ではMQL4言語を使った自動売買開発の手順を
知識0でも分かるように解説していきます。
独学の為の事前準備や具体的な学習手順に
加えて独学で挫折しないコツも解説しますので、
是非ご覧ください。
自分で考えたロジックをEA化したい
チャートに張り付けないから自動売買運用したい
自動売買を作って販売したい
自動売買を作ってアフィリエイトしたい
結論としては、独学でも自動売買開発をする事が可能です。
ただし、さまざまな準備を行った上で、
正しい手順で学習を進める必要があります。
準備が不十分だと学習をスタートできませんし、
手順がないと「どのように進めたらいいかわからない」
「この学習方法は正しいのだろうか」挫折しやすくなります。
独学の前には必ず準備を行い、学習手順も確認しておきましょう。
FX自動売買の開発にはMQL4言語を利用します。
このMQL4言語はMT4をダウンロードするだけで
開発環境が整う為、とても簡単に開発に着手が出来ます。
最初は難しく感じて当たり前です。
大事な事は、”まずは1つ完成させる。”
この考えが、自動売買開発を進めていく上でとても重要です。
それでは、それぞれ一つずつ見ていきましょう。
まずはロジックを決めましょう。
このロジックがないまま進めてしまうと
何を作ったらいいのか途中で分からなくなってしまいます。
勝てるロジック出なくても構いません。
独学で開発する為にはまずは作れる事が大切です。
独学で開発出来る事に注力しましょう。
勝てるロジックを身に着けたい方は、以下のページを参考にしてください
(現在準備中)
今回は僕が以下のロジックで解説します。
①移動平均線のゴールデンクロスが起きたタイミングでロングエントリーする
②移動平均線のデッドクロスが起きたタイミングでショートエントリーする
③RSIの75%を超えたらロングエントリーする
④RSIの25%を超えたらショートエントリーする
一つ一つ出来るようになっていきましょう。
プログラミング知識0からの場合、英語を見るだけでも嫌になりますよね。
まずはプログラミングに必要な6つの文法は抑えるようにしましょう。
以下の動画で詳しく解説されているので見てみてください。
実際にコードを書くために必要になるものが
”パソコン”と”メタエディター”になります。
メタエディターは、MT4をダウンロードするだけで使えるエディターです。
メタエディターの使い方については下記の動画で解説していますのでご覧ください。
メタエディターの準備が終わったら、
ロジックを基ににプログラミングしましょう。
①と②の例のプログラミングの書き方について解説します。
以下の動画に詳しい説明がありますのでご覧ください。
以下の動画に詳しく解説していますので、是非ご覧ください。
エントリーポイントのプログラミング方法については、
上記の動画の通りになります。
ただしそれでは自動売買は注文できません。
”注文、決済の方法”が出来て初めて自動売買が完成します。
注文決済のプログラミングはとても簡単で、
OrderSend()関数を利用します。
OrderSend()関数はMT4を提供している会社であるメタクォーツ社が用意している
関数ですので、引数さえ理解できれば誰でも簡単に注文が出来てしまいます。
OrderSend()関数の書き方については下記の動画で詳しく解説しております。
「コンパイルして、エラーがなくなった!」
と安心するのはまだ早いです。
ロジック通りのエントリー~決済を
するのか確認をする事は非常に重要です。
この検証は自分が思い描いたとおりに
エントリーするのか検証するタームです。
思い描いた通りのエントリーでなければ、
どんな挙動をするのかわかりません。
検証をしないと走行テストをしていない暴走車に
乗るようなものと同じになってしまいます。
作成した自動売買ファイル(ex4)でバックテストを行いましょう。
①ストラテジーテスターを開くことで、
MT4の画面下部にバックテストを回す設定が出てきます。
②ビジュアルモードにチェックを入れましょう。
チェックを入れる事で、バックテストを行う際に自動でチャートを表示しエントリー箇所を見せてくれます。
③スタートを押しましょう。
バックテスト完了後、取引時のポジションをダブルクリックすると、
ビジュアルモードで表示したチャートにエントリーポイントを表示してくれます。
ここでエントリーのタイミングが想定通りであれば、完成です!
ロジックの有効性、リスクの確認をする為にもバックテストを行う事は必要不可欠です。
バックテストは、過去の市場データを使用して、
投資戦略がどの程度有効であったかを評価するための方法です。
バックテストを使用することで、投資家はロジックの実行可能性を検討することができます。
バックテストは、投資戦略のリスクを評価するためにも使用されます。
過去の市場データを使用して、戦略がどの程度リスクがあるかを評価することで、
投資家はリスクを最小限に抑えることができます。
バックテストは、投資家が特定の投資戦略に関する
投資判断を行うための情報を取得できます。
過去の市場データに基づいて、投資家は将来の市場動向を予測することができ、
適切な投資判断を行うことができます。
バックテストは、投資家が投資戦略を改善するために使用することができます。
過去の市場データに基づいて、投資家は投資戦略の欠点を特定し、
改善するための戦略を開発することができます。
バックテストの仕方については下記の記事にて解説しています。
(現在準備中)
最適なパラメーターを見つけることで、
投資家はロジックの過去検証も勿論、将来の最適な投資戦略を選択する事が出来るようになります。
純利益が最大のパラメーターを見つけることで、
投資家は収益を最大化することができます。
これにより、より高いリターンを得ることができ、
資産の成長を促進することができます。
ドローダウンが最小のパラメーターを見つけることで、
投資家はリスクを最小限に抑えることができます。
これにより、損失を最小限に抑え、投資家の資産を守ることができます。
PFが高いパラメーターを使用することで、
リターンを最大化することができます。
PFが高いことは、リターンに対してリスクが少ないことを示しているため、
より高いリターンを期待することができます。
但し、過剰な最適化はカーブフィッティングと呼ばれます。
カーブフィッティングになると過去相場でしか勝てないロジックとなり
将来の相場で天井買い、底売りを行ってしまいます。
カーブフィッティングにならない為の極意は下記の記事にて解説します。
(現在準備中)最適化とは何か?カーブフィッティングにならない上手な最適化方法
フォワードテストは、自動売買システムを作成した後、
実際の市場で正確に機能するかどうかを確認するために不可欠な手段です。
フォワードテストによって、自動売買システムのパフォーマンスを測定し、
改善することができます。過去のデータを用いたバックテストでは、
将来の市場環境が考慮されていないため、フォワードテストで得られた結果を元に、
システムの改善を行うことができます。
フォワードテストによって、
自動売買システムが効果的に機能する自動売買の組み合わせを特定し、
ポートフォリオの最適化を行うことができます。
また、フォワードテストによって、リスクとリターンのバランスを考慮し、
トレードサイズを調整することができます。
フォワードテストによって、自動売買システムがリアルタイムの
市場変動にどのように反応するかを確認することができます。
これにより、必要に応じて取引ロジックを調整することができます。
僕は過去、自動売買開発を挫折しそうになった事があります。
挫折しないコツは”目標を決める事”が大事です。
・月利〇%の利益率を出すEAを開発したい
・自分のロジックをEA化したい
など明確な目標を決める事で
効率よく学習を進めていきましょう。
自動売買は利便性がある反面
中身の理解や運用方法を知らないと痛い目に逢います。
今後もyoutubeとブログ解説していきます。
是非見てください。
応用としてLINEへ通知するプログラムを書いてみましょう。
これが出来るとより自動売買開発が面白ろくなります。
LINEへの通知方法はこちらの記事を参考にしてみてください。