PipFinite Trend PRO

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

Исследуем индикатор в тестере стратегий.

pipfine

pipfine

Как и случае с предыдущим индикатором, данный не содержит уровня 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);
}

И скриншот того, что делает наш новый индикатор.

pipfine_sl

Pipfine и SL

Далее для теста используем наш универсальный советник Universal EA и получаем результат на видео ниже.

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий

Вы должны быть авторизованы, чтобы разместить комментарий.