Можно и с комментарием - в комментарии писать тикет ордера с которым ордер составляет пару. Но будут некоторые сложности с дальнейшей обработкой ордеров, поскольку указана связь только в одну сторону. Не то, чтобы непреодолимые сложности - просто неудобства.
Удобнее глобальные переменные терминала. В имени переменной тикет ордера, в значении тикет второго ордера. Количество переменных, которые можно привязать в ордеру, не ограничено. Вот тут самое главное, когда открываешь второй ордер из пары, создаешь две глобальны переменных, одна указывает от первого ордера на второй, а другая - от второго на первый. Тогда будет очень удобно проводить все остальное творчество с ордерами. Так же можно файлы использовать.
А структуры - это дело личное. Сами по себе они не обеспечат возможности перезапуска советника, хотя бы в случае случайного закрытия графика.
Можно и с комментарием - в комментарии писать тикет ордера с которым ордер составляет пару. Но будут некоторые сложности с обработкой ордеров, поскольку указана связь только в одну сторону. Не то, чтобы непреодолимые сложности - просто неудобства.
Удобнее глобальные переменные терминала. В имени переменной тикет ордера, в значении тикет второго ордера. Количество переменных, которые можно привязать в ордеру, не ограничено. Вот тут самое главное, когда открываешь второй ордер из пары, создаешь две глобальны переменных, одна указывает от первого ордера на второй, а другая - от второго на первый. Тогда будет очень удобно проводить все остальное творчество с ордерами. Так же можно файлы использовать.
А структуры - это дело личное. Сами по себе они не обеспечат возможности перезапуска советника, хотя бы в случае случайного закрытия графика.
С глобальными переменными - дело хорошее.
Надо подумать. Заодно и решается вопрос с перезапуском терминала.
Спасибо.
Здравствуйте, Дмитрий!
Предлагаю, как вариант, хранить массив в файле. В Oninit восстанавливать массив из файла, а записывать
массив в файл после каждого изменения массива. И периодически сверять массив с реальным существованием ордеров. Всё безотказно и
экономно работает. Ну а какую логику учёта локирующих ордеров реализовать конкретно - Вам виднее, тяжело сказать без
понимания всей идеи. Не знаю, поможет Вам такой совет или нет ;)
Вообщем есть несколько ордеров в бай и в селл. Некотороые из них имеют соответствующие локовые ордера а остальные ждут цены или чтоб закрыться и убрать локовый стоп ордер или войти в лок по стопордеру которые так же выставлены.
Лок раскрывается так: При прибыли скажем в 50 пунктов профитный ордер закрывается и открывается противоположный ордер удвоенным лотом и открывается стоповый ордер на общий суммарный лот для нового лока . Если оба ордера в сумме вышли в плюс, то закрываемся. если дошли до стопового ордера, то получим опять лок из первой позиции +2 позиции 2-ым лотом и 3 позицию обратную но уже с суммарным лотом. Попытка раскрыть лок повторяется еще один раз.
Так вот вопрос в том, как правильно организовать подобный алгоритм. Можно на словах но с
подробностями.
Ну типа: Помечаем локовый ордер
комментарием OrderTicketmain + "lock".
Или создаем структуру и как только открыли или выставили ордер - пишем в структуру комментарий "лок для тикета 102154 " тикет 102154 . Соответственно получим массив структур типа { коментарий; тикет }
или сделать соответственно структуру типа {main, lock1, lock2? unlock1, unlock2} и 2 структура (параметры каждого ордера: тикет, цена открытия, Время , и т.д.} Ну и соответственно сделать массив таких структур для учета.
Может еще есть способы ?
а если использовать время открытия ордера? для построения цепочки ордеров.
Вообщем есть несколько ордеров в бай и в селл. Некотороые из них имеют соответствующие локовые ордера а остальные ждут цены или чтоб закрыться и убрать локовый стоп ордер или войти в лок по стопордеру которые так же выставлены.
Лок раскрывается так: При прибыли скажем в 50 пунктов профитный ордер закрывается и открывается противоположный ордер удвоенным лотом и открывается стоповый ордер на общий суммарный лот для нового лока . Если оба ордера в сумме вышли в плюс, то закрываемся. если дошли до стопового ордера, то получим опять лок из первой позиции +2 позиции 2-ым лотом и 3 позицию обратную но уже с суммарным лотом. Попытка раскрыть лок повторяется еще один раз.
Так вот вопрос в том, как правильно организовать подобный алгоритм. Можно на словах но с
подробностями.
Ну типа: Помечаем локовый ордер
комментарием OrderTicketmain + "lock".
Или создаем структуру и как только открыли или выставили ордер - пишем в структуру комментарий "лок для тикета 102154 " тикет 102154 . Соответственно получим массив структур типа { коментарий; тикет }
или сделать соответственно структуру типа {main, lock1, lock2? unlock1, unlock2} и 2 структура (параметры каждого ордера: тикет, цена открытия, Время , и т.д.} Ну и соответственно сделать массив таких структур для учета.
Может еще есть способы ?
Вообщем есть несколько ордеров в бай и в селл. Некотороые из них имеют соответствующие локовые ордера а остальные ждут цены или чтоб закрыться и убрать локовый стоп ордер или войти в лок по стопордеру которые так же выставлены.
Перевести всё в нетто, сэкономите спреды и не будете себе голову морочить ))
Если логика стратегии подразумевает, что в течение одной минуты не может быть открыто более одного ордера, то существует способ зашифровки всех необходимых данных в MagicNumber. В итоге советник не будет привязан к терминалу или компьютеру, т. к. вся информация находится на сервере ДЦ.
Если можно - с этого места подробнее. Новый Magic не может быть назначен чаще, чем раз в минуту?
Если можно - с этого места подробнее. Новый Magic не может быть назначен чаще, чем раз в минуту?
Типа того. Смысл в том, что в Magic можно упаковать время с точностью до минуты. Плюс еще остается место для ID эксперта и некоторых дежурных полей вроде индекса ордера в сетке и т. п.
Типа того. Смысл в том, что в Magic можно упаковать время с точностью до минуты. Плюс еще остается место для ID эксперта и некоторых дежурных полей вроде индекса ордера в сетке и т. п.
Я не об упаковке, а о самой генерации. Можно сгенерировать 2 магика за 1 минуту?

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Вообщем есть несколько ордеров в бай и в селл. Некотороые из них имеют соответствующие локовые ордера а остальные ждут цены или чтоб закрыться и убрать локовый стоп ордер или войти в лок по стопордеру которые так же выставлены.
Лок раскрывается так: При прибыли скажем в 50 пунктов профитный ордер закрывается и открывается противоположный ордер удвоенным лотом и открывается стоповый ордер на общий суммарный лот для нового лока . Если оба ордера в сумме вышли в плюс, то закрываемся. если дошли до стопового ордера, то получим опять лок из первой позиции +2 позиции 2-ым лотом и 3 позицию обратную но уже с суммарным лотом. Попытка раскрыть лок повторяется еще один раз.
Так вот вопрос в том, как правильно организовать подобный алгоритм. Можно на словах но с подробностями.
Ну типа: Помечаем локовый ордер комментарием OrderTicketmain + "lock".
Или создаем структуру и как только открыли или выставили ордер - пишем в структуру комментарий "лок для тикета 102154 " тикет 102154 . Соответственно получим массив структур типа { коментарий; тикет }
или сделать соответственно структуру типа {main, lock1, lock2? unlock1, unlock2} и 2 структура (параметры каждого ордера: тикет, цена открытия, Время , и т.д.} Ну и соответственно сделать массив таких структур для учета.
Может еще есть способы ?