FX自動売買EAを実装してみよう1(サンプルコード解説)
概要
この記事では,FX自動売買初心者向けに実装の解説します。
EAの実装をしたことない方から基本を振り返りたい方へ向けた記事となります。
※FXでの取引は自己責任となります。ご了承ください。
FX自動売買の振り返り
FX自動売買の始め方について数本の記事で解説をしてきました。
FX自動売買EAの始め方(初心者用) - Sasahiko’s diary
今回からは自動売買EAを自分で実装したい方へ向けた解説記事を出していきます。
(XM Trading, MT4での実装となります。口座開設はこちらからFX自動売買EAの始め方(初心者用) - Sasahiko’s diary)
MT4で自動売買の実装をしたいんだけど…?
まずはMT4というものを理解しましょう。
MT4とはFX自動売買を目的とした開発ツールであり,FX独自の関数(インジケータや注文など)が簡単に実装できます。
MT4はMQL4という言語で記述します。MQL4とはC言語に類似した言語であり,C言語の開発経験者であれば簡単に実装できます。
実際のコードを見てみましょう!
XM TradingのMT4をインストールした場合,Moving_Average.mq4とMACD_Sample.mq4の二つがもとからダウンロードされています。この記事では,Moving_Average.mq4を見ていきます。
まずは定数や変数の定義です。こちらの形式はC言語っぽいですよね。
MAGIC NUMBERとは取引アルゴの番号です。他のアルゴや裁量トレードと組み合わせる際には,ここの番号を変えることでごちゃごちゃにならずに済みます。
(magic numberがあることでアルゴ1のみ決済とかが簡単にできます。)
以下の部分では,保有中のポジションをカウントしています。
特定のマジックナンバーに該当するポジションをaskとbidに分けてカウントしています。
こちらでは過去のデータからロット数の最適化をしています。
対象取引で損失をカウントしていき,連敗していたらロット数を下げるような計算をしています。
現在価格がMAを跨いだら取引開始というのを実装しています。
sell condition:open価格がMAよりも小さく,close価格がMAよりも大きいときbidで注文をする。askはその逆です。
こちらでは決済条件を設定しています。
ポジションを保有しているときのみ計算をします。
注文時と逆のクロスがあった場合には決済という設定になっています。
自作関数のCalicurate_current_orderで保有ポジションをカウントし,保持していないっ場合にはCheck_for_open関数を読み込み,保持している場合にはCheck_for_closeを読み込む形です。
以上が移動平均のサンプルコードです。今回の解説ではわかったような,わからなかったようなという感じかと思います。実装を進めていくことで理解を深めていきましょう!
まとめ
自動売買EAはMT4で実装することが多いため,その解説をしました。
mql4という言語により実装し,上記のようなコードになります。
次回からは少しずつ実装をしていきましょう!
twitter : 笹彦 fx自動売買EA開発者 (@trader_brothers) | Twitter
Instagram : https://www.instagram.com/fxtrader_sasahiko/