成行注文を変更して、ポジションが 100 ピップスになったときにポジションが損益分岐点になるようにしようとしています。StopLevels
これは、私のブローカーの約 20 ~ 30 ピップの原因でもあります。for(){...}
「ループ」関数を介してパラメータをチェックします
はMagicNumber
、チャートの時間枠番号です (つまり240
、=4H、60
=1H) 価格を設定しませんTakeProfit
&最初は価格を設定しませんStopLoss
。
取引の利益が 100 ピップ (プラス ストップレベル) に達したとき、始値に等しくなるようにEAa を追加していません。SL
利益ポイントは130ポイントを優に超えます。
私のコードはOP_SELL
注文のために以下にあります - どんな助けでも大歓迎です. よろしく、 トッド
/*Global Declarations*/
double pnlPoints;
double price, sl, tp;
double point;
int stopLevel;
int breakeven;
double newSL;
/*Local Declaratons*/
pnlPoints = 0;
point = MarketInfo( Symbol(), MODE_POINT );
stopLevel = int( MarketInfo( Symbol(), MODE_STOPLEVEL )
+ MarketInfo( Symbol(), MODE_SPREAD )
);
sl = NormalizeDouble( OrderStopLoss(), Digits );
tp = OrderTakeProfit();
breakeven = 100;
for( int s = OrdersTotal() - 1; s >= 0; s-- )
{ if ( ( OrderSelect( s, SELECT_BY_POS, MODE_TRADES ) ) == true )
price = MarketInfo( Symbol(), MODE_ASK );
newSL = NormalizeDouble( OrderOpenPrice(), Digits );
pnlPoints = ( OrderOpenPrice() - price ) / point;
if ( OP_SELL == OrderType() )
if ( Period() == OrderMagicNumber() )
if ( stopLevel < ( newSL - price ) / point )
if ( breakeven < pnlPoints )
if ( newSL != sl )
ModSell = OrderModify( OrderTicket(),
OrderOpenPrice(),
newSL,
tp,
buycolor
);
else if ( ModBuy == false )
{ Print( "OrderModify failed with error #",
GetLastError()
);
}
}