Hatalar, hatalar, sorular - sayfa 2447

 

optimizasyon sırasında strateji test cihazında bir hata.

" Test aracısı tarafından reddedilen görev "

Örneğin, hesap para birimi EUR ise,

  • EURJPY Sorun değil
  • GBPJPY Hatası


Hesap para birimi ABD doları ise,

  • USDCAD Sorun değil
  • USDJPY Sorun değil
  • EURAUD hatası


kodda başka döviz çiftleri kullanıldığında görünür.

özellikle benim örneğimde - bu, dinamik lot hesaplamasının kullanımıdır

 //+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
   if (DynamicLot)
     {
       if ( SymbolInfoDouble (sym, SYMBOL_ASK )!= 0 )
        {
         if (Valdepo== "USD" || Valdepo== "USC" )
           {
             if ( StringSubstr (sym, 0 , 3 )== "USD" )Lot2=BalanceFreeMargin*LotBalancePercent* AccountInfoInteger ( ACCOUNT_LEVERAGE )/ 100 / SymbolInfoDouble (sym, SYMBOL_TRADE_CONTRACT_SIZE );
             else if ( StringSubstr (sym, 3 , 3 )== "USD" )Lot2=BalanceFreeMargin*LotBalancePercent* AccountInfoInteger ( ACCOUNT_LEVERAGE )/ SymbolInfoDouble (sym, SYMBOL_ASK )/ 100 / SymbolInfoDouble (sym, SYMBOL_TRADE_CONTRACT_SIZE );
             else
              {
               pr= SymbolInfoDouble ( StringSubstr (sym, 0 , 3 )+ "USD" +prefix, SYMBOL_ASK );
               if (pr!= 0 )Lot2=BalanceFreeMargin*LotBalancePercent* AccountInfoInteger ( ACCOUNT_LEVERAGE )/pr/ 100 / SymbolInfoDouble (sym, SYMBOL_TRADE_CONTRACT_SIZE );
               else
                 {
                   double Margin= 0 ;
                   OrderCalcMargin ( ORDER_TYPE_BUY , Symbol (), 1 , SymbolInfoDouble ( Symbol (), SYMBOL_ASK ),Margin);
                   if (Margin!= 0 )Lot2=BalanceFreeMargin/Margin/ 100 *LotBalancePercent;
                 }
              }
           }
         else

         if (Valdepo== "EUR" || Valdepo== "EUC" )
           {
             if ( StringSubstr (sym, 0 , 3 )== "EUR" )Lot2=BalanceFreeMargin*LotBalancePercent* AccountInfoInteger ( ACCOUNT_LEVERAGE )/ 100 / SymbolInfoDouble (sym, SYMBOL_TRADE_CONTRACT_SIZE );
             else
              {
               pr= SymbolInfoDouble ( "EUR" + StringSubstr (sym, 0 , 3 )+prefix, SYMBOL_BID );
               if (pr!= 0 )Lot2=BalanceFreeMargin*LotBalancePercent* AccountInfoInteger ( ACCOUNT_LEVERAGE )*pr/ 100 / SymbolInfoDouble (sym, SYMBOL_TRADE_CONTRACT_SIZE );
               else
                 {
                   double Margin= 0 ;
                   OrderCalcMargin ( ORDER_TYPE_BUY , Symbol (), 1 , SymbolInfoDouble ( Symbol (), SYMBOL_ASK ),Margin);
                   if (Margin!= 0 )Lot2=BalanceFreeMargin/Margin/ 100 *LotBalancePercent;
                 }
              }
           }



onlar. EA başka bir para biriminin fiyatını istediğinde.

 
Nikolai Semko :

O halde MQ için yetkin bir argümana ihtiyacınız var.
Bu ne için? Bu, mql'nin yeteneklerini nasıl ve hangi durumlarda genişletebilir? Ve sadece kişisel bir hevesin tatmini değil.

Danışmanlarla çalışmak için bir yönetici yazdığınızı varsayalım. Artık farklı isimlere sahip iki özdeş Uzman Danışman aynı olarak tanınamaz.

Örneğin, Expert Advisor'ı başlatırken, onun ve klonunun daha önce başlatılıp başlatılmadığını belirlemeniz gerekir.

Pek çok çizelge ve danışman olduğunda bu olur. Ve yanlışlıkla bir şeyi yeniden başlatırsınız.

 

Sevgili geliştiriciler, lütfen göstergedeki çubuğun geçerli tarihini arabelleğe kopyalarken neden periyodik olarak bir hata aldığımı açıklayın?

 2019.04 . 26 12 : 12 : 39.811 i-Regr4_05i (Si- 6.19 ,M1)        Failed to copy data from the handle_Regressor indicator, error code 4401
   datetime Arr[],time1;
   if ( CopyTime (symb, 0 , 0 , 1 ,Arr)<= 0 )
   {
   PrintFormat ( "Failed to copy data from the handle_Regressor indicator, error code %d" , GetLastError ());
   return ( 0 );
   }

Kışın böyle bir hata yoktu - göstergeler bir ay boyunca istikrarlı bir şekilde çalıştı ve bunu yeni yapılarda gözlemlemeye başladım.

 
Teşekkür ederim!
 
Mykhailo Ohorodniichuk :

yardım edin lütfen sorunu çözün. şimdikiler yerine normal karakterlerin aktarımı nasıl yapılır?

Google chcp komutu hakkında

chcp 1251 - pencereler-1251

chcp 65001 - utf-8

...

 
fxsaber :

Danışmanlarla çalışmak için bir yönetici yazdığınızı varsayalım. Artık farklı isimlere sahip iki özdeş Uzman Danışman aynı olarak tanınamaz.

Örneğin, Expert Advisor'ı başlatırken, onun ve klonunun daha önce başlatılıp başlatılmadığını belirlemeniz gerekir.

Pek çok çizelge ve danışman olduğunda olur. Ve yanlışlıkla bir şeyi yeniden başlatırsınız.

Apaçık...

Ama yine de şu formüle eğilimliyim: ticaret hesabı başına birden fazla Uzman Danışman. Daha mantıklı. Birleştirmek istediğiniz birkaç strateji olsa bile, bu da bir Uzman Danışman çerçevesinde yapılmalıdır. O zaman danışmanlarla çalışmak için bir yöneticiye ihtiyacınız yok. Ayrıca tekrar ediyorum, farklı bir hash, geliştiricilerin yerel dahili hash'i olsa bile Expert Advisor'ın farklı olduğunun garantisi değildir.

Ve danışmanı başlatma sırasında, olası çakışmaları önlemek için yeni danışmanı uyarmak ve daha fazla çalışmasına izin vermek için bu hesapta yanlışlıkla başka bir danışmanın başlatılıp başlatılmadığını kontrol etmeniz gerekiyorsa, bu, düzenli olarak kolayca çözülebilir. fonksiyonlar ve aynılık kontrolü burada gerekli değildir.

 
Nikolai Semko :

Apaçık...

Ama yine de aşağıdaki formüle doğru eğiliyorum

Peki kişisel tercihiniz nedir? Genel olarak MT5'ten bahsediyoruz.
 
fxsaber :
Peki kişisel tercihiniz nedir? Genel olarak MT5'ten bahsediyoruz.
Danışmanlarla çalışmak için bir yönetici yaratmanın senin dışında birinin aklına geleceğinden çok şüpheliyim. ))
 
Nikolai Semko :
Danışmanlarla çalışmak için bir yönetici yaratmanın senin dışında birinin aklına geleceğinden çok şüpheliyim. ))

Niye ya? Çok doğru ve kullanışlı bir şey.

Profilleri kullanmak zorunda olsanız da, birçok sınırlamaları vardır.

 
Andrey Khatimlianskii :

Niye ya? Çok doğru ve kullanışlı bir şey.

Profilleri kullanmak zorunda olsanız da, birçok sınırlamaları vardır.

Andrey, profillerden bir şey anlamadım.

Neden: