Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 666

[Удален]  

Добрый день, профи, пдскажите пожалуйста, что я неправильно делаю. Я хочу выставить стоплос за лоу пред. свечи на определенное кол-во пунктов

   double LOW = iLow(NULL,0,1);  

if(Close[1]<Open[1])
   {

     send=OrderSend(Symbol(), OP_BUY, Lot,Ask,10,LOW-delta*Point,0,NULL,Magic,0,Green);
   }
 
nogard37:

Добрый день, профи, пдскажите пожалуйста, что я неправильно делаю. Я хочу выставить стоплос за лоу пред. свечи на определенное кол-во пунктов

 


А брокер позволяет задавать СЛ при открытии? Также нормализовать вычисляемое значение СЛ нужно, чтобы уж совсем правильно было.
[Удален]  
evillive:

А брокер позволяет задавать СЛ при открытии? Также нормализовать вычисляемое значение СЛ нужно, чтобы уж совсем правильно было.
Да, стоп ставится, только сразу под лоу. А значение я нормализовал - всеравно на тесте ставится под лоу. Вобщем он всегда ставится под лоу!!! а дельту не считает
 
nogard37:
Да, стоп ставится, только сразу под лоу. А значение я нормализовал - всеравно на тесте ставится под лоу. Вобщем он всегда ставится под лоу!!! а дельту не считает


чему равна дельта и разрядность котировок?
[Удален]  
evillive:

чему равна дельта и разрядность котировок?
delta=35, А разрядность - пятизнак если я правильно вас понял
 
Ну так это и есть практически под Low, всё правильно.
[Удален]  
evillive:
 Ну так это и есть практически под Low, всё правильно.Всеравно закрывается под лоу

extern double delta = 350;
int start()
{
   double LOW = iLow(NULL,0,1);  
if(Close[1]<Open[1])
   { 
     send=OrderSend(Symbol(), OP_BUY, Lot,Ask,10,NormalizeDouble(LOW-delta*Point,Digits),0,NULL,Magic,0,Green);
   }
Всеравно под лоу закрывается и делту не считает
[Удален]  
Ну и есть вот такая ошибка, експерт работает но все же - Empty controlled statement found
 
nogard37:

Не знаю поможет ли?

Но, попробуйте расчитывать "LOW-delta;" отдельной строкой с получением результата в отдельную переменную и потом его передавать в "OrderSend"

Примерно так:

extern double delta = 350;
int start()
{
   double stop;
   double LOW = iLow(NULL,0,1);  
if(Close[1]<Open[1])
   { 
    stop=LOW-delta;
    send=OrderSend(Symbol(), OP_BUY, Lot,Ask,10,NormalizeDouble(stop*Point,Digits),0,NULL,Magic,0,Green);
   }
 
Forexman77:

Не знаю поможет ли?

Но, попробуйте расчитывать "LOW-delta;" отдельной строкой с получением результата в отдельную переменную и потом его передавать в "OrderSend"

Примерно так:

 


Ты так здорово придумал...

extern double delta = 350;
int start()
{
   double stop;
   double LOW = iLow(NULL,0,1);  

LOW в этом случае получается (для EURUSD, примерно) 1.3525

if(Close[1]<Open[1])
   { 
    stop=LOW-delta;
    send=OrderSend(Symbol(), OP_BUY, Lot,Ask,10,NormalizeDouble(stop*Point,Digits),0,NULL,Magic,0,Green);
   }

и потом из 1.3525 вычитаешь 350... как ты думаешь сколько получится и можно-ли такое значение поставить стопом??? Даже если нормализовать то что получилось.

Хотя, я не проверял. Может и не даст ошибку, просто поставит стоп ниже нуля???