Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Тогда я чего-то не понимаю. Как можно идентифицировать тикет ордера по трем разрядам (пусть даже десятичным), если никакой дополнительной информации нет?
Тикет не нужен, нужна связь. Допустим, такой магик: 123456000. 123 - это ид эксперта, что бы каждый эксперт со своими ордерами работал. 456 - это внутренний ид ордера в советнике, последний разряд 000 - значит этот ордер ни с каким другим ордером не связан. Теперь такой магик: 123457456 - этот ордер составляет пару с ордером 456 (с тем. который имеет магик 123456000).
Если стоит задача хранить любые данные на торговом сервере, то это всегда можно сделать через информационные ордера в истории торгов.
Как? Через какие ордера?
Как? Через какие ордера?
Обложками далеко от цены писать инфу азбукой морзе точка тире точка тире
А не сработавшие сохраняются в истории?
А не сработавшие сохраняются в истории?
Не знаю, дело техники, Сабер расскажет, я таким не страдаю )
Аналогично. Но в теории должно работать.
Выставляем отложку так, чтобы максимально использовать байты всех ее полей, включая Expiration (это поле можно вовсю модифицировать даже для живых ордеров). Далее убиваем ее и получаем эти байты в истории торгов.
топик из организации кода перешел в советы где же все таки лучше сохраняться
имхо файл (глоб.переменные или БД, по сути тоже самое) - возможности ничем не ограниченны
по сабжу, использовать как уже написали ООП, или динамические списки - что тоже самое в MQL
структура организации кода не сложная:
1. в OnInit() разработать поиск открытых ордеров с нашими магиками, если нет таких - удаляем файл с сохраненными данными, если есть ордера - читаем файл и проводим аудит ордеров
2. в OnTick() каждый тик организуем проверку по номеру тикета факта существования ордера, если ордер уже закрыт прерываемся и организовываем полный аудит ордеров. Если в структуре(класс, массив? - место где хранятся наши сведения об ордерах) были изменения - выставляем флаг необходимости записи в файл.
3. в OnTimer() проверяем флаг необходимости записи в файл один раз в секунду, и один раз в несколько минут ? делаем бекап файла, на случай возникновения маловероятной ситуации, что писали в файл и тут ПК взял и отключился
Не хочу тестировать, но думаю, что открыть файл, записать в файл 1-2 кб данных и закрыть файл после записи займет очень мало времени. Про ресурс ж/д или SSD - можно и терминал в RAM диске запустить, но тогда не забыть настроить запись файла на физический диск, но думаю, что если торговая стратегия не сильно агресивная, то запись в файл потребуется один раз в несколько десятков минут - тогда не зачем переживать за ресурс ж/д
ЗЫ: можно писать в файл и не по таймеру, тут дело вкуса или осторожности