Работа по фракталам

 

Коллеги,

не выставляется ST за фрактал:

-------------------

TrPr = LowerFractal();

StLo=UpperFractal();

OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),slippage,StLo,TrPr,"-",magic,0,Red )

-------------------

double UpperFractal()
   {
   for(int i=0;i<iBars(Symbol(),15);i++)
      {
      double Fractal=iFractals(Symbol(),15,MODE_UPPER,i);
      if(Fractal!=0.0) return(Fractal);
      }

   }

double LowerFractal()
   {
   for(int i=0;i<iBars(Symbol(),15);i++)
      {
      double Fractal=iFractals(Symbol(),15,MODE_LOWER,i);
      if(Fractal!=0.0) return(Fractal);
      }
   }


В чём может быть причина?

Хотелось бы реализовать работу советника, как на скриншоте:

fractal


 
Sergey Lapshov:

Коллеги,

не выставляется ST за фрактал:

-------------------

TrPr = LowerFractal();

StLo=UpperFractal();

OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),slippage,StLo,TrPr,"-",magic,0,Red )

-------------------

double UpperFractal()
   {
   for(int i=0;i<iBars(Symbol(),15);i++)
      {
      double Fractal=iFractals(Symbol(),15,MODE_UPPER,i);
      if(Fractal!=0.0) return(Fractal);
      }

   }

double LowerFractal()
   {
   for(int i=0;i<iBars(Symbol(),15);i++)
      {
      double Fractal=iFractals(Symbol(),15,MODE_LOWER,i);
      if(Fractal!=0.0) return(Fractal);
      }
   }


В чём может быть причина?

Хотелось бы реализовать работу советника, как на скриншоте:


Вот так скрипт правильно определяет ближайший верхний фрактал. Цену открытия ордера нормализуете, а почему стоплосс не нормализуете?

//+------------------------------------------------------------------+
//|                                                       TestFr.mq4 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   double StLo=UpperFractal();Alert("UpperFractal=",UpperFractal());
  }
//+------------------------------------------------------------------+
double UpperFractal()
   {
     double Fractal=0;
     for(int i=0;i<iBars(Symbol(),15);i++)
      {
       Fractal=iFractals(Symbol(),15,MODE_UPPER,i); 
       if(Fractal!=0.0) {break;}
      } 
     return(Fractal); 
   }
 
khorosh:

Вот так скрипт правильно определяет ближайший верхний фрактал. Цену открытия ордера нормализуете, а почему стоплосс не нормализуете?

спасибо

помогло