//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
//---if(bln_find_order) // true -> you should look for a order
{
staticlong counter=0;
Print("Attempt number ",counter);
ResetLastError();
if(HistoryOrderSelect(ul_find_order))
{
long type_order=HistoryOrderGetInteger(ul_find_order,ORDER_TYPE);
if(type_order==ORDER_TYPE_SELL_STOP)
{
Print("The pending order ",ul_find_order," is found! Type of order is ",
EnumToString((ENUM_ORDER_TYPE)HistoryOrderGetInteger(ul_find_order,ORDER_TYPE)));
bln_find_order=false; // true -> you should look for a order
counter=0;
return;
}
else
{
Print("The order ",ul_find_order," is not pending");
bln_find_order=false; // true -> you should look for a orderreturn;
}
}
else
{
Print("Order ",ul_find_order," is not find, error#",GetLastError());
}
counter++;
}
}
Expert Advisorがあり、保留中の注文が いつトリガーされたかを判断することができます。
https://www.mql5.com/ru/code/17610
SELL_STOP注文のチケットを取得するために使用しています
というコードに変更しました。
ある瞬間までは、すべてがうまくいっている。履歴に別の注文タイプが表示されるまで。
例えば、SELL_LIMIT。
履歴にSELL_LIMITが表示されると同時に、前回のSELL_STOPのチケットが取れなくなりました。
Expert Advisorがエラーを投げる。
命令9は保留されない
履歴にSELL_STOPがありますが
7番のチケットが必要なのに、なぜ9番の注文を受けなければならないのですか?
こんにちは。StopLoss_= 0の場合、エラーが発生します。
修正失敗 #2 sell 3.00 Si-9.18 sl: 0, tp: 62749 -> sl: 0, tp: 62774 [無効なストップ].
こんにちは。StopLoss_= 0の場合、エラーが発生します。
修正失敗 #2 sell 3.00 Si-9.18 sl: 0, tp: 62749 -> sl: 0, tp: 62774 [無効なストップ].
プログラムを書く際の ロジックが正しくない。
StopLoss_0になると、上の条件、つまりTakeProfitを変更しようとする試みが発生します。この場合、TakeProfitレベルはCURRENT PRICEより高くなる可能性があり、これはエラーとなります。
あなたの場合、RIGHT PRICE(m_position.PriceCurrent)から引きます。
売りポジションが開設さ れ、selllimitが有効になったので、現在の価格ではなく、新しいポジションの価格に相対的にTPを移動させる必要があります。
無効な価格に変更しようとしないためには、どのようなチェックをすればよいのでしょうか?
売りポジションが開設さ れ、selllimitが有効化されました。私は、現在の価格に対してではなく、ポジションの新しい価格に対してTPを移動する必要があります。
無効な価格に変更しようとしないためには、どのようなチェックをすればよいのでしょうか?
チェックする。
if(m_position.PriceOpen()-ExtTakeProfit<m_position.PriceCurrent() { m_trade.PositionModify(m_position.Ticket(), m_position.StopLoss(), m_symbol.NormalizePrice(m_position.PriceOpen()-ExtTakeProfit) ); ...
チェックする。
ありがとうございます。しかし、エラーは残っています。
現在の価格と容認できないほど近いかもしれない。どうすれば確認できますか?
ありがとうございます。しかし、エラーは残っています。
現在の価格と容認できないほど近いかもしれない。どのように確認するのですか?
取引所を利用できないので、自分でやるか、FXの金融商品に取り組むか、どちらかです。すみません。
追加:別のチェックを導入 - 売りポジションの新しいTakeProfit(計算値)は、ポジションの現在のTakeProfitより高くないか等しくなければなりません。
取引所を利用できないので、自分でやるか、FXの金融商品に取り組むか、どちらかです。すみません。
追加:別のチェックを導入 - 売りポジションの新しいTakeProfit(計算値)は、ポジションの現在のTakeProfitより高くないか等しくなければなりません。
おそらく始値(POSITON_PRICE_OPEN)?
おそらく始値(POSITON_PRICE_OPEN)?
このオプションは上記の通りでした。上の書き込みをご覧ください。話の途中で答えましたね。
Does not fit, modify by ATR このエラーに対して、他にどのようなチェックが可能でしょうか?すべて可能です。mt4ではSTOPLEVELがありますが、ここでは何ですか?