Сглаженный индикатор CCI с точками входа - Страница 2


20.02.2017, в 15:13
Халит
Регистрация: 12.05.2013
Сообщений: 220
Рейтинг: 74

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

+ -
Цитировать Ответить

20.02.2017, в 15:44
Халит
Регистрация: 12.05.2013
Сообщений: 220
Рейтинг: 74

admin Сегодня, в 13:49:
Другое направление касается того же трала. Его следует начинать после момента выхода сделки в безубыток и накопления некоторого профита, а не сразу по САРу.

Я тоже пришел к такому же мнению.

+ -
Цитировать Ответить

22.02.2017, в 12:18
Халит
Регистрация: 12.05.2013
Сообщений: 220
Рейтинг: 74

А что, если фильтровать входы по стохастику со старшего таймфрейма, стохастик как индикатор тренда?
Владислав, а можно индикатор сглаженного CCI немного допилить в сторону настройки сигнального уровня? По умолчанию используются 100 и -100, хочется иметь возможность огрублять или повышать чувствительность зон, отмечаемых красным и синим.

Придется плодить сообщения, пока функция редактирования не работает :-D

Кажется, нашел “универсальный” паттерн, включающий в себя другие, замеченные мною ранее. Не придумал, как его назвать, пусть пока будет “Обратная галочка”.
Признаки паттерна (на примере бычьего): находим 3 выхода в зону -100, образующие галочку (т.е. 2-й минимум ниже и 1-го и 3-го), при этом обязательное условие – левое плечо галочки длиннее правого. После выхода индикатора из зоны -100 вверх можно входить в покупку. Как вариант – даже не ждать выхода из зоны, а просто после образования индикатором перегиба вверх.
При этом, чем короче второе плечо, тем эффективнее сигнал. И чем острее угол – тем лучше.
Условие выхода ВСЕХ трех минимумов в зону -100 – необязательно, достаточно, чтобы второй выход был ниже -100.
Для медвежьего все зеркально.
скрин

+1 + -
Цитировать Ответить

22.02.2017, в 14:46
admin
Регистрация: 17.02.2011
Сообщений: 4489
Рейтинг: 2894

Халит Сегодня, в 12:18:
Кажется, нашел “универсальный” паттерн, включающий в себя другие, замеченные мною ранее. Не придумал, как его назвать, пусть пока будет “Обратная галочка”.

Похоже на “колдовство”, но очень интересно =)

Халит Сегодня, в 12:18:
А что, если фильтровать входы по стохастику со старшего таймфрейма, стохастик как индикатор тренда?

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

Халит Сегодня, в 12:18:
Владислав, а можно индикатор сглаженного CCI немного допилить в сторону настройки сигнального уровня? По умолчанию используются 100 и -100, хочется иметь возможность огрублять или повышать чувствительность зон, отмечаемых красным и синим.

Предлагаете сделать “регулируемые сигнальные уровни”. Можно такое сделать. Сейчас “прилеплю” два параметра в индикатор и выложу.

Халит Сегодня, в 12:18:
Придется плодить сообщения, пока функция редактирования не работает

Думаю, просто для начала надо сделать так, чтобы сообщения добавлялись к последнему, как на форумах: “Добавлено тогда-то и во столько-то”, если с момента этого последнего не прошло дня. Плагин (редактирования комментариев) я нашел, но он мне не понравился. Слишком там кода много (а это напрягает), а я думаю, что кода должно быть меньше и он должен быть понятным. :-D
Код индюка с переменными уровнями:

//+------------------------------------------------------------------+
//|                                     SmoothCCI-VariableLevels.mq4 |
//|                                         http://moneyinnetwork.ru |
//|                                         http://moneyinnetwork.ru |
//+------------------------------------------------------------------+
#property copyright "http://moneyinnetwork.ru"
#property link      "http://moneyinnetwork.ru"
#property version   "1.00"
#property description "Сглаженный CCI с заданными сигнальными границами" 
 
//выводим индикатор в отдельное окно
#property indicator_separate_window
//определяем количество индикаторных буферов
#property indicator_buffers 5
//задаем цвета индикаторных линий
#property indicator_color1 White
#property indicator_color2 CornflowerBlue
#property indicator_color3 Tomato
#property indicator_color4 Tomato
#property indicator_color5 CornflowerBlue
 
//задаем цвет и толщину уровней индикатора
#property indicator_levelcolor Yellow
#property indicator_levelwidth 1
 
//определяем "список сглаживания"
enum flat
{
   flat1 = 1, //не сглаживать (оригинал) 
   flat2 = 2, //сглаживать по 2 точкам
   flat3 = 3, //сглаживать по 3 точкам
   flat4 = 4, //сглаживать по 4 точкам
   flat5 = 5, //сглаживать по 5 точкам
   flat6 = 6, //сглаживать по 6 точкам
   flat7 = 7, //сглаживать по 7 точкам
   flat8 = 8, //сглаживать по 8 точкам
   flat9 = 9, //сглаживать по 9 точкам
   flat10 = 10, //сглаживать по 10 точкам
   flat11 = 11, //сглаживать по 11 точкам
   flat12 = 12, //сглаживать по 12 точкам
   flat13 = 13, //сглаживать по 13 точкам
   flat14 = 14, //сглаживать по 14 точкам
   flat15 = 15, //сглаживать по 15 точкам
   flat16 = 16, //сглаживать по 16 точкам
   flat17 = 17, //сглаживать по 17 точкам
   flat18 = 18, //сглаживать по 18 точкам
   flat19 = 19, //сглаживать по 19 точкам
   flat20 = 20  //сглаживать по 20 точкам
};
 
input int CCI = 20; //период CCI
input ENUM_APPLIED_PRICE price = 0; //применить к цене 
input flat FLAT = flat5;//количество точек сглаживания
input int HighLevel = 100;//верхний уровень
input int LowLevel = -100;//нижний уровень
 
//массивы для хранения расчетных данных индикатора
double buff1[];
double buff2[];
double buff3[];
double buff4[];
double buff5[];
 
//функция инициализации индикатора
int OnInit()
{
   //количество индикаторных буферов
   IndicatorBuffers(5);
   //связываем массивы данных с соответствующими им индикаторными буферами
   SetIndexBuffer(0, buff1);
   SetIndexBuffer(1, buff2);
   SetIndexBuffer(2, buff3);
   SetIndexBuffer(3, buff4);
   SetIndexBuffer(4, buff5);
   //определям всплывающие подсказки для индикаторных линий
   SetIndexLabel(1, "Smooth CCI");
   SetIndexLabel(2, "Smooth CCI");
   SetIndexLabel(3, "Smooth CCI");
   SetIndexLabel(4, "Smooth CCI");
 
   //определяем вид отображения, стили и толщину индикаторных линий
   SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 3);
   SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 5);
   SetIndexStyle(2, DRAW_LINE, STYLE_SOLID, 5);
   SetIndexStyle(3, DRAW_HISTOGRAM, STYLE_SOLID, 1);
   SetIndexStyle(4, DRAW_HISTOGRAM, STYLE_SOLID, 1);
   SetIndexDrawBegin(0, CCI+FLAT);
   SetIndexDrawBegin(1, CCI+FLAT);
   SetIndexDrawBegin(2, CCI+FLAT);
   SetIndexDrawBegin(3, CCI+FLAT);
   SetIndexDrawBegin(4, CCI+FLAT);
 
   SetLevelValue(1, HighLevel);
   SetLevelValue(2, LowLevel);
   SetLevelStyle(STYLE_DASHDOT,1,clrYellow);
 
   //задаем имя индикатора
   IndicatorShortName("Сглаженный CCI(" + IntegerToString(CCI) + ") FLAT(" + IntegerToString(FLAT) + ")");
   return(INIT_SUCCEEDED);
}
 
//рассчитываем значения индикатора
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
   double aCCI;
   int j;
   //определяем число баров, для которых рассчитываем индикатор
   int limit=rates_total-prev_calculated; 
   //пошли по каждому бару, начиная с левой стороны графика 
   //помните, я уже писал в посте о том, как написать индикатор,
   //что старшему индексу массива, соответствует более старые данные
   for (int i = limit; i >= 0; i--) 
   {
      //рассчитываем усредненный CCI для текущего бара 
      //(от текущего бара идем влево по графику на число усредняющих баров МА)
      aCCI = 0.0;
      //сумма всех CCI на глубину MA от текущего бара (включая текущий бар)
      for (j = i; j < i + FLAT; j++) aCCI += iCCI(Symbol(),Period(),CCI,price,j);
      //среднее арифметическое
      aCCI /= FLAT;
      //заполняем соответствующими значениями массивы данных
      buff1[i] = aCCI; //основная усредненная линия CCI активна всегда,
                       //поверх нее мы будем рисовать соответствующими цветами линии
                       //покупок и продаж
      //присваиваем (инициализируем) пустые значения (линии и гистограммы не отображаются)
      //линиям и гистограммам продаж и покупок
      buff2[i] = EMPTY_VALUE; //линия продаж неактивна
      buff3[i] = EMPTY_VALUE; //линия покупок неактивна
      buff4[i] = EMPTY_VALUE; //гистограмма покупок неактивна
      buff5[i] = EMPTY_VALUE; //гистограмма продаж неактивна
      //расчетный CCI выше уровня 100, значит, включаем линию и гистограмму продаж
      if ( aCCI>=HighLevel ) 
      {
         buff2[i] = buff1[i]; //линия продаж активна
         buff5[i] = buff1[i]; //гистограмма покупок активна
      } 
      else 
      {
         //расчетный CCI ниже уровня -100, значит, включаем линию и гистограмму покупок
         if ( aCCI<=LowLevel ) 
         {
            buff3[i] = buff1[i]; //линия покупок активна
            buff4[i] = buff1[i]; //гистограмма покупок активна
         }
      }
   }
   return(rates_total);
}

Скачать индикатор гладкого CCI с переменными сигнальными уровнями

+4 + -
Цитировать Ответить

22.02.2017, в 16:28
Халит
Регистрация: 12.05.2013
Сообщений: 220
Рейтинг: 74

От идеи “галочки” идем к дальнейшему упрощению. Есть идея присмотреться к расстоянию между экстремумами, похоже, чем ближе вершинки/впадинки друг к другу, тем больше вероятность отработки сигнала.

+3 + -
Цитировать Ответить

01.03.2017, в 23:37
Халит
Регистрация: 12.05.2013
Сообщений: 220
Рейтинг: 74

С паттернами пока не очень получается. Поэтому от паттернов отошел в сторону другого подхода.
Увидел на графике интересную особенность. Первый уход цены в сигнальную зону в начале дня срабатывает довольно часто на йеновых парах, которые я считаю самыми трендовыми. Но если даже первый сигнал оказался ложным, то можно войти второй раз, уже по противоположному сигналу, и в сумме эти 2 сигнала дают довольно устойчивый профит, по крайней мере на ближайшей истории (смотрел полгода примерно на доллар-йене и на евро-йене). Что вытягивает профит – это то, что убытки ограниченные (я брал 30 пунктов), а вот профиты бывают и 30, и 100, и даже 200+ пунктов.
По USDJPY за 8 последних месяцев получилось порядка 2100 пунктов при просадке до 200.
Идея легко формализуема ;)
скрин

+1 + -
Цитировать Ответить

02.03.2017, в 00:26
admin
Регистрация: 17.02.2011
Сообщений: 4489
Рейтинг: 2894

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

Халит Сегодня, в 23:37:
Идея легко формализуема

Попробую посмотреть в ближайшее время.

+ -
Цитировать Ответить

02.03.2017, в 10:39
Халит
Регистрация: 12.05.2013
Сообщений: 220
Рейтинг: 74

Сопровождение я делал простое – перенос в безубыток и закрытие сделки в конце дня. Хотя надо бы еще посмотреть вариант с фиксированным, достаточно большим тейком, пунктов на 100-150 – на тот случай, если цена развернется, пройдя значительное расстояние, такое иногда случается. Добавлено сообщение 02.03.2017, в 10:41И еще.
Если на первой свече дня цена индикатор уже находится в сигнальной зоне, то такой сигнал пропускаем и ждем следующий. Добавлено сообщение 02.03.2017, в 10:42Я смотрю, добавили функционал в форумный движок *FEDORA*

+1 + -
Цитировать Ответить

02.03.2017, в 21:15
admin
Регистрация: 17.02.2011
Сообщений: 4489
Рейтинг: 2894

Халит, а если в процессе сопровождения сделки другие сигналы поступают, то их игнорировать или как? И в безубыток когда переходим?

+ -
Цитировать Ответить

02.03.2017, в 21:50
Халит
Регистрация: 12.05.2013
Сообщений: 220
Рейтинг: 74

Если сделка открыта, то все остальные игнорируем, пока не сработает стоп. Или не наступит конец торгового дня. Или пока не будет тейк-профит, но такой вариант я пока не считал.
В безубыток я переходил после 30 пунктов прибыли (стоп-лосс тоже 30 пунктов).

+ -
Цитировать Ответить

02.03.2017, в 21:54
admin
Регистрация: 17.02.2011
Сообщений: 4489
Рейтинг: 2894

Халит Сегодня, в 21:50:
В безубыток я переходил после 30 пунктов прибыли (стоп-лосс тоже 30 пунктов).

В 2016 году работает, а на остальных периодах кардиограмма. Добавлено сообщение 02.03.2017, в 21:57Может, я конечно, что и накосясил, бегло делал. Сейчас скину. Сами посмотрите.

admin Сегодня, в 21:54:
В 2016 году работает

Да, и в 2016 не работает, в принципе, с такими параметрами. Добавлено сообщение 02.03.2017, в 22:09Скачать эксперта SMOOTH_CCI-Halit-Expert
Скачать индикатор SMOOTH_CCI к эксперту
Будем до ума доводить, если я накосячил.

+1 + -
Цитировать Ответить

02.03.2017, в 22:36
Халит
Регистрация: 12.05.2013
Сообщений: 220
Рейтинг: 74

Посмотрим. Сравню со своими результатами, табличка по месяцам у меня есть.

+ -
Цитировать Ответить

Подписаться без комментирования



Инсайт Инвест Брокер