MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 430

 
igrok333 :

bu kodu yazdı

metaeditör küfür ediyor.



neden küfür ediyor?


#mülkiyet katı değerinde

pr başlatıldı mı?

 
igrok333 :

bu kodu yazdı

metaeditör küfür ediyor.
neden küfür ediyor?


#mülkiyet katı değerinde

Ayrıca 553 satırında değeri olmayan bir değişkenin kullanılmasının mümkün olduğu da açıkça yazılmıştır. bool pr=false yazmayı deneyin; Bu, derleyiciyi yanıltacaktır, ancak her şeyi düzgün bir şekilde kontrol etmek daha iyidir. Sonuçta, sipariş türü beklemedeyse, pr değersiz kalacaktır...

 
Roman Sharanov :

öncekinde, peki ya mql4? OnTick() işlevi ?

Konuda mql4 dili ile ilgili soru soruldu ve hemen gözüme çarptı Time[0]

Daha yakından bakıldığında, bunun özel bir dizi olduğu anlaşıldı.

Ve belgelerden bir not:

Not

İşlev, eşzamanlı bir çağrı kullanır; bu, işlevin çağrılmadan önce grafik kuyruğuna yerleştirilmiş tüm komutların yürütülmesini beklediği ve bu nedenle bu işlevin zaman alıcı olabileceği anlamına gelir. Tabloda çok sayıda nesneyle çalışıyorsanız bu durumu aklınızda tutmanız gerekir.

Bir fiyat koordinatındaki bir nesnenin birkaç değeri olabileceğinden, satır numarasının belirtilmesi gerekir. Bu özellik yalnızca aşağıdaki nesneler için geçerlidir:

  • Trend çizgisi (OBJ_TREND)
  • Açıya Göre Trend Çizgisi (OBJ_TRENDBYANGLE)
  • Gann hattı (OBJ_GANNLINE)
  • Eşit mesafeli kanal (OBJ_CHANNEL) - 2 satır
  • Doğrusal regresyon kanalı (OBJ_REGRESSION) - 3 satır
  • Standart sapma kanalı (OBJ_STDDEVCHANNEL) - 3 satır
  • Ok Çizgisi (OBJ_ARROWED_LINE)


 
Artyom Trishkin :

pr başlatıldı mı?

Başlatılması gereken nedir? Ama duyurmak için yeterli olduğunu düşündüm.
Bildirildiğinde sıfıra başlatıldığını düşündüm.
 
STARIJ :

Ayrıca 553 satırında değeri olmayan bir değişkenin kullanılmasının mümkün olduğu da açıkça yazılmıştır. bool pr=false yazmayı deneyin; Bu, derleyiciyi kandıracaktır, ancak her şeyi düzgün bir şekilde kontrol etmek daha iyidir. Sonuçta, sipariş türü beklemedeyse, pr değersiz kalacaktır...

ertelediğini hatırlattığın için teşekkür ederim)



bu yapılacak doğru şey mi?

 void zakritj_vse_sdelki()
 {
 bool pr;
 for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)       
   {                                        
   if ( OrderSelect (i, SELECT_BY_POS )== true )
      {  
         pr= false ; 

         if ( OrderType ()== OP_BUY )    pr= OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_BID ), 30 );                              
         if ( OrderType ()== OP_SELL )   pr= OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_ASK ), 30 );
         
         if (pr== false ) Print ( "закрытие ордера " , OrderSymbol () , " завершилось с ошибкой #" , GetLastError ());
         if (pr== true ) Print ( "ордер " , OrderSymbol () , " ЗАКРЫТ" );
       }
    }
  }  
 
igrok333 :

ertelediğini hatırlattığın için teşekkür ederim)
bu yapılacak doğru şey mi?

if (pr==false), if (!pr) ile eşdeğerdir
if (pr==true), if (pr) ile eşdeğerdir

Print yerine Alert kullanıyorum - günlüğü açmadan hemen ekranda görünüyor. Ve ekstra bir bilgi yok.

 
Вместо
if (OrderType()==OP_BUY)    pr=OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_BID), 30 );
if (OrderType()==OP_SELL)   pr=OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_ASK), 30 );
короче
if (OrderType()==OP_BUY)    pr=OrderClose(OrderTicket(), OrderLots(), Bid, 30 );
if (OrderType()==OP_SELL)   pr=OrderClose(OrderTicket(), OrderLots(), Ask, 30 );
или просто
pr=OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 30 );


 
STARIJ :

if (pr==false), if (!pr) ile eşdeğerdir
if (pr==true), if (pr) ile eşdeğerdir

Print yerine Alert kullanıyorum - günlüğü açmadan hemen ekranda görünüyor. Ve ekstra bir bilgi yok.

Aslında pr'nin koddaki yerleşiminden bahsediyorum))
 
Дед пенсионер :
OrderClosePrice() bu şekilde yazılabilir mi?

Anlaşmayı kapattıktan sonra OrderClosePrice() elde ederiz.
 
igrok333 :
OrderClosePrice() bu şekilde yazılabilir mi?

Anlaşmayı kapattıktan sonra OrderClosePrice() elde ederiz.

Yapabilir. Ama dikkat et. Açık bir pozisyon için kapanış fiyatını döndürür. Buna göre: Al - Teklif Ver, Sat - Sor