Hatalar, hatalar, sorular - sayfa 2414

 
Andrey Pogoreltsev :

CSymbolInfo'yu, Name yöntemiyle başlatma sırasında aşağıdakileri çağıran bir çoklu para birimi değişiminde kullanırsanız:

Ardından USDCAD sembolü için test sırasında hatalar üretilecektir:

Test sırasında mevduat para birimi nedir?

 
Slava :

Test sırasında mevduat para birimi nedir?

AMERİKAN DOLARI. Bir çift EURUSD M1 testi. Çıplak bir EA'da yeniden üretmeye çalışacağım. Şimdiye kadar işe yaramadı. Ancak günlüklerde ve yalnızca bir çiftte hatalara yol açan bu yöntemlerdi.

 
Slava :

Test sırasında mevduat para birimi nedir?

Genel olarak, çoğaltılan ve bulunan bir özellik. Ekli test ayarları.

Çıplak EA kodunun kendisi:

 #include <Trade\SymbolInfo.mqh>

int OnInit ()
  {
//---
   CSymbolInfo info;
   info.Name( "EURCHF.m" );
   info.Refresh();
   info.Name( "EURJPY.m" );
   info.Refresh();
   info.Name( "EURUSD.m" );
   info.Refresh();
   info.Name( "EURGBP.m" );
   info.Refresh();
   info.Name( "USDCAD.m" );
   info.Refresh();
//---
   return ( INIT_SUCCEEDED );
  }


Şimdi "özellik", söz verildiği gibi) Eğer Name() içinde ise şöyle kullanın:

   if (! SymbolInfoDouble (m_name, SYMBOL_TRADE_TICK_VALUE ,m_tick_value))
       return ( false );
   if (! SymbolInfoDouble (m_name, SYMBOL_TRADE_TICK_VALUE_PROFIT ,m_tick_value_profit))
       return ( false );
   if (! SymbolInfoDouble (m_name, SYMBOL_TRADE_TICK_VALUE_LOSS ,m_tick_value_loss))
       return ( false );
   if (! SymbolInfoDouble (m_name, SYMBOL_TRADE_TICK_SIZE ,m_tick_size))
       return ( false );

sonra bir hata olacaktır. Ve hata şu şekilde ortadan kalkıyor:

   if (! SymbolInfoDouble (m_name, SYMBOL_TRADE_TICK_SIZE ,m_tick_size))
       return ( false );
   if (! SymbolInfoDouble (m_name, SYMBOL_TRADE_TICK_VALUE ,m_tick_value))
       return ( false );
   if (! SymbolInfoDouble (m_name, SYMBOL_TRADE_TICK_VALUE_PROFIT ,m_tick_value_profit))
       return ( false );
   if (! SymbolInfoDouble (m_name, SYMBOL_TRADE_TICK_VALUE_LOSS ,m_tick_value_loss))
       return ( false );


not. Benim kuruş çiftlerimde ".m" öneki ile çağrılır. Örnek ayrıca normal çiftler üzerinde de çalışır.

Dosyalar:
test.png  11 kb
 
Andrey Pogoreltsev :

Genel olarak, çoğaltılan ve bulunan bir özellik. Ekli test ayarları.


Teşekkür ederim. hadi çözelim

 

MT5 build 2007'de hata. Optimizasyon modunda, giriş dizesi 63 karaktere kısaltılır.

Test kodu:

 #property strict

sinput string symbols = "AUDUSD,EURGBP,EURUSD,GBPAUD,GBPCAD,GBPCHF,GBPJPY,GBPNZD,GBPUSD,NZDUSD,USDCAD,USDCHF,USDJPY" ;
input    bool fortestopt = false ;
int OnInit (){
   Print ( "!!! " , StringLen (symbols), " | " ,symbols);

   return INIT_FAILED ;
}

void OnTick (){}


Tek seferde her şey yolunda:!!! 90 | AUDUSD,EURGBP,EURUSD,GBPAUD,GBPCAD,GBPCHF,GBPJPY,GBPNZD,GBPUSD,NZDUSD,USDCAD,USDCHF,USDJPY

Optimizasyonu fortestopt parametresi ile ayarladık, ajan günlüğüne gidin: !!! 63 | AUDUSD, EURGBP, EURUSD, GBPAUD, GBPCAD, GBPCHF, GBPJPY, GBPNZD, GBPUSD,

 

kim söyleyebilir..

Haber akışı sayfamda görüntülenmiyor.. İçeri girmeden önce kimin ne yazdığına bakın. şimdi temiz bir sayfa .. ayarlarda her şey doğru, hiçbir şeyi değiştirmedim ..

 

Derleyici hatası. Burada her şey açık olmasına rağmen bir belirsizlik hatası veriyor. İlk yöntem en uygun olarak adlandırılmalıdır. C++ ile kontrol edildi.

 class A { };

class B
{
  A _a[];
 public :
        A * operator []( uint i)       { return &_a[i]; }
   const A * operator []( uint i) const { return &_a[i]; }  
};

void OnStart ()
{
  B b;
  b[ 0 ];  // 'operator[]' - ambiguous call to overloaded function
}
 
Evgenii Kuznetsov :

MT5 build 2007'de hata. Optimizasyon modunda, giriş dizesi 63 karaktere kısaltılır.

Test kodu:


Tek seferde her şey yolunda:!!! 90 | AUDUSD,EURGBP,EURUSD,GBPAUD,GBPCAD,GBPCHF,GBPJPY,GBPNZD,GBPUSD,NZDUSD,USDCAD,USDCHF,USDJPY

Optimizasyonu fortestopt parametresi ile ayarladık, ajan günlüğüne gidin: !!! 63 | AUDUSD, EURGBP, EURUSD, GBPAUD, GBPCAD, GBPCHF, GBPJPY, GBPNZD, GBPUSD,

Tek bir testle bile 63 karaktere kesilmemesi, bu sadece bir tesadüf.

Dize giriş parametresinin uzunluğu 63 karakteri geçmemelidir (boş sonlandırıcı dahil 64)

 
Slava :

Tek bir testle bile 63 karaktere kesilmemesi, bu sadece bir tesadüf.

Dize giriş parametresinin uzunluğu 63 karakteri geçmemelidir (boş sonlandırıcı dahil 64)

Bu bir tür acımasız sınırlamadır. Bugünün gerekçeleri neler? Ve bir grup karakterden kümeler oluşturmak ne kadar uygun? Bir düzine farklı parametre mi üretiyorsunuz? O konforlu?

 
Slava :

Tek bir testle bile 63 karaktere kesilmemesi, bu sadece bir tesadüf.

Dize giriş parametresinin uzunluğu 63 karakteri geçmemelidir (boş sonlandırıcı dahil 64)

Bu kısıtlama uygun değil ama bir satırda bir kilogram patatesin fiyatını yazmıyoruz.