// Функция модификации ордеров Sell при локированииvoid Modif_Count_Lok_Sell()
{
double Price;
for ( int pos= 0 ; pos < OrdersTotal (); pos++)
{
if ( OrderSelect (pos, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol()== Symbol ())
{
if (OrderType() == OP_SELL)
{
if (OrderTakeProfit() > 0 )
{
if (CountBuy1() > 0 ) // функция для пересчёта ордеров Buy
{
Price = OrderOpenPrice();
double TP3 = NormalizeDouble ( 0 * Point , Digits );
if (OrderTakeProfit() > TP3)
{
if (!OrderModify( OrderTicket(), OrderOpenPrice(), 0 , TP3, 0 , 0 ))
Print ( "Ошибка модификации ордера на продажу" );
}
}
}
}
}
}
}
}
Anlamama yardım et. Bu fonksiyonun anlamı, açık satış emirleri varsa ve bir alış emri açılmışsa, satış emirlerinin TP'sini değiştirmektir. Ancak değişiklik yalnızca bir ilk sipariş için gerçekleşir ve ardından OrderModify ERROR 1 hatası verir.
Snajper007 satış emirleri varsa ve bir alış emri açılmışsa, satış emirlerinin TP'sini değiştirmektir. Ancak değişiklik yalnızca bir ilk sipariş için gerçekleşir ve ardından OrderModify ERROR 1 hatası verir.
Bu durumda TakeProfit basitçe silinir.
HATA 1 - ERR_NO_RESULTHata yok, ancak sonuç bilinmiyor
// Функция модификации ордеров Sell при локированииvoid Modif_Count_Lok_Sell()
{
double Price;
for ( int pos= 0 ; pos < OrdersTotal (); pos++)
{
if ( OrderSelect (pos, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol()== Symbol ())
{
if (OrderType() == OP_SELL)
{
if (CountBuy1() > 0 ) // функция для пересчёта ордеров Buy
{
Price = OrderOpenPrice();
double TP3 = NormalizeDouble ( 0 * Point , Digits );
if (!OrderModify( OrderTicket(), OrderOpenPrice(), 0 , TP3, 0 , 0 ))
Print ( "Ошибка модификации ордера на продажу" );
}
}
}
}
}
}
Aynısı. Ortalama TP ile 2 satış emri var. Bu emirlerin her ikisi için de alış emri açarken TP silinmelidir. Ancak yalnızca birinci dereceden kaldırılır ve ikincisi ortalama TP ile kalır.
Aynısı. Ortalama TP ile 2 satış emri var. Bu emirlerin her ikisi için de alış emri açarken TP silinmelidir. Ancak yalnızca birinci dereceden kaldırılır ve ikincisi ortalama TP ile kalır.
Her şeyi karıştırmışsınız..
İlk önce bir sipariş verdin
if ( OrderSelect (pos, SELECT_BY_POS, MODE_TRADES))
Ama sonra işlevi çağırırsın
CountBuy1()
Hangisi büyük olasılıkla seçimi değiştirir .. Ve püresi çıkıyor .. Sinekleri pirzolalardan ayırın ve her şey işe yarayacak ..
Yeniden hesaplama neden zaman içinde ilerliyor? Onlar. 2. satış emri açıldı, fonksiyon ortalama fiyatı verdi. Ama 3. sıra açıldığında fonksiyon hem eski değeri veriyor hem de yenisini veriyor (Dergideki baskıya baktım) ve sonuç olarak eski değer kalıyor. Neyi yanlış yaptı?
Anlamama yardım et. Bu fonksiyonun anlamı, açık satış emirleri varsa ve bir alış emri açılmışsa, satış emirlerinin TP'sini değiştirmektir. Ancak değişiklik yalnızca bir ilk sipariş için gerçekleşir ve ardından OrderModify ERROR 1 hatası verir.
Bu durumda TakeProfit basitçe silinir.
HATA 1 - ERR_NO_RESULT Hata yok, ancak sonuç bilinmiyor
Bu durumda TakeProfit basitçe silinir.
HATA 1 - ERR_NO_RESULT Hata yok, ancak sonuç bilinmiyor
Neden birinde iki siparişten siliniyor, diğerinde silinmiyor?
Yalnızca OrderTakeProfit() > 0 ise kaldırılır
onlar. olumlu bir anlaşma
Yalnızca OrderTakeProfit() > 0 ise silinir
onlar. olumlu bir anlaşma
Kodu değiştirdim.
Aynısı. Ortalama TP ile 2 satış emri var. Bu emirlerin her ikisi için de alış emri açarken TP silinmelidir. Ancak yalnızca birinci dereceden kaldırılır ve ikincisi ortalama TP ile kalır.Yalnızca OrderTakeProfit() > 0 ise kaldırılır
onlar. olumlu bir anlaşma
eğer OrderTakeProfit() > 0, ticaretin kârda olduğu anlamına gelmez.. Bu, sadece kâr almanın pozisyona ayarlandığı anlamına gelir..
Kodu değiştirdim.
Aynısı. Ortalama TP ile 2 satış emri var. Bu emirlerin her ikisi için de alış emri açarken TP silinmelidir. Ancak yalnızca birinci dereceden kaldırılır ve ikincisi ortalama TP ile kalır.Her şeyi karıştırmışsınız..
İlk önce bir sipariş verdin
Ama sonra işlevi çağırırsın
Hangisi büyük olasılıkla seçimi değiştirir .. Ve püresi çıkıyor .. Sinekleri pirzolalardan ayırın ve her şey işe yarayacak ..
Her şeyi karıştırmışsınız..
İlk önce bir sipariş verdin
Ama sonra işlevi çağırırsın
Hangisi büyük olasılıkla seçimi değiştirir .. Ve püresi çıkıyor .. Sinekleri pirzolalardan ayırın ve her şey işe yarayacak ..
eğer OrderTakeProfit() > 0, ticaretin kârda olduğu anlamına gelmez.. Bu, sadece kâr almanın pozisyona ayarlandığı anlamına gelir..
Başka bir soru ortaya çıktı. Ortalama fiyatı hesaplama işlevi:
Yeniden hesaplama neden zaman içinde ilerliyor? Onlar. 2. satış emri açıldı, fonksiyon ortalama fiyatı verdi. Ama 3. sıra açıldığında fonksiyon hem eski değeri veriyor hem de yenisini veriyor (Dergideki baskıya baktım) ve sonuç olarak eski değer kalıyor. Neyi yanlış yaptı?