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

 
Andrey Kaunov:

Артём, я уже в который раз спрашиваю и не получаю внятного ответа (без обид). Почему он включает дурака именно на NZDUSD всегда, и после этого сваливается в какой то глюк с бесконечным ожиданием. В глюк сваливается валидатор, а не советник. Советнику негде сваливаться.

...

Нет, не всегда. И он проходил тест на вашем советнике на NZDUSD (отсутствие сделок - тоже результат), и никуда не сваливался в бесконечное ожидание. Он не дождался завершения тестирования на GBPUSD M30 - и выдал вам ошибку очень долгого тестирования.

Я не знаю как устроен валидатор. Не могу сказать почему он часто на NZDUSD не открывает позиций. Может там условия особые.
 
Renat Akhtyamov:

мелкий фикс, просто так:

sOr=bOr=0;

bool sCorrect=true;

      for (i=OrdersTotal()-1;i>=0;i--)
      {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) )
         {

            if (OrderSymbol()!=Symbol()) continue;

            if(OrderCloseTime()!=0) continue; // лучше не забывать. Бывает редко но метко
            if(OrderType()==OP_BUY)bOr=bOr+1;
            if(OrderType()==OP_SELL)sOr=sOr+1;
         } else {

            sCorrect=false; // не смогли выбрать ордер, sOr, bOr могут быть некорректны

         }
      }

if (sCorrect) {

// sOr, bOr точно корректны

if(sOr==0)

{

//open sell

}

if(bOr==0)

{

//open buy

}

}

OrderSelect отдельным условием
 
Artyom Trishkin:

Вам не нужно вбивать жёсткие параметры. Все параметры должны быть рассчитанными из торговых условий. В настройках оставьте открываемый лот. Если лот рассчитывается, то при недостатке средств даже при минимальном лоте, выводите об этом сообщение. Остальные параметры сделки тоже нужно все проверять, контролировать и корректировать. При невозможности корректировки - выводите об этом сообщение.

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

Да текущая версия строчит как пулемёт в тестере. Это уже совершенно другой советник, никаких условий на открытия почти не осталось. Уже невозможно внешними настройками сделать так чтобы сделки не открывались. Только тестить с нереальными лотом и размером депо. Но даже тогда он не впадает в кому, как в валидаторе.

Так что по поводу моего предложения, вы не ответили.


Artyom Trishkin:

Нет. Мне не нужны чужие деньги для того, чтобы заплативший их человек сам не разобрался. Гораздо важнее не деньги, а ваш результат.

Это демагогия.

Я уже более 10-ти лет занимаюсь программированием MQL. И это первый случай, когда не могу довести работу до конца. А почему? Ответ очевиден, это не зависит от моих усилий и знаний. Проблема на другой стороне!
 
Andrey Kaunov:

Да текущая версия строчит как пулемёт в тестере. Это уже совершенно другой советник, никаких условий на открытия почти не осталось. Уже невозможно внешними настройками сделать так чтобы сделки не открывались. Только тестить с нереальными лотом и размером депо. Но даже тогда он не впадает в кому, как в валидаторе.

Так что по поводу моего предложения, вы не ответили.


Это демагогия.

Пусть будет демагогия.

Вышел из обсуждения, чтоб не заниматься демагогией.

 
Artyom Trishkin:

Пусть будет демагогия.

Вышел из обсуждения, чтоб не заниматься демагогией.

Да конечно, заниматься демагогией не нужно. Можно просто привлечь к обсуждению человека который обслуживает валидатор и спросить у него причину. А то мы переливаем тут из пустого в порожнее без толку.

 
Maxim Kuznetsov:

мелкий фикс, просто так:

    OrderSelect отдельным условием

вполне возможно, не буду спорить

я пока не нарывался на эти нюансы

 
Renat Akhtyamov:

вполне возможно, не буду спорить

я пока не нарывался на эти нюансы

Вы про что тут Ренат? Я немного пропустил?

 
Andrey Kaunov:

Да текущая версия строчит как пулемёт в тестере. Это уже совершенно другой советник, никаких условий на открытия почти не осталось. Уже невозможно внешними настройками сделать так чтобы сделки не открывались. Только тестить с нереальными лотом и размером депо. Но даже тогда он не впадает в кому, как в валидаторе.

Так что по поводу моего предложения, вы не ответили.


Это демагогия.

Я уже более 10-ти лет занимаюсь программированием MQL. И это первый случай, когда не могу довести работу до конца. А почему? Ответ очевиден, это не зависит от моих усилий и знаний. Проблема на другой стороне!

подумайте что будет при Стоп-Аут. (у вас уже Маржин-Колл, стёпа близок как никогда)

вашу сделку принудительно закроют, но вы игнорируете подобный вариант и будете каждый тик за ней лезть (в историю, это долго) и посылать некорректные приказы.

 
Andrey Kaunov:

Да конечно, заниматься демагогией не нужно. Можно просто привлечь к обсуждению человека который обслуживает валидатор и спросить у него причину. А то мы переливаем тут из пустого в порожнее без толку.

Даже если мне и скажут причину, что вряд ли, то вам я её точно не озвучу. Не только вам, но и всему сообществу. И не потому, что я вредный.

Поэтому - сначала профилировщик кода, затем точное следование рекомендациям из известной вам статьи, и далее - публикация советника.

Профилирование кода - Разработка программ - Справка по MetaEditor
Профилирование кода - Разработка программ - Справка по MetaEditor
  • www.metatrader5.com
Профилирование — это сбор характеристик программы во время ее выполнения. При профилировании замеряется время выполнения и количество вызовов отдельных функций и строк в коде программы. При помощи этого инструмента программист может найти наиболее медленные участки кода и провести их оптимизацию. Профилирование можно проводить на обычном...
 
Andrey Kaunov:

Вы про что тут Ренат? Я немного пропустил?

вроде бы писали последовательно, вопрос - ответ

все страницы темы доступны

Причина обращения: