Замучила ошибка there are no trading operations - страница 7

 

Резонно, Артём. В этом простейшем коде действительно нет принтов об ошибке. Обязательно добавлю и проверю вновь. Но в том, основном советнике есть сообщения на каждую ошибку.

И по второму вопросу, когда валидатор ставит в информационную среду минимальный лот 0.2, и пытается открыть сделку при стартовом депозите 1$. Понятно что никакие проверки и принты не помогут пройти этот тест. Он гарантированно завершится с ошибкой 134 если ничего не проверять, как в выложенном выше коде. Или "нет торговых операций" если всё проверять и не отправлять приказ на открытие на сервер.

Какой выход из этого замкнутого круга?

Почему по NZDUSD нет торговых операций ВСЕГДА? Я проверял и тот и этот советники. Отправлял коллеге, чтобы он проверил на своём аккаунте для чистоты эксперимента. Торговых операций не было и у него. Причём неважно, успешно проходит проверка или нет. Никаких ограничений на торговлю по этой паре не стоит, как видно из кода.

Это не только у меня и с моим советником. По NZDUSD нет сделок ни у кого, кто выкладывал отчёт валидатора в этой и соседних ветках.
 
Andrey Kaunov:

Резонно, Артём. В этом простейшем коде действительно нет принтов об ошибке. Обязательно добавлю и проверю вновь. Но в том, основном советнике есть сообщения на каждую ошибку.

И по второму вопросу, когда валидатор ставит в информационную среду минимальный лот 0.2, и пытается открыть сделку при стартовом депозите 1$. Понятно что никакие проверки и принты не помогут пройти этот тест. Он гарантированно завершится с ошибкой 134 если ничего не проверять, как в выложенном выше коде. Или "нет торговых операций" если всё проверять и не отправлять приказ на открытие на сервер.

Какой выход из этого замкнутого круга?

Почему по NZDUSD нет торговых операций ВСЕГДА? Я проверял и тот и этот советники. Отправлял коллеге, чтобы он проверил на своём аккаунте для чистоты эксперимента. Торговых операций не было и у него. Причём неважно, успешно проходит проверка или нет. Никаких ограничений на торговлю по этой паре не стоит, как видно из кода.

Это не только у меня и с моим советником. По NZDUSD нет сделок ни у кого, кто выкладывал отчёт валидатора в этой и соседних ветках.

Вы сами сказали этот выход:

всё проверять и не отправлять приказ на открытие на сервер

Это нужно делать самому, а не ждать неизбежную ошибку от сервера. И обязательно сообщать в журнал о невозможности отправки приказа на сервер по такой-то причине.

 
Artyom Trishkin:

...

Это нужно делать самому, а не ждать неизбежную ошибку от сервера. И обязательно сообщать в журнал о невозможности отправки приказа на сервер по такой-то причине.

Так тогда я не прохожу проверку, Артём. И после часа проверки получаю отчёт, который уже в рамочку можно закатать:

А что по второму вопросу, насчёт NZDUSD? Может в ней дело? По EURUSD сделки есть всегда, а на NZDUSD валидатор как будто спотыкается. Иногда пропихивает дальше, тогда проходит тест:

Но в большей части случаев зависает и ошибка валидации. Проверьте этот NZDUSD, мне видится что именно в нём проблема.

 
Andrey Kaunov:

Так тогда я не прохожу проверку, Артём. И после часа проверки получаю отчёт, который уже в рамочку можно закатать:

этого более чем достаточно, чтобы исправить все на берегу

раньше отчеты валидатора об ошибках были гораздо скромнее

запускаете тестер стратегий на NZDUSD H1 и смотрите в журнале что получается

то же самое с GBPUSD M30

 

Ренат, вот что в том простейшем коде может не работать. У меня в тестере он работает на любой паре. Вот я его немного апгрейдил. Проверьте сами, может я что то упускаю...

#property version   "1.00"
#property strict

int test_ticket[2]={0,0};
double   gl_lots,
         gl_ask,
         gl_bid;
string   gl_comm;         
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit() {
//---

//---
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason) {
//---

}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick() {
   gl_lots=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
   gl_ask=NormalizeDouble(Ask,_Digits);
   gl_bid=NormalizeDouble(Bid,_Digits);
   gl_comm="test";
//---
   if(AccountFreeMarginCheck(_Symbol,OP_BUY,gl_lots)<=0 || GetLastError()==134) {
      printf("Not enough money for the minimum lot: %.4f",gl_lots); 
      ExpertRemove();
   }
   if(test_ticket[1]<8 && test_ticket[0]==0) {
      test_ticket[0]=OrderSend((StringCompare(_Symbol,"NZDUSD")==0?"NZDUSD":_Symbol),OP_BUY,gl_lots,gl_ask,30,0.0,0.0,gl_comm,33333,0,clrNONE);
      if(test_ticket[0]>0) test_ticket[1]++;
   }   
   if(test_ticket[0]>0)
      if(OrderSelect(test_ticket[0],SELECT_BY_TICKET)) {
         if(OrderCloseTime()==0 && OrderOpenTime()+300<TimeCurrent())
            if(OrderClose(test_ticket[0],OrderLots(),gl_bid,30,clrNONE)) {
               printf("Test order closed, ticket #%d",test_ticket[0]);
               test_ticket[0]=0;
            }   
      }
}
//+------------------------------------------------------------------+

И всё равно на NZDUSD нет сделок, хоть тресни:

Но теперь валидатор не выдаст ошибку 134, и не покажет что тестил с минимальным лотом 0.2 при начальном депозите 1$

 
Andrey Kaunov:

Ренат, вот что в том простейшем коде может не работать. У меня в тестере он работает на любой паре. Вот я его немного апгрейдил:

И всё равно на NZDUSD нет сделок, хоть тресни:

в обычном тестере прогоните, в журнале могут быть ошибки
 

Да какой смысл, Ренат. Ну вот прогнал



 
Andrey Kaunov:

Ренат, вот что в том простейшем коде может не работать. У меня в тестере он работает на любой паре. Вот я его немного апгрейдил. Проверьте сами, может я что то упускаю...

И всё равно на NZDUSD нет сделок, хоть тресни:

Но теперь валидатор не выдаст ошибку 134, и не покажет что тестил с минимальным лотом 0.2 при начальном депозите 1$

Эксперт нельзя выгружать.

 
Artyom Trishkin:

Эксперт нельзя выгружать.

Артём, без выгрузки всё было точно так же. Дело не в эксперте, а в NZDUSD. Обратите же внимание на суть, а не частности!!!

Выгружаю чтобы не получить ошибку превышения объёма файла логов.
 
Andrey Kaunov:

Артём, без выгрузки всё было точно так же. Дело не в эксперте, а в NZDUSD. Обратите же внимание на суть, а не частности!!!

Валидатор перебирает параметры. При встрече первой комбинации, при которой торговых операций нет, вы выгружаете эксперт. Всё. Дальше тестирование бесполезно.

Суть в том, что вы не даёте валидатору работать с экспертом.

Тесты проходят даже при том, что на некоторых из символов не окажется торговых операций. Главное, чтобы при невозможности выполнить торговую операцию, эксперт выдавал об этом запись в журнал и продолжал работу.
Понимаете, вы делаете программу для людей, а не для валидатора. Зачем в маркете программа, которая не обрабатывает ошибки, а тупо удаляется с графика? Вы сами-то купите такое чудо?