MT4の好きなロジックを追加するだけですぐに取引できるテンプレートソースを公開

MQL4を開発する際に、時間でCloseしたり、ストップロスでストップしたり、トレーリングストップしたりと色んなソースを組んでいましたが、毎回開発が面倒なので。汎用的に作ってしまえば、今後ずっと使えると思い、色んな取引条件に耐えられるテンプレートソースを作成しました。

ソースの説明

Judge1とJudge2の関数内に取引Openする条件を記載してもらえば、あとは外部変数で色んな条件を設定できます。(条件が2つよりも多いときにはJudge3,Judge4と関数を足してもらえば動きます)
ただし同時に持てるポジション数は1つまでです。要望が多ければポジションが複数持てるバージョンもそのうち作ります。

【外部変数で設定可能な内容】
TickTrade:True→処理単位をTick単位にする。
       False→EAを動かしている対象足が変わったタイミングだけ処理する。
MagicNo:マジックNoを設定。
Lot:注文ロット数を設定(0.1で1万通貨)。
Spread_Limit:Spreadがこの値よりも大きいときはOpenしない。単位はPointなので、基本的はPipの10倍。

Order_interval:Closeしてから次のOpenまでに待つ秒数。
TimeoutClose:Ture→Open後に一定時間でCloseする
         False→時間でCloseしない
Order_Sec:Open後に何秒でCloseするか(TimeoutCloseがTrueのときだけ動作する)

TrailClose:Ture→トレーリングストップを有効にする
       False→トレーリングストップを利用しない
Trail_WinpipUnit:設定したPip利益が出るごとにストップを切りあげ
Trail_StoppipUnit:Trail_WinpipUnitの何Pip下にStopを入れるか
 ※例えばTrail_WinpipUnit=3、Trail_StoppipUnit=3にすると、
  3pip利益が出るとStopを0pipに、6pip利益が出るとStopを3pipというようになる

StoplossClose:Ture→損切を有効にする
         False→損切を利用しない
Stoploss_Pips:ストップロスのPip値をマイナスで設定

TakeprofitClose:Ture→利確を有効にする
           False→利確を利用しない

Takepofit_Pips:利確のPip値を設定
補足説明
・トレーリングストップは3pip刻みにしたとき、一気に値動きが6pipを超えた時にも、3pipだけStop値を切上げ、次の処理タイミングでも6pipを超えていればもう3pip Stop値を切り上げます。
 一気にStop値を6pip切上げほうが一般的なのですが、値動きが激しいとはストップにかかりやすくなるので、あえて徐々にStop値を切り上げています。
・正常系は一通り動かしていますが、全条件の網羅テストはしていませんので、自己責任でご利用ください。
おすすめの記事