Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 179

 
Izdesbyll :

Bana yardım et lütfen! yazı:

Hata 0 ve sipariş kapanmıyor! Sorun nedir?

Neden fiyatı ikiye normalleştirelim? Önce Rakamlar gereklidir. Ve Bid yerine OrderClosePrice() yazmak daha kolay
 

Ya da belki siparişin bir kısmını kapattı???

Ve eğer öyleyse ne yazdığını deneyin?

 double bylo = OrderLots();
if (OrderClose( OrderTicket(), 0.1 , NormalizeDouble (Bid, 2 ), 1 ))     Alert ( "  Закрито частину лоту в розмірі 0.1 від " ,bylo);
else Alert ( "Маємо помилку " , GetLastError ());
 

artmedia70 :
А почему нормализуете цену до двух? До Digits нужно. А проще писать OrderClosePrice() вместо Bid


 OrderClose( OrderTicket(), 0.1 , OrderClosePrice(), 1 );  
       Alert ( "Маємо помилку " , GetLastError ());

Şimdi 4051 hatası veriyor

 
ALXIMIKS :

Ya da belki siparişin bir kısmını kapattı???

Ve eğer öyleyse ne yazdığını deneyin?



bylo = 0.1 ve siparişimi daha fazla kapatma. uyarı evet 0
 
Şimdi bir aksaklık, yazıyorum:
 double p[100];
 p[i+1] = OrderProfit();
 if (p[i+ 1 ]> 0 ) 
    {
       Alert ( "Є прибуток ордер " ,i+ 1 );
       OrderSelect (i+ 1 ,SELECT_BY_POS,MODE_TRADES); 
       Alert ( "Маємо помилку " , GetLastError ());
       Alert ( "Вибрали ордер " ,i+ 1 );
      OrderClose( OrderTicket(), 0.1 ,   NormalizeDouble (Bid, Digits ), 1 );  
       Alert ( "Маємо помилку " , GetLastError ());
       Alert ( "Закрили ордер " ,i+ 1 ); 

i+1 = 2 ve her yerde ve üçüncü mertebenin başlangıcını kapatın.

 
Izdesbyll :

Bana yardım et lütfen! yazı:

Hata 0 ve sipariş kapanmıyor! Sorun nedir?

Ve şöyle denerseniz:

     double ld_Price;
     if (OrderType() == 0 ) ld_Price = NormalizeDouble (Bid, Digits );
     else ld_Price = NormalizeDouble (Ask, Digits );
    OrderClose (OrderTicket(), OrderLots(), ld_Price, 2 );

Ve kaldırma prosedüründen önce ilgili sırayı SEÇMEYİ unutmayın!!!

 
Izdesbyll :
Şimdi bir aksaklık, yazıyorum:

i+1 = 2 ve her yerde ve üçüncü mertebenin başlangıcını kapatın.

Biletleri bir dizide toplarsanız, kendi listenize (sipariş) göre değil, BİLETLER'e göre bir sipariş SEÇMENİZ gerekir.
 
TarasBY :

Ve şöyle denerseniz:

Ve kaldırma prosedüründen önce ilgili sırayı SEÇMEYİ unutmayın!!!


 if (p[i+ 1 ]> 0 ) 
    {
       Alert ( "Є прибуток ордер " ,i+ 1 );
       OrderSelect (i+ 1 ,SELECT_BY_POS,MODE_TRADES); 
       Alert ( "Маємо помилку " , GetLastError ());
       Alert ( "Вибрали ордер " ,i+ 1 );
       double ld_Price;
       if (OrderType() == 0 ) ld_Price = NormalizeDouble (Bid, Digits );
       else ld_Price = NormalizeDouble (Ask, Digits );
      OrderClose (OrderTicket(), OrderLots(), ld_Price, 2 );  
       Alert ( "Маємо помилку " , GetLastError ());
       Alert ( "Закрили ордер " ,i+ 1 ); 

ÜÇÜNCÜ sipariş GetLastError = 0, i+1=2'yi kapatır, OrderProfit() çivilenmiş İKİNCİ siparişe yanıt verir. yardım.... (OrderTicket()-1) yazardım ama korkarım faydası olmayacak

 
Izdesbyll :

ÜÇÜNCÜ sipariş GetLastError = 0, i+1=2'yi kapatır, OrderProfit() İKİNCİ siparişe yanıt verir. yardım.... (OrderTicket()-1) yazardım ama korkarım faydası olmayacak

okuyamazsınız (tabii ki p[] dizisinde bilet numaraları yoksa)!

     OrderSelect (p[i+ 1 ], SELECT_BY_TICKET, MODE_TRADES); 

...genel olarak, bir kod parçasıyla "aptallığı" yakalamak çok zordur... :)

 
Merhaba! Birine lütfen söyleyin, 1-60 aralığında, hepsinin farklı sihirli numaraları varsa, tüm siparişleri kapatmak için (bekleyen siparişleri silmek dahil) bir tür blok vardır. Varsa lütfen yazın. Ve nereye ekleneceğine dair talimatlarla zorlaştırmıyorsa (aksi takdirde mql'de tamamen yeşildir). Şimdiden teşekkürler.

Söylemeyi unuttum, kapanışın depodan elde edilen kâr yüzdesine göre yapılmasını istiyorum.