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