значение iSar

 

Подскажите, как сделать, чтобы выводилось значение Volume iSar. Что-бы в дальнейшем испльзовать его в качестве Stop Loss.


Спасибо!

 
iSar дает такие данные которые ведут себя как ненормальные - прыгают, не сранвиваются, не совпадают с графикой.
с ними невозможно работать пока не нормализуешь
поэтому применяем NormalizeDouble( iSar(),Digits);
 
Кто-нибудь поможет из Volume iSar сделать Stop Loss?
 

В одной из моих конструкций, (эксперт работает по Ценам Открытия) неплохо, бывает, работает вот такой блок закрытия позиций :

Надеюсь, это примерно то, что вы хотите. Может быть, есть резон также использовать рекомендацию от Korey в сообщ. выше.....

Закрытие позиции по iSAR отображается на графике зелёным треугольничиком

Во внешние параметры вставляем

extern bool     AutoClose = true;//Выключатель автозакрытия позиций 
extern double    Maximum_Parabollic    =0.2;
extern double     STEP_Parabollic =0.02;

А потом в функцию int start() -

//ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ блок ЗАКРЫТИЯ ПОЗИЦИЙ ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ
if (AutoClose) {  //если выключатль включен
//----------------------------------------------------------------------
// for (int v=0; v<OrdersTotal(); v++)               { 
  for ( int v = OrdersTotal() - 1; v >= 0; v -- )             {       
      if (OrderSelect(v, SELECT_BY_POS, MODE_TRADES))            {           
        if (OrderSymbol()==Symbol())                                { 
//-----------------------------------------------------------------------        
     if ((OrderType() == OP_BUY) && (OrderMagicNumber()==Magic)) { 
            if  (  
             (iSAR(NULL,0,STEP_Parabollic, Maximum_Parabollic  ,1)>Close[1]) 
       && (iSAR(NULL,0,STEP_Parabollic, Maximum_Parabollic ,2)<Close[2])
        )  
            {
        OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);//закрываем позицию
            prevtime = Time[1];      // return(0); // выходим         
              }  }  
//-------------------------------------------------------------------------
         if ((OrderType() == OP_SELL)  && (OrderMagicNumber()==Magic)) {
         if (
           (iSAR(NULL,0,STEP_Parabollic,Maximum_Parabollic ,1)<Close[1]) 
       && (iSAR(NULL,0,STEP_Parabollic,Maximum_Parabollic,2)>Close[2])
          )
           {
        OrderClose(OrderTicket(),OrderLots(),Ask,3,Green);//закрываем позицию
             prevtime = Time[1];     // return(0); // выходим
              }  }  
//-------------------------------------------------------                       
   }  // Symbol()  
  } // select
 } //total
}//if (AutoClose) {
//ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ Конец блока Закрытия позиций ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ
 

И ещё. Вот в этом адресе вы можете посмотреть про закрытие позиций по сигналу индикатора -

'Закрытие позиций. По сигналу индикатора.'

narvere, Исходя из своего скромного опыта, (по секрету вам скажу-) закрытие позиций по iSAR иной раз увеличивает конечный профит примерно на 25 %, если сигнал закрытия брать со старшего тф !

Т.е. если вы работаете на н1, то попробуйте закрываться по

iSAR(NULL,240,STEP_Parabollic, Maximum_Parabollic,....)

 

Help me!


Привет всем!


Попытался я сделать по вашим инструкциям. За что вам спасибо. Вот что у меня получилось. Для начала хочу выводить значение SAR на экран. Пока машина выдаёт ноль (0) при каждом тике. Как подправить?


//--------------------------------------------------------------------
// Create.mq4
//
extern double Maximum_Parabollic =0.2;
extern double STEP_Parabollic =0.03;
double iSar;
//--------------------------------------------------------------------

int init()
{
double iSar;
}
//--------------------------------------------------------------------
int start() // Спец. ф-ия start()
{
NormalizeDouble ((iSAR(NULL,0,STEP_Parabollic, Maximum_Parabollic,0))
&& (iSAR(NULL,0,STEP_Parabollic, Maximum_Parabollic,1)),Digits);

Alert(iSar);
}
//--------------------------------------------------------------------
int deinit() // Спец. ф-ия deinit()
{

}
//--------------------------------------------------------------------

 

Я не знаю, как вам это подправить. Похоже, вы не определились ещё, что вы сами хотите изготовить.

Советник или индикатор? То, что вы написали, не совсем отвечает (мягко говоря) положениям MQL

Но сразу отмечу, - вовсе не нужно так задавать выражение double iSar во внешн. параметрах и в функции int init()
;

Если в советнике вам надо вывести на экран текущее значение iSar; то в функцию int start() поставьте

int start() // Спец. ф-ия start()
{
//--------------------------------------------------------------------
double SAR = iSAR(NULL,0,STEP_Parabollic, Maximum_Parabollic,0);
Comment("_SAR=",SAR );
И в левом верхнем углу графика вы найдёте искомое...
 
Вообще моя цель - это советник. А пока с новой функцией пытаюсь разобраться.
 
rid писал (а) >>

Я не знаю, как вам это подправить. Похоже, вы не определились ещё, что вы сами хотите изготовить.

Советник или индикатор? То, что вы написали, не совсем отвечает (мягко говоря) положениям MQL

Но сразу отмечу, - вовсе не нужно так задавать выражение double iSar во внешн. параметрах и в функции int init()
;

Если в советнике вам надо вывести на экран текущее значение iSar; то в функцию int start() поставьте

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

Спасибо rid, Вы очень помогли. Индикатор заработал. Теперь попробую из него советника сделать.

Причина обращения: