voidOnTick()
{
// Получим значение индикатора
dMA = iMA(Symbol(), 0,PeriodMA, MovingShift, MODE_SMA, PRICE_CLOSE, 0); // MODE_SMA - простое усреднение , значение 0. PRICE_CLOSE- цена закрытия, значение 0.// Если нет открытых ордеров, то входим в условиеif(CountOrders()==0)
{
// Если появился сигнал на покупку, то откроем ордер на покупкуif(bSignalBuy() == true)
vOrderOpenBuy();
// Если появился сигнал на продажу, то откроем ордер на продажуif(bSignalSell() == true)
vOrderOpenSell();
}
DrawLABEL("nextlot",1,5,0,Color1(),StringConcatenate("CURRENT LOT: ",DoubleToStr(LOT(),2)));
DrawLABEL("currentlot",1,5,0,Color2(),StringConcatenate("NEXT LOT: ",DoubleToStr(LOT(),2)));
TrailingOrders();
}
なるほど、ありがとうございます。
1つだけ気になることがあります。 すべての注文が時々終了するのですが(つまり、すべて、常に!)、時々、3-4個の注文を出すと、そのうちの2個または1個だけが終了することがあるのです。専用のi-checkがあるので、もしかしたら手がかりがあるかもしれません。
ブラケットを軽視しないでください、これを試してください
D'フォーマットでZZの極値を取得する方法 2021.01.05
台本がない?
台本がない?
ジグザグを取り、OnCalculaceでそのバッファに通常0より大きい値があるかどうかをチェックします(バッファに極値、低値または高値の値が格納されていることを意味します)。を使用してバッファをループしています。
上のループ(右から左)は、MQL5用です。
MQL4の場合、ループは左から右になります。
上記の例では、まず新しい時間値を与えています。先に時間的に上位の値を取得するには、ArraySetAsSeriesを使用するか、ループの向きを逆にします。
データは、iCustom、CopyTime、iTime、およびiBars(rates_totalの代わり)を使用してスクリプトから取得することができます。
何か勘違いしているようだ。
で関数を切り替えると
すると、ストップとテイクアウトは瞬時に無限にずれる
TrailingOrders();を使用しない場合は、何もシフト しません。
私の仕事は、トレーリングムーブを作ることではなく、ストップとテイクアウトを1回/2回動かすことでした。
今日は一日中「発明」をしていたのですが、今のところ何も動いていません。
何か勘違いしているようだ。
で関数を切り替えると
すると、ストップとテイクアウトは瞬時に無限にずれる
TrailingOrders();を使用しない場合は、何もシフト しません。
私の仕事は、トレーリングムーブを作ることではなく、ストップとテイクアウトを1回/2回動かすことでした。
一日中「工夫」しているのですが、今のところ何もうまくいきません。
トレーリングストップは、価格がTPの方向に動いた場合に機能し、価格がロールバックした場合には何もしないようにします。SLレベルはTPの方向にのみ進み、ロールバックしてはいけません。