시장에서 자동 확인 - 페이지 6

 
Evgeniy Scherbina :
XAUUSDcheck는 테스트하지 않습니다. 그러나 테스트는 다른 모든 것을 테스트하기 때문에 성공합니다....
아직 테스트를 해보셨나요? 아침에 해봤는데 이 자동 테스트가 완전히 사라지고 어드바이저가 자동 테스트를 거치지 않고 직접 중재자에게 확인을 하러 갔습니다. 예전처럼.
 
알아 둘만 한.
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 :
알아 둘만 한.
"당신이 충분히 기다렸다고 생각하고 문제가 여전히 거기에 있다면, 서비스 데스크에 편지를 쓰고 더 기다리십시오 ;-)."
 

글쎄, 어떻게

주문 보내기 오류 131

작동하지 않습니다

자동 테스트를 위한 테스터에 오류가 없습니다.

나는 모든 권장 사항을 따랐지만 여전히:

주문 보내기 오류 131

어이쿠 !!!!
 

판매자가 가장 먼저 거쳐야 하는 것이 자동 인증인 것 같습니다.

저 역시 부주의로 인해 여러 가지 실수를 저질렀습니다.

그러나 자동 유효성 검사는 코드베이스에서 무료 코드를 다운로드하고 이름을 변경하여 판매하려고 하는 "친구" 앞에 있는 첫 번째 벽입니다. :-(

불행히도 이 때문에 시장에는 수천 개의 프로그램이 있으며 그 중 몇 가지 가치 있는 프로그램을 찾기가 어렵습니다.

나는 시장이 판매용으로 그러한 코드를 허용하지 않는 코드 베이스에 특별한 코드를 넣을 것입니다. 부끄러운 일입니다 :-(여기서 몇 년, 심지어 5 년 동안, 당신은 고객이 만족할 수 있도록 프로그램을 개발, 개선, 개선합니다.

그리고 누군가는 완성품을 다운받아 이름을 바꾸었다- 덤핑 가격에 시장에 내던졌다 , 그리고 그게 다야.... 고객들이 더 싸다고 생각해서 사줄게 ....

중국에서처럼

나는 aliexpress에 앉아 있습니다. - 나는 GOPRO를 위해 최소 5개에 싼 스틱을 주문했습니다. - 결과는 바다에서 일주일입니다. - 스틱은 녹슬었습니다.

여기서 손은 녹슬지 않는 100달러에 원래 막대기를 사기 위해 일어나지 않습니다. 근데 노노 이미 중국에 120불 줬는데 또 다른놈이 같은 스틱을 주문했네.............. 빌어먹을 탐욕.......

 
Stefan Stoyanov :

글쎄, 어떻게

주문 보내기 오류 131

작동하지 않습니다

자동 테스트를 위한 테스터에 오류가 없습니다.

나는 모든 권장 사항을 따랐지만 여전히:

주문 보내기 오류 131

어이쿠 !!!!
최소값만 확인하면 되며 어렵지 않습니다
 
Evgeniy Scherbina :
최소값만 확인하면 되며 어렵지 않습니다


로트를 계산하는 기능이 있습니다.

           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);}}
  
//================================================================
 

또한 시장에 예가 있습니다


 //+------------------------------------------------------------------+
//|  Проверяет объем ордера на корректность                          |
//+------------------------------------------------------------------+
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를 호출 하기 전에 확인합니다.

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

모든 것에도 불구하고 오류 131이 있습니다.

 
Stefan Stoyanov :


로트를 계산하는 기능이 있습니다.

           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은 항상 0을 계산하는 영리한 바보입니다. 이것은 문서의 예에 없습니다. 분명히, 당신은 괄호가 많을 때 좋아합니까?

또한 이것은: FreeMg*Risk/100/Margin/Step... 100은 어디에서 왔습니까? 분명히 천장에서.

많은 라인. 정말 많은데요?? 어떻게 계산하시나요??

사유: