Обсуждение статьи "Пример разработки спредовой стратегии на фьючерсах Московской биржи"

 

Опубликована статья Пример разработки спредовой стратегии на фьючерсах Московской биржи:

MetaTrader 5 позволяет разрабатывать и тестировать роботов, торгующих одновременно на нескольких инструментах. Встроенный в платформу тестер стратегий автоматически скачивает с торгового сервера брокера тиковую историю и учитывает спецификацию контрактов — разработчику ничего не нужно делать руками. Это позволяет легко и максимально достоверно воспроизводить все условия торгового окружения MetaTrader 5 позволяет разрабатывать и тестировать роботов — вплоть до миллисекундных интервалов между поступлениями тиков на разных символах. В этой статье мы покажем, как провести разработку и тестирование спредовой стратегии на двух фьючерсах Московской биржи.

На Московской бирже торгуются фьючерсы вида Si-M.Y и RTS-M.Y, которые достаточно тесно между собой связаны. Здесь M.Y обозначают дату истечения контракта:

  • M — номер месяца
  • Y — две последние цифры годв

Si  —  это фьючерсный контракт на курс доллар США/российский рубль, RTS  —  фьючерсный контракт на Индекс РТС, выраженный в долларах США.  Так как в Индекс РТС входят акции российских компаний, цены на которые выражены в рублях, то колебания курса USD/RUR отражаются также и на колебаниях индекса, выраженного в долларах США. На графиках этих инструментов видно, что при росте одного актива второй, как правило, падает.


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

Вычисляем линейную регрессию между Si и RTS

Мы можем выразить связь между двумя инструментами с помощью уравнения линейной регрессии вида Y(X)=A(X)+B. Для проверки напишем скрипт CalcShowRegression_script.mq5, который берет два массива цен закрытия, вычисляет коэффициенты и выводит диаграмму распределения с линией регрессии прямо на график.

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


Автор: MetaQuotes Software Corp.

 

Огромное спасибо за CalcShowRegression_script.mq5! Классный мануал в виде исходника получился по ALGLIB и GraphPlot.

 

Жаль, что через ЛР подгоняли только один символ к другому, а не два к одному - полезнее ALGLIB был бы, если бы добавили еще USDRUB. Но тогда корзина стала бы из трех символов. И ТС стала бы не классической спредовой, а посложнее (зато результаты были бы вкуснее). А потому, видимо, автор не хотел усложнять код представленных ТС, дабы не оттолкнуть читателей. Ведь главная цель статьи - привлечь, а не оттолкнуть.

 

А так читается легко, хорошая статья. И полностью приветствую отсутствие MQL-вставок в тексте статьи. Кому, действительно, нужно - посмотрит исходники полностью. А в текущем виде впечатление хорошее производится, что в MT5 мультивалютки легко писать, визуализировать и, главное, тестировать и оптимизировать. 

 

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

Все ИМХО)

 
Dmitriy Skub:

Небольшое замечание к статье.

И логарифмировать перед ЛР. Иначе, действительно, слабое понимание, что и почему делается.
 
fxsaber:
И логарифмировать перед ЛР. Иначе, действительно, слабое понимание, что и почему делается.
Кстати - было бы интересно увидеть насколько будут отличаться результаты при этом.
 
Dmitriy Skub:

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

Код немного сложнее будет, но есть подозрение, что, опять-таки, не сильно скажется на результатах.
 
Rashid Umarov:
Код немного сложнее будет, но есть подозрение, что, опять-таки, не сильно скажется на результатах.
Если брать M1 и малоликвидные символы, то скажется на результатах сильно. Там же дыры - норма.
 
fxsaber:

Почему постоянно игнорируются тики? В этой статье ЛР строится по барам. И, соответственно, на малых интервалах применять ее невозможно - мало баров.

Тем более, когда есть тики, то можно строить тиковый график (и Bid и Ask с учетом комисиий всех входящих инструментов) корзины.

Как будто тики нужны только для тестера, а не для торгового анализа. 

На тиках было бы круче, как на стероидах. Может кто попробует.
 
fxsaber:
Если брать M1 и малоликвидные символы, то скажется на результатах сильно.
Это же будет треш, нет?
 
Rashid Umarov:
Это же будет треш, нет?
Не возьмусь утверждать, т.к. не пробовал. Но, однозначно, дыры надо учитывать. Тем более, даже если корзина состоит из N-символов, то заполнение дыр и создание мультибарового вектора (матрицы) делается в несколько строк. А, по-хорошему, этот велосипед должен быть в MQL5 штатно.
 
Есть такая штука, как интерполяция :-)
Причина обращения: