Я вот тоже с собой воевал, все на разные движения засматривался, вот тут так классно было заработать.
Но, потом посмотрел, что за 2 недели заработал квартальную зарплату и подумал "ну и хрен с ним с моментом".
Нужно смотреть на отчетность счета и добавлять фильтры, сигналы, рынки только для того, что бы счет рос лучше. А не потому что красивые движения, а я на них не по пробовал заработать.
Мне тоже интересно. Перечитал Ваши посты, но мало понял. В чём суть стратегии? Строим каналы на разных таймфреймах и разных участках котировки, потом экстраполируем границы в будущее, и получаем множество возможных границ на текущем баре?
Я тут неделю бился над автоматическим построением каналов по зигзагу. Много тут ручной подгонки и много исключений. Решил забросить зигзаг и попытаться построить каналы по LWMA. Из всех машек, LWMA даёт маиболее прямые сегменты. Вот пример:
Здесь LWMA с периодом 150 сдвинутая на 50 баров. Кстати, кто нибудь знает групповую задержку LWMA? У этого фильтра должна быть нелинейная фаза, но можно наверно использовать задержку нулевой частоты. Перед тем как я начну выводить, может кто-нибудь уже знает ответ. Думал аппроксимировать LWMA прямыми сегментами, но угол придётся корректировать и в этом вся загвоздка. Если знаем где начало каждого канала (например по изгибам какой-нибудь плавной машки), то можно также использовать линейную регрессию (тот же LWMA) на участках заданной длинны, то есть период LWMA будет адаптироваться под начало текущего канала. Вот сравнение LWMA (красный) и плавной машки (синий):
Может есть другие идеи?
Есть идеи и реализация есть. Пару лет назад на форуме четверки кто-то (по-моему, Сергеев) затеял ветку "Канал, какой ты?". Там я эту идею озвучил, причем она уже была реализована. Суть очень проста:
1. Канал сам по себе смысла не имеет, он интересен лишь как дочерний объект тренда, поэтому его построение целесообразно именно в момент распознавания этого тренда.
2. Сначала формируется ось канала, затем - начинаем рисовать границы. Начало канала - момент первого касания ценой его оси, окончание - последнее (крайнее) касание.
3. Пока цена находится внутри канала, он отображается лучами, а после выхода цены за границы канала - отрезками.
Картинка с экрана (реальное время, евродоллар, часы):
Понижающий тренд, в момент распознавания - утолщен, параллельно снизу длинным пунктиром проходит ось канала, а выще и ниже коротким пунктиром - границы (цена сейчас тестирует верхнюю).
По третьей ничего говорить не стану (я бы выделил ее в отдельную ветку) , а по первой - есть мысль и немного реализации:)
Можно попробовать выявлять схожие участки по их сигнатурам, например - сформированным на основе простенького индикатора (в прицепе) . Вроде, аналогов не встречал.
/* iPulsar Отображает количество периодов размером Scale(по умолчанию - дней),
на протяжении которых не были пробиты текущие значения High и Low.
Условно, характеризует "силу" тестируемых уровней.
Использует фильтр уровня горизонта ретроспективы. При горизонте,
меньшем заданного числа периодов Scale, значение индикатора
не отображается. */#property copyright "Copyright 2012, Тарабанов А.В."#property link "alextar@bk.ru"#property indicator_separate_window // Атрибуты индикатора#property indicator_buffers 2#property indicator_color1 Magenta // Атрибуты буферов#property indicator_width1 2#property indicator_color2 Teal#property indicator_width2 2#define Version "iPulsar_v1"// Константы#define Zero 0.00000001double HP[], LP[], // Буферы
Periods; // Глобальные переменныеexterndouble Filter =0; // Не отображать меньшие, чем ...externint Scale =1440, // Размерность шкалы
ScaleDigits =0; // Точность отображаемых значений//+------------------------------------------------------------------+int init(){
IndicatorShortName(Version); // Атрибуты индикатора
IndicatorDigits(ScaleDigits);
SetIndexLabel(0,"High"); // Атрибуты буферов
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexBuffer(0,HP);
SetIndexEmptyValue(0,0);
SetIndexLabel(1,"Low");
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexBuffer(1,LP);
SetIndexEmptyValue(1,0);
if( Scale==0 ) Scale=Period(); // Контроль внешних переменныхif( Scale<0 ) Scale=-Scale;
if( ScaleDigits<0 ) ScaleDigits=-ScaleDigits;
Periods=Scale/Period(); // Инициализация глобальных переменныхreturn(0);
}
//+------------------------------------------------------------------+int start(){
double f=Filter*Periods, H, L, HB, LB;
bool HD, LD; // Флаги обнаружения пробоевint i, k, History=Bars-1;
int j=History-IndicatorCounted(); // Рассматриваемые барыwhile( j>=0 ){
H=High[j];
L=Low[j];
HD=false;
LD=false;
HB=0; // Число баров до пробоя High
LB=0; // Число баров до пробоя Low
i=j;
while( i<History ){ // Поиск пробоевif( HD && LD ) break; // Пробои найдены
i++;
k=i-j-1; // Текущая глубина поискаif( !HD && High[i]-H>Zero ){
HD=true; // Пробой Highif( k-f>-Zero ) HB=k; // Фильтрация
}
if( !LD && L-Low[i]>Zero ){
LD=true; // Пробой Lowif( k-f>-Zero ) LB=k; // Фильтрация
} }
// Контроль обнаружения пробоев:if( !HD ) HB=History-j-2;
if( !LD ) LB=History-j-2;
// Приведение к заданной шкале и отображение:
HP[j]= NormalizeDouble(HB/Periods,ScaleDigits);
LP[j]=-NormalizeDouble(LB/Periods,ScaleDigits);
j--;
}
return(0);
}
Наверное, не будет преувеличением сказать, что после скользящих средних каналы - самый популярный инструмент для анализа рыночной ситуации и принятия торговых решений. Не углубляясь во множество существующих стратегий использования каналов и их составных элементов, мы здесь рассмотрим математические основы и практическую реализацию индикатора, строящего канал, заданный тремя экстремумами на экране терминала.
Я вот тоже с собой воевал, все на разные движения засматривался, вот тут так классно было заработать.
Но, потом посмотрел, что за 2 недели заработал квартальную зарплату и подумал "ну и хрен с ним с моментом".
Нужно смотреть на отчетность счета и добавлять фильтры, сигналы, рынки только для того, что бы счет рос лучше. А не потому что красивые движения, а я на них не по пробовал заработать.
ТС автоматизирована?
EURUSD продолжает спуск внутри канала. Верхняя граница канала определилась. Теперь идём к нижней границе. Цель 1.262.
EURUSD продолжает спуск внутри канала. Верхняя граница канала определилась. Теперь идём к нижней границе. Цель 1.262.
А стоп где?
В этот раз стоп не понадобится :)
для чистоты эксперимента - пусть будет на 1.2788 (текущая 1.2758)
Мне тоже интересно. Перечитал Ваши посты, но мало понял. В чём суть стратегии? Строим каналы на разных таймфреймах и разных участках котировки, потом экстраполируем границы в будущее, и получаем множество возможных границ на текущем баре?
Я тут неделю бился над автоматическим построением каналов по зигзагу. Много тут ручной подгонки и много исключений. Решил забросить зигзаг и попытаться построить каналы по LWMA. Из всех машек, LWMA даёт маиболее прямые сегменты. Вот пример:
Здесь LWMA с периодом 150 сдвинутая на 50 баров. Кстати, кто нибудь знает групповую задержку LWMA? У этого фильтра должна быть нелинейная фаза, но можно наверно использовать задержку нулевой частоты. Перед тем как я начну выводить, может кто-нибудь уже знает ответ. Думал аппроксимировать LWMA прямыми сегментами, но угол придётся корректировать и в этом вся загвоздка. Если знаем где начало каждого канала (например по изгибам какой-нибудь плавной машки), то можно также использовать линейную регрессию (тот же LWMA) на участках заданной длинны, то есть период LWMA будет адаптироваться под начало текущего канала. Вот сравнение LWMA (красный) и плавной машки (синий):
Может есть другие идеи?
Есть идеи и реализация есть. Пару лет назад на форуме четверки кто-то (по-моему, Сергеев) затеял ветку "Канал, какой ты?". Там я эту идею озвучил, причем она уже была реализована. Суть очень проста:
1. Канал сам по себе смысла не имеет, он интересен лишь как дочерний объект тренда, поэтому его построение целесообразно именно в момент распознавания этого тренда.
2. Сначала формируется ось канала, затем - начинаем рисовать границы. Начало канала - момент первого касания ценой его оси, окончание - последнее (крайнее) касание.
3. Пока цена находится внутри канала, он отображается лучами, а после выхода цены за границы канала - отрезками.
Картинка с экрана (реальное время, евродоллар, часы):
Понижающий тренд, в момент распознавания - утолщен, параллельно снизу длинным пунктиром проходит ось канала, а выще и ниже коротким пунктиром - границы (цена сейчас тестирует верхнюю).
Правка поста не работает, почему-то. :(
Не часы, а М30
https://c.mql5.com/3/12/ch__1.gif
Вообще, ветка очень интересная, но тем в ней уже три:
1. Распознавание патернов
2. Построение каналов
3. Инструменты фондового рынка
По третьей ничего говорить не стану (я бы выделил ее в отдельную ветку) , а по первой - есть мысль и немного реализации:)
Можно попробовать выявлять схожие участки по их сигнатурам, например - сформированным на основе простенького индикатора (в прицепе) . Вроде, аналогов не встречал.