Magic Number - страница 2

 
Sergey Basov:

ТС наверное имел ввиду, что лень вручную задавать MagicNumber для каждого советника на каждом инструменте на каждом таймфрейме на одном счёте при запуске зоопарка в эксплуатацию )) Пусть лучше всё автоматически.

Я об этом тоже думал, потом решил что смысла нет, тем более "зоопарки" не люблю. Контролировать сложновато, вдруг где-что "зависнет-пропадёт-электричество отрубят", а тут потерянные ордера висят, а советники после восстановления работы уже новые случайные MagicNumber генерируют вовсю для следующих ордеров на этих же инструментах и ТФ, а про старые MagicNumber уже забыли. А на счете много килобаксов, а в коде всего одна маленькая ошибка.

Пришел к выводу, что я человек простой, буду лучше руками MagicNumber задавать ))

Это не случайный, а гарантированно уникальный. Но одинаковый при повторных запусках - значит, генерируемый из инструмента, ТФ, названия советника и значений параметров.

На деле проще контролировать уникальность магика при запуске (если советники все свои) - просто в ините нужно проверить, есть ли Гл. переменная с таким магиком и предупредить пользователя о повторе. Ну, и создавать такую переменную, чтобы было видно, что советник с таким магиком уже работает.

 
Меж прочим, лубопытный вопрос - как двум одинаковым советникам сгенерить себе уникальные мэджики при одновременном запуске?
 
Alexander Puzanov:
Меж прочим, лубопытный вопрос - как двум одинаковым советникам сгенерить себе уникальные мэджики при одновременном запуске?
В любом случае такая "одновременность" не будет тождественной.
 
Наверное ChartID() будет идеальным вариантом
 
traderEvgen:
кто-то писал функцию для случайной генерация MagicNumber ?

Это нонсенс, надо же такое придумать, вот до чего форекс доводит =))

Andrey Khatimlianskii:
Зачем магик, если он случайный? Как его использовать?

Поддерживаю, правильный вопрос (ответ) ++  

 
traderEvgen:
кто-то писал функцию для случайной генерация MagicNumber ?
Если вам случайная генерация нужна только, чтобы отслеживать, что сразу после  закрытия первого ордера нужно открыть второй, то этот алгоритм по-другому реализовывается.
 
Alexander Puzanov:
Наверное ChartID() будет идеальным вариантом

Он может поменяться.

 

Alexander Puzanov:
Меж прочим, лубопытный вопрос - как двум одинаковым советникам сгенерить себе уникальные мэджики при одновременном запуске?

Свой алгоритм генерации + GlobalVariableSetOnCondition для устранения конфликтов. 

 
Andrey Khatimlianskii:

Он может поменяться.

Это не важно. Задача - получить гарантированно уникальный мэджик в один момент времени для любого кол-ва ботов. ChartID гарантирует уникальность без дополнительных наворотов. А что вы будете делать с уникальным числом - другая тема
 
Вопрос зачем? Зачем колоть орехи утюгом?
 
Alexander Puzanov:
Это не важно. Задача - получить гарантированно уникальный мэджик в один момент времени для любого кол-ва ботов. ChartID гарантирует уникальность без дополнительных наворотов. А что вы будете делать с уникальным числом - другая тема

Сам придумал, сам ответил... зачем форум? )

Зачем вам уникальные магики, которые будут жить только пока работает советник? Уж лучше тикет своего ордера запомнить и вообще убрать цикл по ордерам.

Причина обращения: