RSIを活用した自動保留注文管理 - MetaTrader 4用のEAガイド

Mike 2014.08.12 22:46 26 0 0
添付ファイル

自動保留注文の設定

  1. RSIを利用した自動保留注文;
  2. 週末のリスクを低減し、次週にポジションを復元;
  3. 有益な情報をメールで通知。

おすすめ設定:

1. バックテスト用にはtestmodeをtrueに、実口座用にはfalseに設定してください:

extern bool testmode = false;//true:バックテスト用

2. テストモードの場合は、トレードシンボル配列には1つだけ設定してください。例:

extern string tradesymbol1 = "EURUSDm_802_2802_1602_200_860";
extern string tradesymbol2 = "";
extern string tradesymbol3 = "";
extern string tradesymbol4 = "";
extern string tradesymbol5 = "";
extern string tradesymbol6 = "";

実口座モードの場合は、testmodeをfalseに設定し、トレードシンボルを次のように設定します(シンボルをカンマで区切り、パラメータはアンダースコアで区切ります):

extern string tradesymbol1 = "EURUSDm_802_2802_1602_200_860,USDCHFm_506_2606_1506_120_600";
extern string tradesymbol2 = "USDJPYm_460_2802_1302_100_320";
extern string tradesymbol3 = "";
extern string tradesymbol4 = "";
extern string tradesymbol5 = "";
extern string tradesymbol6 = "";

"EURUSDm_802_2802_1602_200_860"の意味:

  • シンボル: EURUSDm(mは私のExnessミニ口座を意味しますので、あなたのシンボルに変更する必要があります)
  • 保留ピップ:802(保留ギャップ)
  • 週末加算ピップ:2802(週末に広がるギャップ)
  • キャンセルピップ:1602(このピップを超えた場合、保留注文を閉じる)
  • トレーリングストップロス:200(トレーリングストップロス)
  • テイクプロフィット:860(仮想テイクプロフィット)

3. 週末に保留注文を削除したい場合は、weekenddeleteをtrueに設定し、保留ギャップを広げて次週に復元したい場合は、weekenddeleteをfalseに設定します。

extern bool weekenddelete = false;//true:削除 false:修正

4. 週末モードの開始と終了時間(5は金曜日、7は日曜日を意味します。時間はGMTですので、あなたのローカル時間に調整が必要かもしれません。デフォルトのパラメータは北京時間でうまく機能します):

//金曜日の取引終了時間
extern int weekendbeginday = 5;
extern string weekendbegintime = "20:30";//金曜日 20:30
extern int weekendendday = 7;
extern string weekendendtime = "23:30";//日曜日 20:30

5. RSI値が70以上または30以下の時にメール通知を受けたいシンボルを設定します。全てのシンボル(トレードシンボルではない可能性があります)を設定し、定期的に報告します。あなたの口座がミニ口座でない場合、AUDJPYmを変更する必要があります。

string symbolsstr1 = "AUDJPYm,AUDCADm,AUDCHFm,AUDNZDm,AUDSGDm,AUDUSDm,CADCHFm,CADHKDm,CADJPYm,CHFJPYm,CHFPLNm,CHFSGDm,EURAUDm,EURBRLm,EURCADm,EURCHFm,EURDKKm,EURGBPm,EURHKDm,EURHUFm,EURJPYm,EURMXNm";
string symbolsstr2 = "GBPCHFm,GBPJPYm,GBPNZDm,GBPUSDm,HKDJPYm,HUFJPYm,MXNJPYm,NZDCADm,NZDCHFm,NZDJPYm,NZDSGDm,NZDUSDm,SGDJPYm,USDBRLm,USDCADm,USDCHFm,USDCZKm,USDDKKm,USDHKDm,USDHUFm,USDJPYm,USDMXNm";
string symbolsstr3 = "EURNOKm,EURNZDm,EURPLNm,EURRUBm,EURSEKm,EURSGDm,EURTRYm,EURUSDm,EURZARm,GBPAUDm,GBPCADm,USDNOKm,USDPLNm,USDRONm,USDRUBm,USDSEKm,USDSGDm,USDTRYm,USDZARm,XAGUSDm,XAUUSDm,ZARJPYm";
long sendmininterval = 3600;

6. RSIの設定:

//RSI設定
extern int rsitimeframe = PERIOD_H4;
extern int rsiperiod  = 14;
extern ENUM_APPLIED_PRICE rsiappliedprice = PRICE_CLOSE;
extern int rsishift = 0;
extern double rsiupperline = 70;
extern double rsilowerline = 30;

7. weekendモードを識別するためにmagicweekendexpirationを使用します。より良い方法があれば、ぜひ教えてください。

int magicweekendexpiration = 1577836800;//2020-1-1 0:0:0 int値:1577836800

8. その他の情報:

週末モードへの変更が失敗した場合、EAはメールを送信し、成功するまで最大でMAX_MODIFY_TRY_TIME(デフォルトは100回)試みます。

ストップロスは適用されず、あるシンボルの最小買いまたは最大売りの注文が保留ピップを超えた場合、EAは同じシンボルの別の注文を保留します。

テストモードでは、資産が残高の95%未満の場合、EAは警告ファイルにステータスを書き込みます。

if(((AccountEquity()/AccountBalance()) < 0.95))
        {
            WriteToWarningFile();
        }

バグや提案がある場合は、ぜひお知らせください。

リスト
コメント 0