Исследование1: мультивалютный анализ для скальпинга и не только - страница 2

 
Zhunko:
Сомнительно... Курс отрабатывается моментально по всем связанным парам. Кто-нибудь видел реальный перекос на Форексе?


Внимательнее, Zhunko. Человек смотрит только на пары с долларом. Конечно связанные пары, т.е. кроссы, мгновенно отрабатывают. Вот по ним и можно увидеть перекос это или какая-то одна валюта имеет свое движение. Но это же за кадром.

А учесть это через анализ кроссов действительно возможно. Логика та же, что и по отношению к доллару в первом посте: если все пары, где есть данная валюта ведут себя соответственно, то это она и движется. Да только слишком сложная логика получится. Ну разве что следить только за одной валютой, долларом например. Но тогда это уже не арбитражная стратегия,а трендовая. Со всей ее неопределенностью.

 

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

 
Yurixx:


Внимательнее, Zhunko. Человек смотрит только на пары с долларом. Конечно связанные пары, т.е. кроссы, мгновенно отрабатывают. Вот по ним и можно увидеть перекос это или какая-то одна валюта имеет свое движение. Но это же за кадром.

А учесть это через анализ кроссов действительно возможно. Логика та же, что и по отношению к доллару в первом посте: если все пары, где есть данная валюта ведут себя соответственно, то это она и движется. Да только слишком сложная логика получится. Ну разве что следить только за одной валютой, долларом например. Но тогда это уже не арбитражная стратегия,а трендовая. Со всей ее неопределенностью.


Смторю только на мажоры, поскольку они определяют и все кроссы. Это очень важно понимать. Т.е. анализ кроссов - это и есть анализ мажоров. Например, исследование EURJPY будет полноценным, если исследовать произведение EURUSD * USDJPY. Вроде, очевидные вещи.

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

Привожу код, которым исследовал мажоры. Написано было быстро, но логика простейшая.

Скрипт TestAlgo ищет все закономерности на истории, начиная с времени StartTime до сего момента. Входные параметры: E1 - малый радиус, E2 - большой. Depth - максимальная глубина в барах для поиска.

Советник SaveTestAlgo сохраняет все найденные закономерности (требует разрешение на DLL) в виде скринов всех символов с линиями и текстом (как показано выше) в папку experts/files.

Пользоваться так: открываем два графика (например, GBPJPY M1 и GBPJPY M1). На первом запускаем скрипт TestAlgo, на втором советник SaveTestAlgo. Далее советник не трогаем - он так и остается висеть на втором графике. А все манипуляции производим на первом графике скриптом TestAlgo, меняя входные параметры.

Как видно, код скрипта поиска закономерностей простой и короткий. Так что сложность реализации - миф. 

Файлы:
testalgo.rar  3 kb
 
sanyooooook:

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

Исследовали свою штуку? Какие-то закономерности, особенности подметили?
 
hrenfx:
Исследовали свою штуку? Какие-то закономерности, особенности подметили?
С её помощь можно отследить как раз то что вы называете перекосом, видно какая из пар запаздывает, в то время как остальные пошли вниз/вверх.
 
sanyooooook:
С её помощь можно отследить как раз то что вы называете перекосом, видно какая из пар запаздывает, в то время как остальные пошли вниз/вверх.

Понял. Как раз эти запаздывания/перекосы исследовал на истории скриптом (выложил выше) более обобщенно: анализируются перекосы на всех возможных временных интервалах и четко заданы характеристики перекосов - радиусы.
 
hrenfx:

Привожу код, которым исследовал мажоры.

У меня мелкий технический коммент по коду. Вроде бы нет необходимости в проверке

    Pos = iBarShift(Symbols[i], Period(), Times[CurrentPos]);
    if (iTime(Symbols[i], Period(), Pos) < Times[CurrentPos])
      Price = iClose(Symbols[i], Period(), Pos);
    else  
      Price = iOpen(Symbols[i], Period(), Pos);

Вот минутки импортированного в eurusd индекса доллара, с суточным разрывом. Я использовал только первую часть конструкции.



Видно, что iBarShift возвращает не просто номер ближайшего бара, а номер ближайшего слева бара, то есть вполне корректно будет просто

    Pos = iBarShift(Symbols[i], Period(), Times[CurrentPos]);
    Price = iClose(Symbols[i], Period(), Pos);

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

 

Понимаю, что тема мультивалютного анализа значительно сложнее моновалютного. Давайте делиться своими наработками: идеи, исследования и т.д. Скрывать-то что?

Считаю, что индексы в классическом виде (постоянные весовые коэффициенты)  - это полное дерьмо. Очевидно, что коэффициенты должны быть плавающими.

Возможно, кто-то исследовал тему динамических коэффициентов при расчетах индексов.

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

 
Candid:

У меня мелкий технический коммент по коду. Вроде бы нет необходимости в проверке

На примере поясню:

нам надо на истории посмотреть цену открытия бара на момент 13:48.

На EURUSD есть бар на 13:48 - берем его Open.

На GBPUSD есть бар на 13:48 - берем его Open. 

На AUDUSD нет бара на 13:48 (не было обновления котировок в это время) - тогда берем последнюю котировку, которая была до 13:48. Например, если бар перед 13:48 имеет время 13:47, то берем его Close. Очевидно, что эта цена актуальна будет и на время 13:48.

 
hrenfx:

Например, если бар перед 13:48 имеет время 13:47, то берем его Close. Очевидно, что эта цена актуальна будет и на время 13:48.


А если не 13:47, а 13:01 ?

Или даже 13:47, нет ведь гарантии, что бар с временем 13:48 не пропущен.

Если это - дыра в истории ?

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