ナイトスカルパー マルチは、ボリンジャーバンド指標を用いて狭い範囲 (r) で取引を行うマルチ通貨のナイトスカルパーです。取引は0時まで行われます。
BBHandle=iBands(symb,0,per,0,dev,0); CopyBuffer(BBHandle,1,0,1,up); CopyBuffer(BBHandle,2,0,1,dn); double r=up[0]-dn[0];
指定された開始の時間以降、シンボルにオープンポジションがない場合にポジションが開かれます。
if(CountTrades(symb)<1 && TimeCurrent()>StringToTime(s))
ボリンジャーバンドの下限を下回る価格の場合、チャネルがRazmah変数で指定された範囲よりも小さいときに買いを行います。
if(Ask<dn[0] && r<razmah*_Point) trade.PositionOpen(symb,0,Lot,Ask,Ask-stop*_Point,Ask+take*_Point);
ボリンジャーバンドの上限を上回る価格の場合、チャネルがRazmah変数で指定された範囲よりも小さいときに売りを行います。
if(Bid>up[0] && r<razmah*_Point) trade.PositionOpen(symb,1,Lot,Bid,Bid+stop*_Point,Bid-take*_Point);
ポジションはストップロスによって閉じられるか、0時以降に強制的に閉じられます。
elseif(CountTrades(symb)>0 && TimeCurrent()<StringToTime(s)) CloseAll(symb);
取引は、SymbolTrade関数を使用し、СTradeクラスを利用します:
void SymbolTrade(string symb,int stop,int take,int per,double dev,double razmah,int start) { string s=(string)start+":00"; doubleAsk=SymbolInfoDouble(symb,SYMBOL_ASK); doubleBid=SymbolInfoDouble(symb,SYMBOL_BID); BBHandle=iBands(symb,0,per,0,dev,0); CopyBuffer(BBHandle,1,0,1,up); CopyBuffer(BBHandle,2,0,1,dn); double r=up[0]-dn[0]; if(CountTrades(symb)<1 && TimeCurrent()>StringToTime(s)) { if(Ask<dn[0] && r<razmah*_Point) trade.PositionOpen(symb,0,Lot,Ask,Ask-stop*_Point,Ask+take*_Point); if(Bid>up[0] && r<razmah*_Point) trade.PositionOpen(symb,1,Lot,Bid,Bid+stop*_Point,Bid-take*_Point); } elseif(CountTrades(symb)>0 && TimeCurrent()<StringToTime(s)) CloseAll(symb); }
取引操作は新しいバーで実行されます。
if(bars!=Bars(NULL,0)) { if(Symbol1!="") SymbolTrade(Symbol1,StopLoss1,TakeProfit1,BBPeriod1,BBDev1,Razmah1,Start1); if(Symbol2!="") SymbolTrade(Symbol2,StopLoss2,TakeProfit2,BBPeriod2,BBDev2,Razmah2,Start2); if(Symbol3!="") SymbolTrade(Symbol3,StopLoss3,TakeProfit3,BBPeriod3,BBDev3,Razmah3,Start3); ... } bars=Bars(NULL,0);
設定:
inputstring Symbol1 = "USDCAD"; // シンボル1名inputint StopLoss1 = 370; // ストップロス1inputint TakeProfit1 = 20; // テイクプロフィット1inputint BBPeriod1 = 40; // バンド期間1inputdouble BBDev1 = 1; // バンド偏差1inputdouble Razmah1 = 450; // バンド偏差1 (ポイント)inputint Start1 = 19; // 開始時間1inputstring Symbol2 = "GBPUSD"; // シンボル2名inputint StopLoss2 = 450; // ストップロス2inputint TakeProfit2 = 80; // テイクプロフィット2inputint BBPeriod2 = 8; // バンド期間2inputdouble BBDev2 = 1; // バンド偏差2inputdouble Razmah2 = 200; // バンド偏差2 (ポイント)inputint Start2 = 20; // 開始時間2inputstring Symbol3 = "NZDUSD"; // シンボル3名inputint StopLoss3 = 410; // ストップロス3inputint TakeProfit3 = 40; // テイクプロフィット3inputint BBPeriod3 = 4; // バンド期間3inputdouble BBDev3 = 1.2; // バンド偏差3inputdouble Razmah3 = 450; // バンド偏差3 (ポイント)inputint Start3 = 19; // 開始時間3inputstring Symbol4 = ""; // シンボル4名inputint StopLoss4 = 500; // ストップロス4inputint TakeProfit4 = 40; // テイクプロフィット4inputint BBPeriod4 = 24; // バンド期間4inputdouble BBDev4 = 1; // バンド偏差4inputdouble Razmah4 = 200; // バンド偏差4 (ポイント)inputint Start4 = 20; // 開始時間4inputstring Symbol5 = ""; // シンボル5名inputint StopLoss5 = 500; // ストップロス5inputint TakeProfit5 = 40; // テイクプロフィット5inputint BBPeriod5 = 24; // バンド期間5inputdouble BBDev5 = 1; // バンド偏差5inputdouble Razmah5 = 200; // バンド偏差5 (ポイント)inputint Start5 = 20; // 開始時間5inputstring Symbol6 = ""; // シンボル6名inputint StopLoss6 = 500; // ストップロス6inputint TakeProfit6 = 40; // テイクプロフィット6inputint BBPeriod6 = 24; // バンド期間6inputdouble BBDev6 = 1; // バンド偏差6inputdouble Razmah6 = 200; // バンド偏差6 (ポイント)inputint Start6 = 20; // 開始時間6inputstring Symbol7 = ""; // シンボル7名inputint StopLoss7 = 500; // ストップロス7inputint TakeProfit7 = 40; // テイクプロフィット7inputint BBPeriod7 = 24; // バンド期間7inputdouble BBDev7 = 1; // バンド偏差7inputdouble Razmah7 = 200; // バンド偏差7 (ポイント)inputint Start7 = 20; // 開始時間7inputstring Symbol8 = ""; // シンボル8名inputint StopLoss8 = 500; // ストップロス8inputint TakeProfit8 = 40; // テイクプロフィット8inputint BBPeriod8 = 24; // バンド期間8inputdouble BBDev8 = 1; // バンド偏差8inputdouble Razmah8 = 200; // バンド偏差8 (ポイント)inputint Start8 = 20; // 開始時間8inputstring Symbol9 = ""; // シンボル9名inputint StopLoss9 = 500; // ストップロス9inputint TakeProfit9 = 40; // テイクプロフィット9inputint BBPeriod9 = 24; // バンド期間9inputdouble BBDev9 = 1; // バンド偏差9inputdouble Razmah9 = 200; // バンド偏差9 (ポイント)inputint Start9 = 20; // 開始時間9inputdouble Lot = 1; // 取引ボリューム

図1. EAの取引結果。EURUSD, H1

図2. EAの取引のジャーナル

図3. EAの取引結果と最適化 (2016年1月11日から2016年9月13日まで)。USDCAD, GBPUSD, NZDUSD, H1
ヒント:
- このEAは取引アシスタントとしての使用を推奨し、自分の戦略を開発するのに役立ちます。

コメント 0