Настало время, господа, протестировать, уже не первый попавшийся индикатор, но, один из самых популярных. В поле зрения попадает индикатор из маркета PipFinite Trend PRO
Исследуем индикатор в тестере стратегий.
Как и случае с предыдущим индикатором, данный не содержит уровня StopLoss. Автор предлагает закрывать сделки по обратному сигналу. А как же на случай зависания ПО, ПК, сервера? Кто в этом случае закроет сделки и защитит депо от провала? Еще один момент — по уровню SL хорошо считать объем торговли, определив максимальный риск на сделку в процентах от остатка средств на аккаунте.
Итак, нам нужен уровень SL. Рассмотрев скриншот выше, определяем, что SL должен у нас выставляться в обратную сторону от трендовой линии на расстояние Tp2. И, значит, коли наши руки — не для скуки, пишем собственный индикатор, который получит данные от базового и дополнит их уровнем SL. Ниже исходный код нашего простого индикатора
#property copyright "Copyright 2018, SergDeev" #property link "https://fx-prog.ru" #property version "1.00" #property strict #property indicator_chart_window #property indicator_buffers 7 #property indicator_plots 7 #property indicator_label1 "Buy" #property indicator_type1 DRAW_ARROW #property indicator_color1 clrAqua #property indicator_style1 STYLE_SOLID #property indicator_width1 1 #property indicator_label2 "Sell" #property indicator_type2 DRAW_ARROW #property indicator_color2 clrRed #property indicator_style2 STYLE_SOLID #property indicator_width2 1 #property indicator_label3 "Tp1 Price" #property indicator_type3 DRAW_ARROW #property indicator_color3 clrGold #property indicator_style3 STYLE_SOLID #property indicator_width3 1 #property indicator_label4 "Tp2 Price" #property indicator_type4 DRAW_ARROW #property indicator_color4 clrGold #property indicator_style4 STYLE_SOLID #property indicator_width4 1 #property indicator_label5 "SL" #property indicator_type5 DRAW_ARROW #property indicator_color5 clrGold #property indicator_style5 STYLE_SOLID #property indicator_width5 1 #property indicator_label6 "Tp1" #property indicator_type6 DRAW_ARROW #property indicator_color6 clrGold #property indicator_style6 STYLE_SOLID #property indicator_width6 1 #property indicator_label7 "Tp2" #property indicator_type7 DRAW_ARROW #property indicator_color7 clrGold #property indicator_style7 STYLE_SOLID #property indicator_width7 1 double BuyBuffer[]; double SellBuffer[]; double Tp1_PriceBuffer[]; double Tp2_PriceBuffer[]; double SLBuffer[]; double Tp1Buffer[]; double Tp2Buffer[]; int OnInit() { SetIndexBuffer(0,BuyBuffer); SetIndexBuffer(1,SellBuffer); SetIndexBuffer(2,Tp1_PriceBuffer); SetIndexBuffer(3,Tp2_PriceBuffer); SetIndexBuffer(4,SLBuffer); SetIndexBuffer(5,Tp1Buffer); SetIndexBuffer(6,Tp2Buffer); SetIndexArrow(0,241); SetIndexArrow(1,242); SetIndexArrow(2,252); SetIndexArrow(3,252); SetIndexArrow(4,251); SetIndexArrow(5,254); SetIndexArrow(6,254); 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[]) { string sx="\\Market\\PipFinite Trend PRO.ex4"; double x; if (iCustom(NULL,0,sx,8,1) != 0) { // buy if (BuyBuffer[1]==EMPTY_VALUE) BuyBuffer[1]=Ask; Tp1_PriceBuffer[1]=iCustom(NULL,0,sx,12,1); Tp2_PriceBuffer[1]=iCustom(NULL,0,sx,13,1); x = iCustom(NULL,0,sx,10,1); SLBuffer[1] = x - (Tp1_PriceBuffer[1]-x); } if (iCustom(NULL,0,sx,9,1) != 0) { // sell if (SellBuffer[1]==EMPTY_VALUE) SellBuffer[1]=Bid; Tp1_PriceBuffer[1]=iCustom(NULL,0,sx,12,1); Tp2_PriceBuffer[1]=iCustom(NULL,0,sx,13,1); x = iCustom(NULL,0,sx,11,1); SLBuffer[1] = x + (x-Tp1_PriceBuffer[1]); } x = iCustom(NULL,0,sx,16,1); if (x != 0) Tp1Buffer[1]=x; // Tp1 x = iCustom(NULL,0,sx,17,1); if (x != 0) Tp2Buffer[1]=x; // Tp2 return(rates_total); }
И скриншот того, что делает наш новый индикатор.
Далее для теста используем наш универсальный советник Universal EA и получаем результат на видео ниже.