В данном роботе тестил возможность закрытия сеток по схеме: убыточная + прибыльная > Х , то закрыть обе (как правило, на разных символах).
***
Если знаете, что нужно закрыть именно эти две позиции, то лучше запомнить тикеты этих позиций и закрывать их пока не закроете (ВНИМАНИЕ: никаких while и Sleep - выдали приказы на закрытие, вышли из OnTick, проверили - есть ещё позиции с этими тикетами - если есть, то снова пытаемся закрыть и вышли из OnTick.)
Если знаете, что нужно закрыть именно эти две позиции, то лучше запомнить тикеты этих позиций и закрывать их пока не закроете (ВНИМАНИЕ: никаких while и Sleep - выдали приказы на закрытие, вышли из OnTick, проверили - есть ещё позиции с этими тикетами - если есть, то снова пытаемся закрыть и вышли из OnTick.)
Ценная идея. Может так?: OnTick() формирует массив с тикетами и пытается закрыть один раз, а OnTimer() проверяет есть ли они ещё и закрывает, если есть.
Между тиками может быть несколько минут, поэтому передадим задачу таймеру
Ценная идея. Может так?: OnTick() формирует массив с тикетами и пытается закрыть один раз, а OnTimer() проверяет есть ли они ещё и закрывает, если есть.
Между тиками может быть несколько минут, поэтому передадим задачу таймеру
Я бы отказался от ВСЕХ while, Sleep and OnTimer для задачи закрытия позиций. Я бы делал так: выстрелил приказы на закрытие - вышел из OnTick, на следуующем тике проверка: если позиции с нужными тикетами ещё живы - снова выстрелить приказы на закрытие и так по кругу через взход/выход в onTick.
Логика такая: закрытие позиции - первоочередая задача, поэтому цикл закрытия в самом начале OnTick. А формирование массива тикетов закрытия может быть в любом месте OnTick - хоть в самом конце.
Igor Zakharov:
***
Между тиками может быть несколько минут, поэтому передадим задачу таймеру
Значит ничего не поделать - только ждать нового тика.
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
Если, например, произошел сбой в сети, то ждать следующего тика - упускать возможность закрытия.
Сбой сети == разрыв соединения имеется в виду? Ну так нет интернета, значит вообще ничего не закрыть ни открыть - какая же здесь упущенная возможность?
И вообще, если торговая система будет очень чувствительна к каждому чиху (разрыв там или ещё что) - то в топку такую торговую систему.
Если речь о FX, то там тики не сильно меняет цену (обычно). Но на других рынках ордер может серьёзно проскользнуть при потиковом подходе. Я все-таки за попытки между тиками - вреда не вижу, потенциальная польза - есть.
Sergey Dzyublik: Гистерезис в действии... на примере работы неявного оператора копирования в структурах.
Наверное, чтобы обнаружить такое, нужно было в поисках ошибки в своем коде дойти до внутреннего состояния/упорства "здесь ничего не может не работать, но все равно проверю".
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
***
В данном роботе тестил возможность закрытия сеток по схеме: убыточная + прибыльная > Х , то закрыть обе (как правило, на разных символах).
***
Если знаете, что нужно закрыть именно эти две позиции, то лучше запомнить тикеты этих позиций и закрывать их пока не закроете (ВНИМАНИЕ: никаких while и Sleep - выдали приказы на закрытие, вышли из OnTick, проверили - есть ещё позиции с этими тикетами - если есть, то снова пытаемся закрыть и вышли из OnTick.)
Если знаете, что нужно закрыть именно эти две позиции, то лучше запомнить тикеты этих позиций и закрывать их пока не закроете (ВНИМАНИЕ: никаких while и Sleep - выдали приказы на закрытие, вышли из OnTick, проверили - есть ещё позиции с этими тикетами - если есть, то снова пытаемся закрыть и вышли из OnTick.)
Ценная идея. Может так?: OnTick() формирует массив с тикетами и пытается закрыть один раз, а OnTimer() проверяет есть ли они ещё и закрывает, если есть.
Между тиками может быть несколько минут, поэтому передадим задачу таймеруЦенная идея. Может так?: OnTick() формирует массив с тикетами и пытается закрыть один раз, а OnTimer() проверяет есть ли они ещё и закрывает, если есть.
Между тиками может быть несколько минут, поэтому передадим задачу таймеруЯ бы отказался от ВСЕХ while, Sleep and OnTimer для задачи закрытия позиций. Я бы делал так: выстрелил приказы на закрытие - вышел из OnTick, на следуующем тике проверка: если позиции с нужными тикетами ещё живы - снова выстрелить приказы на закрытие и так по кругу через взход/выход в onTick.
Логика такая: закрытие позиции - первоочередая задача, поэтому цикл закрытия в самом начале OnTick. А формирование массива тикетов закрытия может быть в любом месте OnTick - хоть в самом конце.
***
Между тиками может быть несколько минут, поэтому передадим задачу таймеруЗначит ничего не поделать - только ждать нового тика.
OnTick() формирует массив с тикетами и пытается закрыть один раз, а OnTimer() проверяет есть ли они ещё и закрывает, если есть.
Еще вариант (для реала - самое то), запуск советника в виртуальном окружении (там идеальное исполнение), а в реале только синхронизация с виртуальным.
Значит ничего не поделать - только ждать нового тика.
Если, например, произошел сбой в сети, то ждать следующего тика - упускать возможность закрытия.
Если, например, произошел сбой в сети, то ждать следующего тика - упускать возможность закрытия.
Сбой сети == разрыв соединения имеется в виду? Ну так нет интернета, значит вообще ничего не закрыть ни открыть - какая же здесь упущенная возможность?
И вообще, если торговая система будет очень чувствительна к каждому чиху (разрыв там или ещё что) - то в топку такую торговую систему.
Если речь о FX, то там тики не сильно меняет цену (обычно). Но на других рынках ордер может серьёзно проскользнуть при потиковом подходе. Я все-таки за попытки между тиками - вреда не вижу, потенциальная польза - есть.
Надо пробовать...
Результат:
Гистерезис в действии... на примере работы неявного оператора копирования в структурах.
Наверное, чтобы обнаружить такое, нужно было в поисках ошибки в своем коде дойти до внутреннего состояния/упорства "здесь ничего не может не работать, но все равно проверю".