Моё недовольство к тестеру стратегий. к разрабочикам MQL - страница 2

 
Alexey Volchanskiy:

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

Позже.

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

 
Renat Fatkhullin:

Позже.

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


Мне хочется многопоточности, была надежда, что как-то получится ее сделать с сервисами. Датафиды лично мне пока не нужны.

 

Всем доброе время суток.

Нет этот пост не херня полная как ктото тут написал.

Я на полном серёзе.

Я понимаю что програмисты пишут и говорят работает но простите.

Если мы все работаем с ошибочными данными по брокеру то сразу преходит мысыль а мой результат не ошибочный.

Дело в том что может по иронии сутьбы я учился в университете на инженера статистики.

Так что для меня ошибочные данные это вобще ложные данные соответственно сказать на 99% что то что я вижу работает я как человек статистики говорю не знаю то же самое скажете вы и все кто этот пост прочитает.

Решение этому это то что я написал выше.

Сбор тиков каждый может сделать простым роботом/алгоритмом. 

Но факт остаётса фактом не в 5 не в 4 MQL мы не имеем данных по рынку которые должны быть пременённые для теста стратегий-

Для долгосрочных стратегий не спорю но там по мне и робота не нужно.

Но всё что работает на тиках или моментом заработке являетса ложными результатоми- А по мне хоть тики тиками а у меня самого интересные задумки по изучению аск и бид в тиковой жизне.

Простите за долгий ответ и время просто был очень сильно занят!

С увожением Иван С.

 
Alexey Volchanskiy:

Да я писал как-то, сейчас найду

Для пятеры https://www.mql5.com/ru/code/18046

Для четверы https://www.mql5.com/ru/code/18047

Для шестеры https://www.mql5.com/ru/code/


Вы удивитесь но и в 5 и в 4 то же самое.

Я могу говорить за 4 и за 5 одновременнно!


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

Если есть кто с програмистов кто это сможет сделать я слушаю очень очень внемательно!

 
Renat Fatkhullin:
Если я не ошибаюсь, то в МТ5 тестер на реальных тиках, где bid/ask реальные?

ренат проверял что mql5 работает также само выстовляет фиксированый спред. как и в 4 mql

 
Ivan Stepanenko:

ренат проверял что mql5 работает также само выстовляет фиксированый спред. как и в 4 mql


вопрос давно решен

1. Для MQL5 уже около года есть тестирование на реальных тиках, тиковые данные качаются непосредственно с того ДЦ, где торгуете. Вы бы хоть терминал, что ли, изучили...

2. Для MQL4 можно подставлять свои тиковые .fxt файлы. Проще всего с помощью TickStory Lite, он качает реальные тики с дукаса

 
Ivan Stepanenko:

ренат проверял что mql5 работает также само выстовляет фиксированый спред. как и в 4 mql


вранье

берем мой советник для записи тиков SaveTicks, ссылку в CodeBase я давал выше, и прогоняем его в тестере в режиме "Каждый тик на основе реальных тиков". Смотрим, что в выходном файле, в моем случае \Tester\Agent-127.0.0.1-3000\MQL5\Files\EURUSD_SaveTicks.csv

2017.11.28 09:11:16,1.1895,1.18952

2017.11.28 09:11:16,1.1895,1.18952

спред 2

2017.11.28 09:11:26,1.18947,1.18951

2017.11.28 09:11:26,1.18947,1.18951

спред 4
 

Посмотрите броузер символов, а там тики у любых символов.

Вот эти реальные тики и используются в тестере.

 
Ivan Stepanenko:

Всем доброе время суток.

Нет этот пост не херня полная как ктото тут написал.

Я на полном серёзе.

Я понимаю что програмисты пишут и говорят работает но простите.

Если мы все работаем с ошибочными данными по брокеру то сразу преходит мысыль а мой результат не ошибочный.

Дело в том что может по иронии сутьбы я учился в университете на инженера статистики.

Так что для меня ошибочные данные это вобще ложные данные соответственно сказать на 99% что то что я вижу работает я как человек статистики говорю не знаю то же самое скажете вы и все кто этот пост прочитает.

Решение этому это то что я написал выше.

Сбор тиков каждый может сделать простым роботом/алгоритмом. 

Но факт остаётса фактом не в 5 не в 4 MQL мы не имеем данных по рынку которые должны быть пременённые для теста стратегий-

Для долгосрочных стратегий не спорю но там по мне и робота не нужно.

Но всё что работает на тиках или моментом заработке являетса ложными результатоми- А по мне хоть тики тиками а у меня самого интересные задумки по изучению аск и бид в тиковой жизне.

Простите за долгий ответ и время просто был очень сильно занят!

С увожением Иван С.

А что у Вас с грамматикой? //это к слову...

Ну раз уж все так серъезно, то решение Вашего вопроса следующее:

Соберите статистику, историю котировки и работайте, Алексей Волчанский за Вас и для Вас уже все нашел и дал ссылки выше.

По поводу Аска - можно скачать историю с асками и бидами с DucasCopy (погуглите)

Удачи!
 

Вот интересные статьи:


Кроме того, во вчерашней бете MetaTrader 5, на которую можно обновиться с MetaQuotes-Demo, есть полноценная формульная система создания кастомных инструментов.

Добавлена возможность создавать синтетические финансовые инструменты — инструменты на основе одного или нескольких имеющихся. Нужно просто задать формулу для расчета котировок, и платформа в режиме реального времени будет генерировать тики синтетического инструмента, а также создаст его минутную историю.

Как это происходит

  • Вы создаете синтетический инструмент и задаете для него формулу.
  • Платформа будет рассчитывать его тики с частотой 10 раз в секунду (и только если изменилась цена хотя бы одного инструмента, входящего в формулу).
  • Платформа рассчитает историю минутных баров (за два последних месяца) на основе минутных баров инструментов, входящих в его формулу. Все новые бары (текущий и последующий) будут строиться в режиме реального времени на основе генерируемых тиков синтетического инструмента.
Например, вы можете создать инструмент, который будет показывать индекс доллара (USDX). Его формула будет выглядеть следующим образом:
50.14348112 * pow(ask(EURUSD),-0.576) * pow(USDJPY,0.136) * pow(ask(GBPUSD),-0.119) * pow(USDCAD,0.091) * pow(USDSEK,0.042) * pow(USDCHF,0.036)
Примечание: в исходной формуле индекса доллара используются пары USDEUR и USDGBP. Поскольку в платформе есть только обратные валютные пары, в формуле синтетического инструмента для них используется отрицательная степень и цена Ask вместо Bid.

В режиме реального времени платформа будет рассчитывать цену нового инструмента на основе котировок шести других инструментов, предоставляемых вашим брокером. В Обзоре рынка и на графике вы будете видеть, как изменяется его цена:



Создайте новый пользовательский инструмент, откройте его спецификацию и укажите формулу:




Для удобства редактор формул показывает список возможных вариантов по мере ввода имен инструментов и функций.

Расчет тиков и минутных баров синтетического инструмента начнется при его добавлении в "Обзор рынка". При этом в "Обзор рынка" сразу же автоматически добавляются все символы, необходимые для его расчета. В журнал платформы будет добавлена запись о начале расчета: Synthetic Symbol USDX: processing started.
  • Расчет синтетического инструмента прекращается при его скрытии из "Обзора рынка".
  • Символы, которые в настоящий момент используются для расчета синтетических инструментов, невозможно скрыть из "Обзора рынка".

Расчет котировок в реальном времени
Каждые 100 мс (десять раз в секунду) проверяется, изменилась ли цена хотя бы одного из инструментов, участвующих в формуле. Если да, происходит расчет цены синтетического инструмента и генерируется тик. Расчет осуществляется параллельно в трех потоках для цен Bid, Ask и Last. Например, если в формуле указан EURUSD*GBPUSD, расчет цен синтетического инструмента будет следующим:

  • Bid — bid(EURUSD)*bid(GBPUSD)
  • Ask — ask(EURUSD)*ask(GBPUSD)
  • Last — last(EURUSD)*last(GBPUSD)

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

Построение истории минутных баров
Помимо сбора тиков в реальном времени, платформа создает и минутную историю синтетического инструмента. Таким образом, трейдер может просматривать его графики аналогично обычным инструментам, проводить на них технический анализ при помощи объектов и индикаторов.

Как только трейдер добавляет синтетический инструмент в Обзор рынка, платформа проверяет, есть ли для него рассчитанная минутная история. Если нет, она будет создана для последних 60 дней — это около 50 000 баров. Если в настройках платформы в параметре макс. баров в окне указана меньшая величина, то будет использовано именно это ограничение.

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

История минутных баров синтетического инструмента рассчитываются на основе минутных баров (не тиков) инструментов, входящих в его формулу. Например, чтобы посчитать цену Open минутного бара синтетического инструмента, платформа берет цены Opеn инструментов, входящих в его формулу. Аналогично производится расчет для цен High, Low и Close.

Если для какого-либо инструмента из формулы отсутствует нужный минутный бар, платформа возьмет для расчета цену Close предыдущего бара. Например, используются три инструмента: EURUSD, USDJPY и GBPUSD. Если при расчете бара, соответствующего минуте 12:00, для инструмента USDJPY такого минутного бара не окажется при расчете будут использованы следующие цены:

  • Для Open — EURUSD Open 12:00, USDJPY Close 11:59, GBPUSD Open 12:00
  • Для High — EURUSD High 12:00, USDJPY Close 11:59, GBPUSD High 12:00
  • Для Low — EURUSD Low 12:00, USDJPY Close 11:59, GBPUSD Low 12:00
  • Для Close — EURUSD Close 12:00, USDJPY Close 11:59, GBPUSD Close 12:00

Если минутный бар отсутствует у всех инструментов из формулы, соответствующий минутный бар синтетического инструмента не будет рассчитан.

Построение новых минутных баров
Все новые бары (текущий и последующие) синтетического инструмента создаются на основе генерируемых тиков. Цена, по которой строятся бары, зависит от параметра "Построение графиков" в спецификации:





Какие операции можно использовать в формуле инструмента
В формуле можно использовать ценовые данные, а также некоторые свойства имеющихся символов (предоставляемых брокером). Для этого укажите:

  • Имя символа — в зависимости от того, какая цена синтетического инструмента рассчитывается, в формуле будет использована цена Bid, Ask или Last указанного инструмента. Например, если указать EURUSD*GBPUSD, то Вid будет рассчитываться как bid(EURUSD)*bid(GBPUSD), а цена Ask — как ask(EURUSD)*ask(GBPUSD).
  • bid(имя символа) — для расчета цены Bid синтетического инструмента будет принудительно использоваться цена Bid указанного символа. Фактически этот вариант соответствует предыдущему (без указания типа цены).
  • ask(имя символа) — для расчета цены Bid синтетического инструмента будет принудительно использоваться цена Ask указанного символа. Для расчета цены Ask наоборот будет использоваться цена Bid указанного инструмента. Для расчета цены Last будет использоваться цена Last указанного инструмента. Например, если указать ask(EURUSD)*GBPUSD, расчет будет следующим:
    • Вid = ask(EURUSD)*bid(GBPUSD)
    • Ask = bid(EURUSD)*ask(GBPUSD)
    • Last = last(EURUSD)*last(GBPUSD)
  • last(имя символа) — цена Last указанного символа будет использоваться при расчетах всех цен синтетического инструмента (Bid, Ask и Last). Например, если указать last(EURUSD)*GBPUSD, расчет будет следующим:
    • Вid = last(EURUSD)*bid(GBPUSD)
    • Ask = last(EURUSD)*ask(GBPUSD)
    • Last = last(EURUSD)*last(GBPUSD)
  • volume(имя символа) — в формуле будет использован объем тика указанного инструмента. Убедитесь, что информация об объемах транслируется для указанного инструмента.
  • point(имя символа) — в формулу будет подставлен размер минимального изменения цены указанного инструмента.
  • digits(имя символа) — в формулу будет подставлено количество знаков после запятой в цене указанного инструмента.

Если символ имеет сложное название (содержит дефисы, точки и т.п.), оно должно быть заключено в кавычки. Например, "RTS-6.17".
В формуле можно использовать арифметические операции: сложение (+), вычитание (-), умножение (*), деление (/) и остаток от деления (%). Например, EURUSD+GBPUSD означает, что цена рассчитываться как сумма цен EURUSD и GBPUSD. Также в формуле можно использовать унарный минус для смены знака, например: -10*EURUSD.

Для арифметических операций существует приоритет их выполнения:

  • Операции умножения, деления и остатка от деления выполняются первыми, далее выполняются операции сложения и вычитания.
  • Операции выполняются слева направо. Если в формуле используется несколько операций, имеющих одинаковый приоритет (например, умножение и деление), первой будет выполнена операция слева.
  • Для изменения приоритета операций можно использовать скобки ( и ). Выражения в скобках имеют наивысший приоритет при расчете. Для них также действует принцип слева направо: первыми вычисляются выражения в скобках, находящиеся в формуле левее.

Также в формуле можно использовать константы:

  • Числовые (целочисленные и вещественные с точкой). Например, EURUSD*2+GBPUSD*0.7.
  • Свойства символа _Digits и _Point. Они подставляют в формулу свойства пользовательского символа из спецификации. _Digits — количество знаков после запятой в цене инструмента, _Point — размер минимального изменения цены инструмента.

Также в формуле можно использовать все математические функции, поддерживаемые в MQL5, кроме MathSrand, MathRand и MathIsValidNuber. Для всех функций используются только короткие имена: fabs(), acos(), asin() и т.д.
Причина обращения: