Не скрою, что идею этого индикатора была подсмотрена в ветке
Но здесь возникла мысль: "А достаточно ли таких параметров? Может нужды другие параметры?".
В общем начинаю ваять индикатор. На данный момент заявленный функционал поиска свечей по таким параметрам:
- тень верхняя есть/нет
- тень нижняя есть/нет
Там ещё было условие на минимальные расстояния - у вас их нет, поэтому такой плохой результат. Оптимально делать в процентах от величины свечи, к примеру так:
свеча не менее 15пп, верхняя тень 15%, нижняя 45% - синяя стрелка,
свеча не менее 15пп, верхняя тень 45%, нижняя 15% - красная стрелка
Параметры вынести в настройки
Там ещё было условие на минимальные расстояния - у вас их нет, поэтому такой плохой результат. ***
Картинка вставлена из справки - просто для демонстрации, что такое стиль DRAW_ARROW :)
*** Оптимально делать в процентах от величины свечи, к примеру так:
свеча не менее 15пп, верхняя тень 15%, нижняя 45% - синяя стрелка,
свеча не менее 15пп, верхняя тень 45%, нижняя 15% - красная стрелка
Параметры вынести в настройки
Пока будут просто параметры, как заявлено в (#1) - поиск свечи у которой нет верхней тени и/или нижней тени. Добавлен фильтр: при этом свеча должна иметь минимально заданный размер:
Индикатор проверяет условия для предыдущего бара только в момент рождения нового бара. Внутри бара индикатор не работает. Также в настройки вынесен параметр - смешение стрелок по вертикале.
Скриншоты торговой платформы MetaTrader
MetaQuotes Software Corp., MetaTrader 5, Demo
Индикатор Сandle parameters
Сам индикатор:
//+------------------------------------------------------------------+ //| Сandle parameters.mq5 | //| Copyright © 2017, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2017, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "1.000" #property description "Индикатор поиска параметров свечи" #property description "Найденные свечи отмечаются символами из набора Wingdings" #property indicator_chart_window #property indicator_buffers 2 #property indicator_plots 2 //--- plot Arrows #property indicator_label1 "High" #property indicator_type1 DRAW_ARROW #property indicator_color1 clrBlue #property indicator_width1 1 #property indicator_label2 "Low" #property indicator_type2 DRAW_ARROW #property indicator_color2 clrRed #property indicator_width2 1 //--- input параметры sinput string __1__ = ""; // Параметры верха свечи input bool IsTopShadow = false; // false -> верхней тени нет input ushort top_shadow_code = 226; // Код символа верха свечи (32-255) sinput string __2__ = ""; // Параметр тела свечи input ushort min_size_candel = 15; // Минимальный размер тела свечи () sinput string __3__ = ""; // Параметры низа свечи input bool IsLowerShadow = false; // false -> нижней тени нет input ushort lower_shadow_code = 225; // Код символа верха свечи (32-255) sinput string __4__ = ""; // Параметр смещения input uchar vertical_shift = 15; // Смещение стрелок по вертикали (0-255) //--- индикаторные буфера для построения double BufferTop[]; double BufferLower[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping SetIndexBuffer(0,BufferTop,INDICATOR_DATA); SetIndexBuffer(1,BufferLower,INDICATOR_DATA); //--- зададим код символа для отрисовки в PLOT_ARROW PlotIndexSetInteger(0,PLOT_ARROW,top_shadow_code); PlotIndexSetInteger(1,PLOT_ARROW,lower_shadow_code); //--- зададим cмещение стрелок по вертикали в пикселях PlotIndexSetInteger(0,PLOT_ARROW_SHIFT,-(int)vertical_shift); PlotIndexSetInteger(1,PLOT_ARROW_SHIFT,(int)vertical_shift); //--- установим в качестве пустого значения 0 PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0); PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ 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[]) { static datetime prev_time=0; //--- работаем только в момент рождения нового бара, внутри бара не работаем if(prev_time==time[rates_total-1]) return(rates_total); //--- на новом баре запоминает время его рождения prev_time=time[rates_total-1]; //--- блок расчета значений индикатора int start=1; if(prev_calculated>0) start=prev_calculated; //--- цикл расчета for(int i=start;i<rates_total;i++) { //--- если предыдущая свеча имеет тело больше минимального if(MathAbs(open[i-1]-close[i-1])/Point()>min_size_candel) { if(high[i-1]==open[i-1] || high[i-1]==close[i-1]) BufferTop[i-1]=high[i-1]; if(low[i-1]==open[i-1] || low[i-1]==close[i-1]) BufferLower[i-1]=low[i-1]; } } //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+
Над другими параметрами свечи подумаю позже.
- www.mql5.com
Candle parameters version "1.001":
- теперь входные параметры (искать или не искать свечи без верхней или без нижней тени) обрабатываются
- дополнительно, в OnInit(), проверяется корректность входных параметров - если два параметра "отображать свечи без верхней/нижней тени" равны false, то индикатор останется на графике, но работать не будет и выдаст предупреждение (предупреждение будет во вкладке "Эксперты"):
Оба параметра "отображать свечи без верхней/нижней тени" равны false
Есть ли данный индикатор со встроенным алертом?
Нет, нету.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Не скрою, что идею этого индикатора была подсмотрена в ветке
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Напишу индикатор бесплатно
enduard, 2017.03.14 14:41
Добрый день.
Прошу помощи в создании индикатора. Нужен для тестов и проверки стратегии.
Суть индикатора заключается в том, что он должен распознавать тени свечей и только, по заданным параметрам.
При обнаружении данной тени на графике выделить ее и можно установить стрелку или точку.
Индикатор обрабатывает данные только предыдущей свечи.
В настройках задаем минимальное количество пипсов ( для фильтра ) и соответственно если тень получилась меньше заданного числа на предыдущей свече, то индикатор игнорирует ее,
если тень получилась равной или больше, то отмечает ее и ставит стрелку, если образовалось две тени равной или больше заданного числа (и с верху, и с низу ), то индикатор опять
игнорирует ее. Стрелки ставятся так - при появлении тени сверху свечи, стрелка устанавливается указывая на низ. При появлении тени с низу свечи, стрелка ставится указывая на верх.
Данные должны появляться сразу по закрытию свечи.
Возможно такое сделать?
Но здесь возникла мысль: "А достаточно ли таких параметров? Может нужды другие параметры?".
В общем начинаю ваять индикатор. На данный момент заявленный функционал поиска свечей по таким параметрам: