Глобальные переменные против записи в файл - страница 3

 

@deysmacro

Но я все еще пытаюсь понять. причина почему люди не хотят использовать ChartID()? Он иногда меняется? Он иногда дублирует сам себя?

Иначе зачем бы мне изобретать колесо, добавляя строки кода вместо DoubleToStr(ChartID(),0)?

 

@angevoyageur

Еще раз спасибо за ответ.

Прошу прощения, что был непонятен для всех.

Я понимаю, что такое магические числа, и понимаю, что делает ChartID().

Я просто пытаюсь найти лучший способ создать уникальное имя GV, которое не будет изменено, может быть восстановлено после перезапуска терминала и не должно быть известно другим советникам.

ChartID(), кажется, подходит для этого, но люди продолжают предлагать гораздо более сложные способы сделать это. Вот почему я в замешательстве.

 
toast:

Еще раз спасибо за ответ.

Прошу прощения, что был непонятен для всех.

Я понимаю, что такое магические числа, и понимаю, что делает ChartID().

Я просто пытаюсь найти лучший способ создать уникальное имя GV, которое не будет изменено, может быть восстановлено после перезапуска терминала и не должно быть известно другим советникам.

ChartID(), кажется, подходит для этого, но люди продолжают предлагать гораздо более сложные способы сделать это. Вот почему я в замешательстве.


Нужно создать генератор имен для GV, а затем проверить, существует ли уникальное имя GV или нет. Вот и все.

Когда вы используете ChartID(), вы не контролируете ситуацию, но используя генератор имен, вы контролируете ситуацию.

Если вы все еще считаете, что использование ChartID() - это хорошо, то, пожалуйста, сделайте это.

Я ставлю здесь точку.

 

В любом случае, спасибо за помощь.

Если я создам имя для GV, как оно будет получено после перезапуска терминала? Оно должно быть в другом GV, или выведено из пользовательских данных, которые могут быть изменены...

Думаю, я выберу ChartID().

Все остальные варианты кажутся написанием кода ради него самого.

В отсутствие реальных причин, почему ChartID() - плохая идея, я буду придерживаться ее.

 
toast:

В любом случае, спасибо за помощь.

Если я создам имя для GV, как оно будет получено после перезапуска терминала? Оно должно быть в другом GV, или выведено из пользовательских данных, которые могут быть изменены...

Думаю, я выберу ChartID().

Все остальные варианты кажутся написанием кода ради него самого.

В отсутствие реальных причин, почему ChartID() - плохая идея, я остановлюсь на нем.

ChartID() кажется хорошей идеей для создания уникального имени, нужно только проверить, что этот ID сохраняется при перезапуске MT4. Я никогда не проверял это.

Дайте нам знать.

 
angevoyageur:

ChartID() кажется хорошей идеей для создания уникального имени, нужно только проверить, что этот ID сохраняется при перезапуске MT4. Я никогда не проверял это.

Сообщите нам.



Да, это так. Я проверил это ранее сегодня.

Первый запуск:

После перезапуска терминала:

 
если график был закрыт и снова открыт, вы потеряли предыдущий ChartED().
 

Да, если вы закрыли этот конкретный график (при этом оставив открытым весь терминал), идентификатор будет потерян.

Но если график был закрыт из-за закрытия всего терминала, то при повторном открытии терминала идентификатор останется прежним.

 

Я бы использовал номер счета или производное от него число. Я бы не стал доверять ChartID, что если пользователю придется переустановить MT4 или случайно закрыть график во время открытия сделок. Номер счета, на котором открыты сделки советника, является надежным.

 
SDC:

Я бы использовал номер счета или производное от него число. Я бы не стал доверять ChartID, что если пользователю придется переустановить MT4 или случайно закрыть график во время открытия сделок. Номер счета, на котором открыты сделки советника, является надежным.


Я уже сказал Тосту , что нужно создать генератор уникальных имен.
Причина обращения: