Советники: iCCI iTRIX Kaleidoscope Simple

 

iCCI iTRIX Kaleidoscope Simple:

Стратегия на основе двух пользовательских индикаторов: 'CCI Extremum Detection' и 'TRIX Color N Bars'. Сигналы можно компоновать.

iCCI iTRIX Kaleidoscope Simple

Автор: Vladimir Karputov

 
Здравствуйте Владимир,
Я хочу применить к этому советнику «фильтрацию сигналов» с помощью скользящей средней или MACD.
Однако сигналы могут формироваться сложными и разными способами из-за параметров калейдоскопа. Итак, как правило, где я должен располагать индикатор фильтра?
 
Edviao #:
Здравствуйте Владимир,
Я хочу применить к этому советнику «фильтрацию сигналов» с помощью скользящей средней или MACD.
Однако сигналы могут формироваться сложными и разными способами из-за параметров калейдоскопа. Итак, как правило, где я должен располагать индикатор фильтра?

Из описания:

Главный нюанс - сигналы на BUY и SELL от обоих индикаторов можно перемешивать как в калейдоскопе. Например CCI может давать два сигнала BUY ('Extremum '-100'' или 'Extremum '+100''), а TRIX также может давать два сигнала ('Trend UP' или 'Trend DOWN'). Таким образом для сигнала BUY можем иметь четыре сигнала. Аналогично и для SELL

Итак для BUY может быть четыре вариации и для SELL также может быть четыре вариации.


Сигналы формируются в SearchTradingSignals:

//+------------------------------------------------------------------+
//| Search trading signals                                           |
//+------------------------------------------------------------------+
bool SearchTradingSignals(void)
  {
   double cci_extremum[],trix_colors[];
   ArraySetAsSeries(cci_extremum,true);
   ArraySetAsSeries(trix_colors,true);
   int start_pos=0,count=6;
   if(!iGetArray(handle_iCustom_CCI,1,start_pos,count,cci_extremum) || !iGetArray(handle_iCustom_TRIX,1,start_pos,count,trix_colors))
      return(false);
   int size_need_position=ArraySize(SPosition);
   if(size_need_position>0)
      return(true);
   bool cci_buy=((InpBuyCCI==minus_100 && cci_extremum[1]==-100) || (InpBuyCCI==plus_100 && cci_extremum[1]==100));
   bool cci_sell=((InpSellCCI==minus_100 && cci_extremum[1]==-100) || (InpSellCCI==plus_100 && cci_extremum[1]==100));
   bool trix_buy=((InpBuyTRIX==trend_up && trix_colors[1]==1.0) || (InpBuyTRIX==trend_down && trix_colors[1]==2.0));
   bool trix_sell=((InpSellTRIX==trend_up && trix_colors[1]==1.0) || (InpSellTRIX==trend_down && trix_colors[1]==2.0));
//--- BUY Signal

отдельно рассчитываются сигналы для BUY (cci_buy и trix_buy) и для SELL (cci_sell и trix_sell). Если Вы хотите применить фильтры, то фильтры нужно вставлять после расчёта сигналов.

 
Vladimir Karputov #:

Из описания:

Главный нюанс - сигналы на BUY и SELL от обоих индикаторов можно перемешивать как в калейдоскопе. Например CCI может давать два сигнала BUY ('Extremum '-100'' или 'Extremum '+100''), а TRIX также может давать два сигнала ('Trend UP' или 'Trend DOWN'). Таким образом для сигнала BUY можем иметь четыре сигнала. Аналогично и для SELL

Итак для BUY может быть четыре вариации и для SELL также может быть четыре вариации.


Сигналы формируются в SearchTradingSignals:

отдельно рассчитываются сигналы для BUY (cci_buy и trix_buy) и для SELL (cci_sell и trix_sell). Если Вы хотите применить фильтры, то фильтры нужно вставлять после расчёта сигналов.

Спасибо Владимиру за очень ценную информацию!

 
Edviao #:

Спасибо Владимиру за очень ценную информацию!

Получилось ли у Вас добавить фильтры?

 
Vladimir Karputov #:

Получилось ли у Вас добавить фильтры?

Здравствуйте Владимир,
К сожалению нет. Потому что, насколько я понимаю, этот процесс выходит за рамки моих ограниченных возможностей кода.


Примечание;
Владимир, у вас есть действующий аккаунт на "***" ?

 
Edviao #:

Здравствуйте Владимир,
К сожалению нет. Потому что, насколько я понимаю, этот процесс выходит за рамки моих ограниченных возможностей кода.

Позвольте мне создать эти фильтры? От Вас нужны правила для фильтров.

Edviao #:


Примечание;
Владимир, у вас есть действующий аккаунт на "***" ?

Такие вопросы нужно задавать в личных сообщениях

 
Vladimir Karputov #:

Позвольте мне создать эти фильтры? От Вас нужны правила для фильтров.

Такие вопросы нужно задавать в личных сообщениях

Вчера я отправил вам личное сообщение, но не получил ни положительного, ни отрицательного ответа.
Я не совсем понимаю, что вы подразумеваете под «разрешением» создавать фильтры, но это предложение меня взволновало!


Возвращаясь к теме,
В качестве правил фильтрации я задумал следующие нюансы;

Пользовательский индикатор "MACD" ;
https://www.mql5.com/en/code/22769


Индикатор MACD будет фильтровать по двум различным нюансам;

A) 0 - ZERO_LINE, 1 - SIGNAL_LINE 
B) "MACD_number_bars  = 3;  // Trend: number of bars"   
«По минимальному номеру трендового бара». (Ордера советника не будут разрешены до тех пор, пока не будет достигнута "минимальная сумма бара", указанная в параметре.)

В этом случае группа параметров MACD будет выглядеть так: (как оценка)

"--- Normalized smoothed MACD ---"

MACD_Filter             = false/true  // Use MACD
MACD_Filter_Method =                //Zero_Line / Signal_Line
MACD_number_bars  = 3;            // Trend: number of bars
MACD_FastPeriod      = 12;           // MACD fast period
MACD_SlowPeriod     = 26;           // MACD slow period
MACD_MacdSignal     = 9;            // Signal period
MACD_Price              = PRICE_CLOSE;  // Price
MACD_SmoothPeriod = 5;            // Smoothing period
MACD_NormPeriod    = 20;           // Normalization period







Я работал над блоком кода ниже и пытался импортировать его в советник «iCCI iTRIX Kaleidoscope Simple», но потерпел неудачу, и я знаю, что много кода отсутствует.
В результате я обратился к вам за помощью и поддержкой.

 bool CheckMacd(int side)
{
   if (!MACD_Use_)
      return true;
   
   const int From = InpCurrentBar;
   const int To = From + fmax(1, MACD_number_bars_);
   
   for(int i=From; i<To; ++i)
      if(side*iMACDGet(2, i) < 0)
         return false;
  
   return true;
}
Normalized smoothed MACD
Normalized smoothed MACD
  • www.mql5.com
Normalized smoothed MACD
 
Поясните пожалуйста (в виде картинки) что такое 'Trend: number of bars'?
 
Vladimir Karputov #:
Поясните пожалуйста (в виде картинки) что такое 'Trend: number of bars'?

Если,

Если «MACD = "Тrend: number of bars= 7»
В этом сценарии заказы EA будут разрешены только тогда, когда появится новый бар (8-й бар) после закрытия 7-го бара в том же направлении / цвете.



 
Edviao #:

Если,

Если «MACD = "Тrend: number of bars= 7»
В этом сценарии заказы EA будут разрешены только тогда, когда появится новый бар (8-й бар) после закрытия 7-го бара в том же направлении / цвете.



Вы хотите эти фильтры добавить в 'iCCI iTRIX Kaleidoscope Simple' или Вы хотите сделать новый советник на базе индикатора Normalized smoothed MACD по образу и подобию как у 'iCCI iTRIX Kaleidoscope Simple'?

Normalized smoothed MACD
Normalized smoothed MACD
  • www.mql5.com
Normalized smoothed MACD