Как создать признак файла с runtime-данными?

 

 Если бот торгует сразу на разных торговых инструментах, и у него бывает периоды когда имеется несколько открытых ордеров в какой-то момент времени. В классе, который получает общий торговый сигнал, в зависимости от различных факторов, я хочу запомнить даты и время бара, на котором был получен торговый сигнал и, соответственно, была совершена сделка. Так вот эти данные т.е. дата и время бара, на котором был получен торговый сигнал могут пропарится в процессе исполнения программы, если будет, например, переинициализация программы, в зависимости от каких-нибудь, факторов. Я решил, что их нужно сохранять после удачно совершённой сделки. Если этого не делать, после переинициализации программы у меня будет совершена сделка по тому же сигналу, который уже отработан. А это не вариант.

Я решил писать эти данные в файл. Тут всё логично. Но есть один момент!

Вот, например, есть бот, который запущен на каком-нить валютном инструменте, скажем так, AUDEUR. Второй бот запущен тоже на этом же торговом инструменте. Но каждый бот торгует свои торговые инструменты, прописанные у него в настройках. Не обязательно AUDEUR.

Получается, если я буду писать дата и время бара, на котором был получен торговый сигнал в файл с названием бота, то они друг другу будут мешать т.к. будут перезаписывать данные друг друга, есс-но, если флаг при открытии будет FILE_SHARE_READ. Возник вопрос, как лучше идентифицировать файл, что бы такого касяка не случилось?

Понятно, что это не частый случай, но всё же нужно как-то обработать..

 
hoz:

 Если бот торгует сразу на разных торговых инструментах, и у него бывает периоды когда имеется несколько открытых ордеров в какой-то момент времени. В классе, который получает общий торговый сигнал, в зависимости от различных факторов, я хочу запомнить даты и время бара, на котором был получен торговый сигнал и, соответственно, была совершена сделка. Так вот эти данные т.е. дата и время бара, на котором был получен торговый сигнал могут пропарится в процессе исполнения программы, если будет, например, переинициализация программы, в зависимости от каких-нибудь, факторов. Я решил, что их нужно сохранять после удачно совершённой сделки. Если этого не делать, после переинициализации программы у меня будет совершена сделка по тому же сигналу, который уже отработан. А это не вариант.

Я решил писать эти данные в файл. Тут всё логично. Но есть один момент!

Вот, например, есть бот, который запущен на каком-нить валютном инструменте, скажем так, AUDEUR. Второй бот запущен тоже на этом же торговом инструменте. Но каждый бот торгует свои торговые инструменты, прописанные у него в настройках. Не обязательно AUDEUR.

Получается, если я буду писать дата и время бара, на котором был получен торговый сигнал в файл с названием бота, то они друг другу будут мешать т.к. будут перезаписывать данные друг друга, есс-но, если флаг при открытии будет FILE_SHARE_READ. Возник вопрос, как лучше идентифицировать файл, что бы такого касяка не случилось?

Понятно, что это не частый случай, но всё же нужно как-то обработать..

да так-же как и прдотвращаете конфликты ботов в терминале. MAGIC.
 
hoz:

 Если бот торгует сразу на разных торговых инструментах, и у него бывает периоды когда имеется несколько открытых ордеров в какой-то момент времени. В классе, который получает общий торговый сигнал, в зависимости от различных факторов, я хочу запомнить даты и время бара, на котором был получен торговый сигнал и, соответственно, была совершена сделка. Так вот эти данные т.е. дата и время бара, на котором был получен торговый сигнал могут пропарится в процессе исполнения программы, если будет, например, переинициализация программы, в зависимости от каких-нибудь, факторов. Я решил, что их нужно сохранять после удачно совершённой сделки. Если этого не делать, после переинициализации программы у меня будет совершена сделка по тому же сигналу, который уже отработан. А это не вариант.

Я решил писать эти данные в файл. Тут всё логично. Но есть один момент!

Вот, например, есть бот, который запущен на каком-нить валютном инструменте, скажем так, AUDEUR. Второй бот запущен тоже на этом же торговом инструменте. Но каждый бот торгует свои торговые инструменты, прописанные у него в настройках. Не обязательно AUDEUR.

Получается, если я буду писать дата и время бара, на котором был получен торговый сигнал в файл с названием бота, то они друг другу будут мешать т.к. будут перезаписывать данные друг друга, есс-но, если флаг при открытии будет FILE_SHARE_READ. Возник вопрос, как лучше идентифицировать файл, что бы такого касяка не случилось?

Понятно, что это не частый случай, но всё же нужно как-то обработать..

А что тебе мешает к названию файла прибавить еще имя символа и для надежности еще и временной интервал графика на котором стоит твой бот. Или еще проще к имени файла добавить "маджик нумбер" бота.

 
Maxim Kuznetsov:
да так-же как и прдотвращаете конфликты ботов в терминале. MAGIC.

Не совсем вариант т.к. у меня мэджик динамически высчитывается. На этапе инициализации программы придётся его высчитывать, а это не очень вариант. Хотя, .. такие мысли посетили меня тоже))

Vitalii Ananev:

А что тебе мешает к названию файла прибавить еще имя символа и для надежности еще и временной интервал графика на котором стоит твой бот. Или еще проще к имени файла добавить "маджик нумбер" бота.

Я сегодня пол дня ходил думал паралельно и об этом. Пока блуждал, принял решение использовать в папке с названием бота имя файла + название торгового инструмента + ТФ. А откуда мы узнаем мэджик бота? Можно, конечно, высчитать, но рпзве оно того стоит?

 
hoz:

Вот, например, есть бот, который запущен на каком-нить валютном инструменте, скажем так, AUDEUR. Второй бот запущен тоже на этом же торговом инструменте. Но каждый бот торгует свои торговые инструменты, прописанные у него в настройках. Не обязательно AUDEUR.

Самое простое - в имени файла входные переменные, те что однозначно будут разными в этом случае.

 
hoz:

Не совсем вариант т.к. у меня мэджик динамически высчитывается. На этапе инициализации программы придётся его высчитывать, а это не очень вариант. Хотя, .. такие мысли посетили меня тоже))

Я сегодня пол дня ходил думал паралельно и об этом. Пока блуждал, принял решение использовать в папке с названием бота имя файла + название торгового инструмента + ТФ. А откуда мы узнаем мэджик бота? Можно, конечно, высчитать, но рпзве оно того стоит?

Маджик нумбер можно задать в настройках вашего бота, и этот же маджик использовать при отправке торговых приказов. Это обычная практика, так советник отличает свои позиции от других, даже если на одном инструменте и одинаковом TF стоят два эксперта. Другими словами, для каждого эксперта должен быть свой уникальный маджик нумбер, что бы не было конфликтов между его копиями и другими экспертами.