Библиотеки: Symbol - страница 7

 
Aleksey Vyazmikin:

Исходные данные конечно есть в терминале - фьючерсы прошлых лет. А что значит формирование тикового архива? Вообще меня бы устроил варианттестирования  OHLC на M1, без лишних тиков, так сказать.

Для формирования кастомного символа нужны либо его тики, либо его бары.

А почему не нравятся last цены? Опять не понял про цену формирования бара - бары минутные подойдут, по ценам оригинала. Мне в общем нужно тоже самое, что и на отдельном фьючерсе, а то что с реалом не будет совпадать при любых настройках, так это понятно - по моим наблюдениям надо 5 пунктов в минус закладывать в среднем, если тестирование по всем тикам.

Имею несколько другое видение, как все должно быть. Так же не использую бары и индикаторы. Где-то об этом говорил на форуме.

Поможете с таким скриптом?

У меня, похоже, сформировалась неправильная репутация здесь, раз поднимаются подобные вопросы.

Что касается кастомных символов, в данной ветке выложено 95% того, что потребуется для решения этой задачи.

 
fxsaber:

Для формирования кастомного символа нужны либо его тики, либо его бары.

Имею несколько другое видение, как все должно быть. Так же не использую бары и индикаторы. Где-то об этом говорил на форуме.

У меня, похоже, сформировалась неправильная репутация здесь, раз поднимаются подобные вопросы.

Что касается кастомных символов, в данной ветке выложено 95% того, что потребуется для решения этой задачи.

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

 
Aleksey Vyazmikin:

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

Кастомный символ - это просто одна из разновидностей хранения котировок. Представьте, что нужно получить CSV-файл склейки. Это почти то же самое, что кастомный символ.

Так что создавайте "CSV-файл", а поместить его в кастомный - дело нескольких строк.

 
fxsaber:

Кастомный символ - это просто одна из разновидностей хранения котировок. Представьте, что нужно получить CSV-файл склейки. Это почти то же самое, что кастомный символ.

Так что создавайте "CSV-файл", а поместить его в кастомный - дело нескольких строк.

Спасибо! Отлично, файл я могу создать, а как его потом заливать?

 
Aleksey Vyazmikin:

Спасибо! Отлично, файл я могу создать, а как его потом заливать?

Создайте не файл, а MqlRates[] или MqlTick[]. А дальше подскажу.

 
fxsaber:

Создайте не файл, а MqlRates[] или MqlTick[]. А дальше подскажу.

Мне право легче все выгрузить файл, так-как надо будет сдвинуть ещё дату каким то образом, а уже потом загрузить все в каждый тип массива по отдельности, как MqlRates[] .

 
Библиотека расширила функционал из-за определенных событий. Пример его использования
// Пример создания "живого" символа.

#include <Symbol.mqh> // https://www.mql5.com/ru/code/18855

const bool Init = EventSetMillisecondTimer(20); // С такой частотой будем пробрасывать тики

void OnTimer()
{
  static bool FirstRun = true;

  static const SYMBOL Symb("CUSTOM_" + _Symbol); // Создали символ
  
  static MqlTick Ticks[];
  static int Pos = 0;
    
  if (FirstRun)
  {
    Symb.DeleteHistory();       // Мало ли что-то было в истории - грохнули
    Symb.Delete(true);          // Символ тоже прибьем, чтобы исключить наличие тика в Обзоре рынка
    Symb.Create(NULL, _Symbol); // Воскресили девственно чистым.
    
    if (Symb.IsExist() && Symb.On())   // Если все отлично
    {     
      ChartOpen(Symb.Name, PERIOD_M1); // Открыли чарт
      CopyTicksRange(_Symbol, Ticks, COPY_TICKS_INFO, (ulong)D'2019.02.01' * 1000); // Взяли тики для проброса
    }
      
    FirstRun = false;
  }
  else if (Pos < ArraySize(Ticks))
    Symb += Ticks[Pos++]; // Пробрасываем по тику
}


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

 
fxsaber:
Библиотека расширила функционал из-за определенных событий. Пример его использования

совместимость со старой библиотекой не нарушена? - у меня несколько работ на старой библиотеке Symbol.mqh , не хотелось бы потом искать что не работает

 
Igor Makanu:

совместимость со старой библиотекой не нарушена? - у меня несколько работ на старой библиотеке Symbol.mqh , не хотелось бы потом искать что не работает

Не нарушена.

 

fxsaber:

void ReverseTick( MqlTick &Tick )
{
  Tick.bid = ReversePrice(Tick.bid);
  Tick.ask = ReversePrice(Tick.ask);
  Tick.last = ReversePrice(Tick.last);
}


Разве бид и аск не нужно местами менять?