アイデアの作者: Collector
MQL5コードの作者: barabashkakvn
このEAは、新しいバーが出現したときのみ動作します。iBullsPower(ブルズパワー)およびiBearsPower(ベアーズパワー)インジケーターからのトレードシグナルは、EAによって開かれたポジションがない場合にのみ考慮されます(現在のシンボルおよびユニークなEA識別子 - マジックナンバーを使用して検索します)。
両方のインジケーターは、1つの設定 - ブルズとベアーズ:平均化期間を持っています。トレードシグナル形成アルゴリズム:2つのバーのデータ - 現在のバーと現在のバー+1を両方のインジケーターで取得し、値を2で割ります。
double prev = ((bears[1]+bulls[1])/2.0); double curr = ((bears[0]+bulls[0])/2.0);
もし前のバーの平均値が現在のバーの平均値よりも小さい場合、BUYをオープンします:
if(prev<curr && curr<0) { //ClosePositions(POSITION_TYPE_SELL); double sl=(InpStopLoss==0)?0.0:m_symbol.Ask()-ExtStopLoss; if(sl>=m_symbol.Bid()) // もしポジションがまだオープンしていない場合、すでにクローズされなければならない { PrevBars=0; return; } double tp=(InpTakeProfit==0)?0.0:m_symbol.Ask()+ExtTakeProfit; OpenBuy(sl,tp); return; }
もし前のバーの平均値が現在のバーの平均値よりも大きい場合、SELLをオープンします:
if(prev>curr && curr>0) { //ClosePositions(POSITION_TYPE_BUY); double sl=(InpStopLoss==0)?0.0:m_symbol.Bid()+ExtStopLoss; if(sl<=m_symbol.Ask()) // もしポジションがまだオープンしていない場合、すでにクローズされなければならない { PrevBars=0; return; } double tp=(InpTakeProfit==0)?0.0:m_symbol.Bid()-ExtTakeProfit; OpenSell(sl,tp); return; }
EURUSD, M15:

コメント 0