Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 626

 
Alexey Viktorov :


Nesin sen, akıllı kız ve kısaca. Teşekkür ederim.

 
Karputov Vladimir :
Bu, PositionGetDouble işlevinin geri dönüp dönmediğini görmek için yapılan bir kontroldür. Başarısızlık durumunda bir hatayı gösteren 0 döndürür.

Ve ilk beşte ikinci formu kullanıyorum, bana daha güvenilir gibi geliyor.

 
Alexey Volchanskiy :

Ve ilk beşte ikinci formu kullanıyorum, bana daha güvenilir gibi geliyor.

Evet, bir döngüde bile.

 do while (!PositiobGetDouble( POSITION_VOLUME , double_var);
Kesinlikle atlamayacağım...
 

Aptalım ben... :-)

iCustom() kullanarak bir Expert Advisor'daki değişkenlerin değerlerine nasıl erişilir?

 double _Volume

ve

 int High_Low

bu gösterge:

 #property version    "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {  
     long   Vol0 = iVolume ( NULL , 0 , 0 );
     long   Vol1 = iVolume ( NULL , 0 , 1 );
     long   Vol2 = iVolume ( NULL , 0 , 2 );
     long   Vol3 = iVolume ( NULL , 0 , 3 );
     long   Vol4 = iVolume ( NULL , 0 , 4 );
     long   Vol5 = iVolume ( NULL , 0 , 5 );
     long   Vol6 = iVolume ( NULL , 0 , 6 );
     long   Vol7 = iVolume ( NULL , 0 , 7 );
     long   Vol8 = iVolume ( NULL , 0 , 8 );
     long   Vol9 = iVolume ( NULL , 0 , 9 );
     long   Vol10= iVolume ( NULL , 0 , 10 );

     double high1 = iHigh ( NULL , 0 , 1 );
     double low1 =   iLow ( NULL , 0 , 1 );    
     double high2 = iHigh ( NULL , 0 , 2 );    
     double low2 =   iLow ( NULL , 0 , 2 );
     double high3 = iHigh ( NULL , 0 , 3 );    
     double low3 =   iLow ( NULL , 0 , 3 );
     double high4 = iHigh ( NULL , 0 , 4 );
     double low4 =   iLow ( NULL , 0 , 4 );    
     double high5 = iHigh ( NULL , 0 , 5 );    
     double low5 =   iLow ( NULL , 0 , 5 );
     double high6 = iHigh ( NULL , 0 , 6 );    
     double low6 =   iLow ( NULL , 0 , 6 );
     double high7 = iHigh ( NULL , 0 , 7 );
     double low7 =   iLow ( NULL , 0 , 7 );    
     double high8 = iHigh ( NULL , 0 , 8 );    
     double low8 =   iLow ( NULL , 0 , 8 );
     double high9 = iHigh ( NULL , 0 , 9 );    
     double low9 =   iLow ( NULL , 0 , 9 );
     double high10 = iHigh ( NULL , 0 , 10 );
     double low10 = iLow ( NULL , 0 , 10 );    
    
     double _Volume = NormalizeDouble ((Vol1+Vol2+Vol3+Vol4+Vol5+Vol6+Vol7+
                     Vol8+Vol9+Vol10)/ 10 , _Digits );
     int High_Low = ( int )(( MathAbs (high1-low1)+ MathAbs (high2-low2)+ MathAbs (high3-low3)+
               MathAbs (high4-low4)+ MathAbs (high5-low5)+ MathAbs (high6-low6)+
               MathAbs (high7-low7)+ MathAbs (high8-low8)+ MathAbs (high9-low9)+
               MathAbs (high10-low10))/( 10 * Point ));
   
   
   Alert ( " Vol0 = " ,Vol0, ", Voll = " ,Vol1, ", Vol2 = " ,Vol2, ", Vol3 = " ,Vol3,
     ", Vol4 = " ,Vol4, ", Vol5 = " ,Vol5, ", Vol6 = " ,Vol6);
   Alert ( " Vol7 = " ,Vol7, ", Vol8 = " ,Vol8, ", Vol9 = " ,Vol9, ", Vol10 = " ,Vol10); 
   Alert ( "Cредний минутный объём за 10 мин. _Volume = " ,_Volume);
   
   Alert ( "Среднее поминутное движение за 10 мин. High_Low = " ,High_Low);  
   
  
   return (rates_total);
  }
//+------------------------------------------------------------------+
 
Roman Shiredchenko :

Aptalım ben... :-)

iCustom() kullanarak bir Expert Advisor'daki değişkenlerin değerlerine nasıl erişilir?

ve

bu gösterge:

Dolaylı. Değişkenin değerini gösterge arabelleğine yazıp iCustom üzerinden oradan almak gerekiyor.
 
Andrey Barinov :
Dolaylı. Değişkenin değerini gösterge arabelleğine yazıp iCustom üzerinden oradan almak gerekiyor.

Bu anlaşılabilir bir durum... Belki bir değişken için kısa bir örnek ve bu kadar... Her ne kadar yardımda kendimden bir şeyler bulacağım gibi görünse de...

Sayesinde. Orada, ne tür bir arabellek düzenleneceğini anlamında arabelleğe nasıl yazılacağı .... burada, prensip olarak, bu göstergedeki satırlara ihtiyaç yoktur ...

 
MQL4'te bir piyasa emrinin sihirli numarası nasıl değiştirilir?
 
Alexey Volchanskiy :

Ayrıca açık bir tür dönüşümü de vardır:

Teşekkür ederim! Not alalım.
 
new-rena :
MQL4'te bir piyasa emrinin sihirli numarası nasıl değiştirilir?
Kesinlikle hayır, yorumla aynı. Sadece başka bir sihirbazla yeniden keşfedin
 
mila.com :

Merhaba.

Lütfen bana aşağıdaki karakterin sorununu nasıl çözeceğimi söyleyin.

EA bir pozisyon açmaya çalışır, sunucu bir requote döndürür.

Danışman kodu olmadığı için, bir yeniden fiyat teklifi olduğunu dışarıdan öğrenmeniz ve ne pahasına olursa olsun aynı pozisyonu açmanız gerekir.

Yalnızca \logs\20160922.log gibi günlük dosyalarını analiz edin. Ancak bunları MQL4/5'ten alamazsınız, yalnızca \MQL5\Files klasörü okuma/yazma için kullanılabilir.

Bu yüzden logu okuyacak, analiz edecek ve pozisyon açma ihtiyacı hakkında MT4/5'i bilgilendirecek harici bir script yazıyoruz.

Veya günlüğü aptalca saniyede bir Dosyalar klasörüne kopyalar ve oradan MQL kullanarak zaten okuyabilir ve analiz edebilirsiniz.