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

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Коллеги,
не выставляется 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);
}
}
В чём может быть причина?
Хотелось бы реализовать работу советника, как на скриншоте: