Максисальная длина названия символа на FOREX - страница 10

 
fxsaber:

Привязываться к символу и хэндлу чарта - сопутствующие костыли. Советник может быть мультисимвольным и/или не зависеть от символа чарта совсем. Т.е. логично, чтобы такой советник можно было запустить на любом символе. Но при этом нужно еще рассматривать и варинат, когда советник зависит от символа чарта. Тогда поведение должно быть противоположным. Как итог, универсального решения быть не может.

В большинстве случаев такой вариант мне видится наиболее приемлемым

А Вы думаетте, что это единственный костыль?

Для ФОРТС, привязка к имени символа - самый простой и точный результат (имена на ФОРТС уникальные)

Задача - получение ордера, а в терминала есть сбои и задержки.

При использовании OrderSend(), то если что-то произошло, то мы вообще не получимм ордер, и будем висеть в функции ожидая тайм-аута.

Используя OrderSendAsync() советник продолжит работу сразу же.

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

Если у кого-то есть идеи как получать по другому уникальные магики для каждого ордера (без костылей), по

поделитесь, пожалуйста.

 
prostotrader:

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

Вы не поняли сказанного мною.

 
fxsaber:

Вы не поняли сказанного мною.

Понял, но я для всех написал

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

Но нет надобности засовывать его в input

 
prostotrader:

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

Но нет надобности засовывать его в input

Напишу без обоснования - не согласен.

 
fxsaber:

Напишу без обоснования - не согласен.

Вы считаете, что пользователь, за секунду, сможет установить два одинаковых советника на один и тот же символ?

int OnInit()
{

  my_magic = ulong(TimeTradeServer());
  Print("my_magic = ", my_magic);
  Sleep(1100);
  my_magic = ulong(TimeTradeServer());
  Print("my_magic = ", my_magic);

  for (int i = 0; i < 10; i++)
  {
    ulong a_magic = GetMagic(i);
    Print(a_magic);
  }  
    return(INIT_SUCCEEDED);
}
2018.08.26 12:09:37.460 Test (BR-9.18,M1)       my_magic = 1535285377
2018.08.26 12:09:38.663 Test (BR-9.18,M1)       my_magic = 1535285378
 
prostotrader:

Если у кого-то есть идеи как получать по другому уникальные магики для каждого ордера (без костылей), по
поделитесь, пожалуйста.

каждый советник - это свои настройки (инпуты)
складываем все инпуты в строку (можно добавить и символ-период),
считаем crc32 - это уникальная метка эксперта,
и остается еще 4 байта для нумерации ордеров

 

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

но все-равно нужно будет сохранять магик в Глобальную переменную терминала.

 
Taras Slobodyanik:

каждый советник - это свои настройки (инпуты)
складываем все инпуты в строку (можно добавить и символ-период),
считаем crc32 - это уникальная метка эксперта,
и остается еще 4 байта для нумерации ордеров

Не прокатит.

Один и тот же советник на одном (разных) символах.

 
prostotrader:

Вы считаете, что пользователь, за секунду, сможет установить два одинаковых советника на один и тот же символ?

Хоть десять. С Вашего позволения, позволю себе не расписывать, что же имел в виду здесь

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Максисальная длина названия символа на FOREX

fxsaber, 2018.08.25 22:25

Привязываться к символу и хэндлу чарта - сопутствующие костыли. Советник может быть мультисимвольным и/или не зависеть от символа чарта совсем. Т.е. логично, чтобы такой советник можно было запустить на любом символе. Но при этом нужно еще рассматривать и варинат, когда советник зависит от символа чарта. Тогда поведение должно быть противоположным. Как итог, универсального решения быть не может.

В большинстве случаев такой вариант мне видится наиболее приемлемым

input int InputMagic = __DATETIME__;

string GetMagicString()
{
  return(__PATH__ + _Symbol + (string)InputMagic);
}

В личной беседе нашли бы понимание за минуту. На форуме же можно просто впустую сжечь тучу времени с непонятными целями. Это все не принципиально.

 
fxsaber:

Хоть десять. С Вашего позволения, позволю себе не расписывать, что же имел в виду здесь


В личной беседе нашли бы понимание за минуту. На форуме же можно просто впустую сжечь тучу времени с непонятными целями. Это все не принципиально.

Ок