Настало время, господа, протестировать, уже не первый попавшийся индикатор, но, один из самых популярных. В поле зрения попадает индикатор из маркета 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 и получаем результат на видео ниже.

12 мая, 2018
Sergey 

Опубликовано в рубрике
Теги: