Пожалуйста, помогите мне разгадать эту загадку!!! - страница 2

 
WHRoeder:
Если вы не используете визуальный режим в тестере, в журнале никогда ничего не будет.
Это неверно. Во время оптимизации в журнал ничего не выводится, но вывод в журнал работает нормально, если визуальный режим НЕ отмечен. (только что протестировано на Build 445)
 

В любом случае, я использую визуальный режим!

Есть еще кое-что, что очень странно. Когда я запускаю САМОГО советника с САМЫМИ параметрами более одного раза, я получаю разные сделки на экране визуального режима!

В большинстве случаев 90% одинаковы - но в некоторых местах результаты при многократном запуске отличаются!

Есть ли какие-то буферы (например, переменные), которые должны быть инициализированы или очищены после каждого прогона? Я пытаюсь инициализировать все переменные в разделе объявления.

Может быть, мой компьютер вышел из строя? В данный момент я хватаюсь за соломинку.

 
ernest02:

В любом случае, я использую визуальный режим!

Есть еще кое-что, что очень странно. Когда я запускаю САМОГО советника с САМЫМИ параметрами более одного раза, я получаю разные транзакции на экране визуального режима!

В основном 90% времени результат один и тот же - но в некоторых местах есть разные результаты при нескольких запусках!

Есть ли какие-то буферы (например, переменные), которые должны быть инициализированы или очищены после каждого запуска? Я пытаюсь инициализировать все переменные в разделе объявления.

Может быть, мой компьютер вышел из строя? В данный момент я хватаюсь за соломинку.

Каков разброс для каждого прогона?
 

Хорошо, ребята! Решите эту задачу!

Посмотрите на большую часть кода, которую я разместил.

Первая строка - это оператор "if", и если он истинен, то обрабатывает последующие строки.

Одним из действий, которое должно произойти, является закрытие всех открытых ордеров на покупку.

Теперь, когда я запускаю советника в тестере, он действительно закрывает все ордера на покупку, НО...

Он пропускает оператор Print в середине кода - и это не записывается в журнал!

То есть я знаю, что код обрабатывается, но в журнал попадают только определенные заявления печати, а другие - нет!

Пожалуйста, объясните мне это!

 
ernest02:

Теперь, когда я запускаю советника в тестере, он действительно закрывает все ордера на покупку, НО...

Он пропускает Print statement в середине кода - и это не записывается в журнал!

Таким образом, я знаю, что код обрабатывается, но в журнал записываются только определенные печатные заявления, а другие - нет!

Поэтому, пожалуйста, объясните мне это!

Следующее будет печататься в журнале...

   Print("SellTicket is ",SellTicket);    // <----- this will print

   if (SellTicket >= 0) 
      {
      PlaySound("news.wav");
      SellTime = OrderOpenTime();
      SellSignal = false;

      }
   Print("SellSignal2 is ", SellSignal);  // <----- this will print

Если они не печатаются, то, насколько я могу судить, возможны следующие варианты:

  • вы не выполняете код, который вы разместили
  • ордера на покупку закрываются каким-то другим кодом/функцией.

 

если SellTicket равен нулю, серьезно?

if (SellTicket >= 0) // ???

Щелкните правой кнопкой мыши журнал, выберите "Открыть" и откройте журнал журнала с помощью блокнота.

На вкладке журнала не всегда отображаются все журналы.

 

Я просмотрел файл журнала, и там не зарегистрированы сделки на продажу или покупку, а также любые другие команды "Печать".

Я настолько демотивирован! Я занимаюсь этой штукой уже 2 недели, не добился никакого прогресса и исчерпал все идеи о том, в чем может быть проблема.

(Просто хочу сказать, что у меня также установлен Metatrader 5 на моем компьютере и работает Windows 7, которая хранит некоторые данные и файлы журнала в Virtual Store в разделе Users).

 
ernest02:

Я просмотрел файл журнала, и там не зарегистрированы сделки на продажу или покупку, а также любые другие команды "Печать".

Я настолько демотивирован! Я занимаюсь этой штукой уже 2 недели, не добился никакого прогресса и исчерпал все идеи о том, в чем может быть проблема.

(Просто хочу сказать, что у меня также установлен Metatrader 5 на моем комьютере и работает Windows 7, которая хранит некоторые данные и файлы журнала в Virtual Store в разделе Users).

А, где у вас установлен MT4, в Program Files? Если да, то возможно у вас проблема с UAC. Вы можете попробовать установить MT4 в директорию не Program Files, например, C:\MT4-Installs\ и попробовать ваш советник.
 

Я создал папку в C:/, куда установил MT4, но у меня есть две другие копии (одна живая и одна демо), которые установлены в Program Files (x86).

У меня нет никаких файлов журнала с двумя последними, но есть файлы журнала под корнем MT4. (Вот почему я могу сообщить о том, что находится в файле журнала).

Сейчас я заметил еще одну аномалию. (Я уже упоминал тот факт, что я получаю разные результаты от двух одинаковых запусков).

Я использую iCCI для отслеживания индекса CCI, чтобы принимать решения о сделках на покупку/продажу. Я обнаружил, что сделки происходят даже тогда, когда условие CCI не является истинным!

Это такая неразбериха! Я с тоской вспоминаю времена XP, когда моя система казалась намного проще и стабильнее!

Я почти готов выбросить полотенце!

 
@ernest02: Просто перепишите код. Для отладки кода используйте функции Print/Alert/Comment. Если вы недоумеваете, почему выполнился OrderSend, выведите значения переменных, которые его вызывают [прямо над OrderSend]. Если вы недоумеваете, почему CCI == true, выведите значения переменных, которые вызывают вызов CCI [Перед вызовом CCI]. Продолжайте перемещать оператор печати назад таким образом, пока не найдете виновника.