Скачать MetaTrader 5

Проблема с валидацией советника на маркете - страница 7

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Alexey Kozitsyn
7888
Alexey Kozitsyn  
Sergey Gritsay:

Всем привет! Кто смог обойти проверку с балансом в 1$, у меня в коде стоит проверка если не достаточно средств торговые операции не совершать. Соответственно получаю такой лог валидации

test on EURUSD,H1
there are no trading operations
test on NZDUSD,H1
there are no trading operations
test on GBPUSDcheck,M30
there are no trading operations
test on XAUUSDcheck,Daily
there are no trading operations


 

А если на этапе инициализации проверить баланс, проверить мин. необходимую маржу для мин. лота и, если не хватает - просто не запускать эксперт?
Sergey Gritsay
6026
Sergey Gritsay  
Alexey Kozitsyn:
А если на этапе инициализации проверить баланс, проверить мин. необходимую маржу для мин. лота и, если не хватает - просто не запускать эксперт?
пробовал не помогает
Alexey Kozitsyn
7888
Alexey Kozitsyn  
Sergey Gritsay:
пробовал не помогает

Гм. Интересно, с учетом того, что, по сути, выход на этапе инициализации означает некорректность входных параметров, к которым, в данном случае, можно отнести и баланс...

Ошибку эксперт выдает в этом случае? Или молча "отчаливает"? 

Sergey Gritsay
6026
Sergey Gritsay  
Alexey Kozitsyn:

Гм. Интересно, с учетом того, что, по сути, выход на этапе инициализации означает некорректность входных параметров, к которым, в данном случае, можно отнести и баланс...

Ошибку эксперт выдает в этом случае? Или молча "отчаливает"? 

добавляю такой код

 

   if(IsTesting())
     {
     if(AccountFreeMarginCheck(_Symbol,OP_BUY,SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN))<=0.0)
     {
      return(INIT_PARAMETERS_INCORRECT);
     }

 получаю такой ответ

test on EURUSD,H1
there are no trading operations
test on NZDUSD,H1
2016.02.01 00:00  exp_martin_new NZDUSD,H1: initialization failed (32767)
there are no trading operations


 валидация опять не пройдена.

Alexey Kozitsyn
7888
Alexey Kozitsyn  
Sergey Gritsay:

добавляю такой код

MT5? Видимо, МТ4. А почему только в тестере проверка? 
Alexey Kozitsyn
7888
Alexey Kozitsyn  

Вообще, есть статья на эту тему. А там код:

bool CheckMoneyForTrade(string symb, double lots,int type)
  {
   double free_margin=AccountFreeMarginCheck(symb,type,lots);
   //-- если денег не хватает
   if(free_margin<0)
     {
      string oper=(type==OP_BUY)? "Buy":"Sell";
      Print("Not enough money for ", oper," ",lots, " ", symb, " Error code=",GetLastError());
      return(false);
     }
   //-- проверка прошла успешно
   return(true);
  }

Так что, если кому-то что-то не нравится - ссылку на эту статью.

Sergey Gritsay
6026
Sergey Gritsay  
Alexey Kozitsyn:
MT5? Видимо, МТ4. А почему только в тестере проверка? 
в смысле в тестере? При торговле у меня проверка организована в функции открытия ордеров
Alexey Kozitsyn
7888
Alexey Kozitsyn  
Sergey Gritsay:
в смысле в тестере? При торговле у меня проверка организована в функции открытия ордеров
if(IsTesting())
Не совсем понятно тогда зачем это условие?
Sergey Gritsay
6026
Sergey Gritsay  
Alexey Kozitsyn:

Вообще, есть статья на эту тему. А там код:

bool CheckMoneyForTrade(string symb, double lots,int type)
  {
   double free_margin=AccountFreeMarginCheck(symb,type,lots);
   //-- если денег не хватает
   if(free_margin<0)
     {
      string oper=(type==OP_BUY)? "Buy":"Sell";
      Print("Not enough money for ", oper," ",lots, " ", symb, " Error code=",GetLastError());
      return(false);
     }
   //-- проверка прошла успешно
   return(true);
  }

Так что, если кому-то что-то не нравится - ссылку на эту статью.

если пользоваться данной функцией нарываешься на ошибку валидации there are no trading operations и как это правильно обойти не понятно
Alexey Kozitsyn
7888
Alexey Kozitsyn  
Sergey Gritsay:
если пользоваться данной функцией нарываешься на ошибку валидации there are no trading operations и как это правильно обойти не понятно
Задайте вопрос модератору маркета...
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий