Пользовательские символы. Ошибки, баги, вопросы, предложения. - страница 43

 
Ivan Titov #:

Рано радовался. При вызове CustomTicksReplace с массивом с 1.5 млн тиков возникает ошибка 4000. Массив упорядочен физически по убыванию, но определен как AsSeries.

Ищите ошибку. Так как полтора милиона тиков это не много, меньше пяти дней на сишке.

Я проверил у себя 30 дней на сишке получилось  8075321 тиков , всё работает нормально.


 
Aleksandr Slavskii #:

Ищите ошибку. Так как полтора милиона тиков это не много, меньше пяти дней на сишке.

Я проверил у себя 30 дней на сишке получилось  8075321 тиков , всё работает нормально.


Похоже нельзя посылать массив AsSeries. Надо упорядочить физически. Ну ок.

Осталось только узнать, почему в CustomTicksReplace() можно кидать тики сделок, а в CustomTicksAdd() - нет. Полагаю, CustomTicksAdd() работал бы быстрее, т.к. не надо учитывать имеющиеся в истории тики. Разработчики, не поясните причину такой избирательности?

 

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

P.S. у меня тут возник ряд прочих проблем с импортом и последующим моделированием свечей в визуальном тестере..

 
Sunriser #:

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

Никогда не смотрел на эти картинки.

 
Комментарии, не относящиеся к этой теме, были перенесены в "Подписка на сигнал".
 

Проблема: исчезают бары с графика кастомного символа. Подробности и шаги для воспроизведения здесь: https://www.mql5.com/ru/forum/347974/page4#comment_47279287

Судя по всему что-то неправильно работает в MQL5 API.

 

Отвечу сам на свой вопрос.

Оказывается, что функции:

 CustomSymbolSetString(c_Name, SYMBOL_CURRENCY_BASE,  "USD");
 CustomSymbolSetString(c_Name, SYMBOL_CURRENCY_PROFIT, "USD");

Не работают если символ относится к форексу.

То есть расчёт маржи = SYMBOL_CALC_MODE_FOREX -  Forex mode – расчет прибыли и маржи для Форекс

(SymbolInfoInteger(c_Name, SYMBOL_TRADE_CALC_MODE)&SYMBOL_CALC_MODE_FOREX) == SYMBOL_CALC_MODE_FOREX

если это равенство верно, то название базовой валюты и валют прибыли, берутся из названия символа, 

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

Печалька, у меня куча кода в котором многое завязано на суффиксы пользовательского символа :(


P.S. Если в советнике не используются расчёты завязанные на деньги, то в тестере можно поставить галку на "прибыль в пипсах для ускорения расчётов" и в этом случае тестеру уже не важно, правильно указана валюта или нет.

P.P.S. Пробовал библу от  fxsaber   Symbol  , результат один.

Если имя пользовательского символа сделать  AUDUSD_TESTER, то всё красиво.

 
Aleksandr Slavskii #:

Не работают если символ относится к форексу.

Раньше точно работало.

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

Пользовательские символы. Ошибки, баги, вопросы, предложения.

fxsaber, 2019.09.15 22:30

Решение проблемы автоматического изменения валют кастомного символа после перезагрузки Терминала.

// Сервис корректирует валюты всех кастомных символов.
#property service

bool CorrectCurrency( const string Symb, const string Currency )
{  
  return(SymbolInfoInteger(Symb, SYMBOL_CUSTOM) && 
         CustomSymbolSetString(Symb, SYMBOL_CURRENCY_BASE, Currency) &&
         CustomSymbolSetString(Symb, SYMBOL_CURRENCY_MARGIN, Currency) &&
         CustomSymbolSetString(Symb, SYMBOL_CURRENCY_PROFIT, Currency));
}

void CorrectSymbols( void )
{
  const string Currency = AccountInfoString(ACCOUNT_CURRENCY);
  
  for (int i = SymbolsTotal(false) - 1; i >= 0; i--)
    CorrectCurrency(SymbolName(i, false), Currency);
    
  return;
}

void OnStart()
{
  CorrectSymbols();
}
 
fxsaber #:

Раньше точно работало.

Это решение не для этого случая.

Проверил. Увы ничего не меняет этот сервис.


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


 
Aleksandr Slavskii #:

Проверил. Увы ничего не меняет этот сервис.

Значит, сломали.

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