Piyasada otomatik kontrol - sayfa 6

 
Evgeniy Scherbina :
XAUUSDcheck test etmez. Ancak test başarılı olur çünkü diğerlerini test eder....
Henüz herhangi bir test yaptınız mı? Sabah denedim, ancak bu otomatik test benim için tamamen ortadan kalktı ve danışman, otomatik testi atlayarak doğrulama için doğrudan moderatöre gitti. Eskiden olduğu gibi.
 
Bunu bildiğim iyi oldu.
Solving Atomatic Validation Problems
Solving Atomatic Validation Problems
  • 2017.01.11
  • Stanislav Korotky
  • www.mql5.com
If you're distributing some products for MetaTrader 4/5 via the Market, you probably know that a special "welcome" stage of automatic product validation has been added recently by MetaQuotes on the...
 
fxsaber :
Bunu bildiğim iyi oldu.
"Yeterince beklediğinizi düşünüyorsanız ve sorun devam ediyorsa servis masasına yazın ve biraz daha bekleyin ;-)."
 

peki, nasıl

Sipariş Gönderme hatası 131

İşe yaramıyor

otomatik test için test cihazında hata yok

Tüm önerileri takip ettim ve hala:

Sipariş Gönderme hatası 131

Üfff !!!!
 

Bana öyle geliyor ki, bir satıcının yapması gereken ilk şey otomatik doğrulama.

Ben de çeşitli hatalara düştüm, bunlar dikkatsizlikten kaynaklanıyordu.

Ancak, otomatik doğrulama, bu, kod tabanında ücretsiz bir kod indiren ve adını değiştirerek satmaya çalışan "ahbapların" önündeki ilk duvardır. :-(

Ne yazık ki, bu nedenle, piyasada birkaç tane değerli olanı bulmak zor olan binlerce program var.

Marketin böyle bir kodu satış için kabul etmediği kod tabanına özel bir kod koyardım. Yazık ki :-( burada yıllardır, hatta 5 yıl boyunca, müşterileri memnun edecek şekilde programlar geliştiriyor, iyileştiriyor, iyileştiriyorsunuz.

Ve birisi bitmiş ürünü indirdi, adını değiştirdi - onu damping fiyatına piyasaya sürdü ve hepsi bu .... Müşteriler daha ucuz olduğunu düşünüyor, bu yüzden satın alacağım ....

Çin'deki gibi

Aliexpress'te oturuyorum, - GOPRO için en az 5'e ucuz çubuklar sipariş ettim - sonuç denizde bir hafta - çubuk paslı.

Burada el, paslanmayan orijinal çubuğu 100 dolara satın almak için kalkmaz. Ama hayır, ben zaten Çin'e 120 dolar verdim ve bir başkası da aynı çubuğu sipariş etti ............. Kahrolası açgözlülük ......

 
Stefan Stoyanov :

peki, nasıl

Sipariş Gönderme hatası 131

İşe yaramıyor

otomatik test için test cihazında hata yok

Tüm önerileri takip ettim ve hala:

Sipariş Gönderme hatası 131

Üfff !!!!
Sadece minimum değeri kontrol etmeniz gerekiyor ve bu zor değil
 
Evgeniy Scherbina :
Sadece minimum değeri kontrol etmeniz gerekiyor ve bu zor değil


Partiyi hesaplamak için bir fonksiyonum var, bunu yapıyor

           double LotsOptimized()
    { int      lotDigit=( int ) fabs ( log10 ( SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_STEP )));
             if (! MathIsValidNumber (lotDigit)) lotDigit= 0 ;  
{
double FreeMg = AccountFreeMargin ();
double Margin = MarketInfo ( Symbol (), MODE_MARGINREQUIRED );
double Step = MarketInfo ( Symbol (), MODE_LOTSTEP );
double Minlot = MarketInfo ( Symbol (), MODE_MINLOT );
double MaxLot = MarketInfo ( Symbol (), MODE_MAXLOT );
double loty = MathFloor (FreeMg*Risk/ 100 /Margin/Step)*Step;
loty = NormalizeDouble (loty,lotDigit);
if (loty<Minlot) loty=Minlot;
if (loty>MaxLot) loty=MaxLot;  
      Lots=loty;
      Lots= NormalizeDouble (Lots,lotDigit);

       return (Lots);}}
  
//================================================================
 

ayrıca piyasada örneği var


 //+------------------------------------------------------------------+
//|  Проверяет объем ордера на корректность                          |
//+------------------------------------------------------------------+
bool CheckVolumeValue( double volume, string & description )
  {
//--- минимально допустимый объем для торговых операций
   double min_volume= SymbolInfoDouble ( Symbol (), SYMBOL_VOLUME_MIN );
   if (volume<min_volume)
     {
       description = StringFormat ( "Объем меньше минимально допустимого SYMBOL_VOLUME_MIN=%.2f" ,min_volume);
       return ( false );
     }

//--- максимально допустимый объем для торговых операций
   double max_volume= SymbolInfoDouble ( Symbol (), SYMBOL_VOLUME_MAX );
   if (volume>max_volume)
     {
       description = StringFormat ( "Объем больше максимально допустимого SYMBOL_VOLUME_MAX=%.2f" ,max_volume);
       return ( false );
     }

//--- получим минимальную градацию объема
   double volume_step= SymbolInfoDouble ( Symbol (), SYMBOL_VOLUME_STEP );

   int ratio=( int ) MathRound (volume/volume_step);
   if ( MathAbs (ratio*volume_step-volume)> 0.0000001 )
     {
       description = StringFormat ( "Объем не является кратным минимальной градации SYMBOL_VOLUME_STEP=%.2f, ближайший корректный объем %.2f" ,
                               volume_step,ratio*volume_step);
       return ( false );
     }
   description = "Корректное значение объема" ;
   return ( true );
  }
 

OrderSend'i aramadan önce kontrol ediyorum

if (CheckVolumeValue(Lots,com) ==false )return(0);

herşeye rağmen yine 131 hatası var

 
Stefan Stoyanov :


Partiyi hesaplamak için bir fonksiyonum var, bunu yapıyor

           double LotsOptimized()
    { int      lotDigit=( int ) fabs ( log10 ( SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_STEP )));
             if (! MathIsValidNumber (lotDigit)) lotDigit= 0 ;  
{
double FreeMg = AccountFreeMargin ();
double Margin = MarketInfo ( Symbol (), MODE_MARGINREQUIRED );
double Step = MarketInfo ( Symbol (), MODE_LOTSTEP );
double Minlot = MarketInfo ( Symbol (), MODE_MINLOT );
double MaxLot = MarketInfo ( Symbol (), MODE_MAXLOT );
double loty = MathFloor (FreeMg*Risk/ 100 /Margin/Step)*Step;
loty = NormalizeDouble (loty,lotDigit);
if (loty<Minlot) loty=Minlot;
if (loty>MaxLot) loty=MaxLot;  
      Lots=loty;
      Lots= NormalizeDouble (Lots,lotDigit);

       return (Lots);}}
  
//================================================================

lotDigit'iniz her zaman 0'ı hesaplayan akıllı bir aptaldır. Bu, belgelerdeki örnekte yoktur. Görünüşe göre, bir sürü parantez olduğunda hoşuna gidiyor mu?

Ayrıca bu: FreeMg*Risk/100/Margin/Step... 100 nereden geliyor? Belli ki tavandan.

Bir sürü satır. Gerçekten çok ama ne hesaplıyorsunuz??

Neden: