Ошибки, баги, вопросы - страница 1895

Andrey Khatimlianskii:

Находит, потому что в описании вставлен код.

Вопрос — как найти именно в приложенном коде.

То-ли лыжи плохие, то-ли я ****нутый

Как найти в коде одного открытого советника, или всех сразу?

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

MT5 1598, ME 1599 (пробовал и 1596)

2017.05.19 11:51:10.277 MQL5    wrong type, loading of Test2 failed
2017.05.19 11:51:10.277 Tester  loading of C:\Program Files\Alpari Limited MT5\MQL5\Experts\Test\Test2.ex5 failed

Это в журнале тестера сразу после запуска терминала.

Похоже, с этим как-то пересекается

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

fxsaber, 2017.05.10 14:32

Скрипт MQL5\Scripts\Test2.mq5
void OnStart() {}

Его отладка не запускается. Сохраняю под другим именем файл - запускается без проблем. Обратно - не запускается.

Перезагрузки эдитора и терминала никак не помогают. Эдитор 1596, терминал 1598.


Ситуация на неттинг-счете.

  • Открыта BUY-позиция на 1 лот.
  • Стоит SellLiimit-ордер на 3 лота.
  • SellLimit исполняется частично на 1 лот.
  • Тем самым порождается не IN/OUT-сделка, а просто OUT-сделка, уничтожая открытую позицию.
  • Затем SellLimit исполняется на оставшиеся 2 лота, порождая новую позицию (новый POSITION_IDENTIFIER).
Вопрос, SellLimit в такой ситуации какой будет иметь ORDER_POSITION_ID?
Alexey Viktorov:

То-ли лыжи плохие, то-ли я ****нутый

Как найти в коде одного открытого советника, или всех сразу?

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

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

TimeTradeServer может возвращать всякую ерунду. Например, значение меньше, чем TimeCurrent. Это сводит полностью на нет его практическое применение.

Если правильно понимаю идею, то TimeTradeServer при работающем терминале должен был вычислять прошедшее время, после получения TimeCurrent и прибавлять эту разность, своего рода эмулируя будущие значения TimeCurrent.

Сейчас же запустив советник

#define TOSTRING(A) #A + " = " + (string)(A) + "\n"

void OnInit()
{
  EventSetTimer(1);
}

void OnTimer()
{
  Comment(TOSTRING(TimeTradeServer()) + TOSTRING(TimeCurrent()));
}

можно увидеть любую ерунду

Обратите внимание на даты.

fxsaber:

TimeTradeServer может возвращать всякую ерунду.

Насколько я понимаю, он завязан на TimeLocal. Что с локальным временем?
Andrey Khatimlianskii:
Насколько я понимаю, он завязан на TimeLocal. Что с локальным временем?
Да, показывает, как настрою локальное. Хоть год сменю.
Вопрос о TimeTradeServer и показе локального времени уже подымался.
Наверное, года 2 назад, точно, к сожалению, не помню когда именно - но подымался.
Sergey Dzyublik:
Тогда следующая идея:
Для защиты МТ использует определенные антиотладочные механизмы, возможно именно здесь кроются конфликты с игрушкой.
По силам выяснить это только разработчикам, но сомневаюсь, что они будут тратить на это время.

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


 

Комбинатор:
При загрузке терминал грузит opencl, более прямой связи с видеокартой просто быть не может, напишите в СД.

 

Вылетают не все игры... - мне нечего дать СД - логов то нет.