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

 
 Здравствуйте все! На форуме был индикатор
https://forum.mql4.com/ru/56236/page933,Подскажите пожалуйста, как открыть его в терминале?

#property  indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  Aqua
#property  indicator_width1  1
#property  indicator_color2  Red
#property  indicator_width2  1
#property  indicator_color3  Yellow
#property  indicator_width3  1

extern int       Fperiod=1;
extern int       Speriod=2;
extern int       Method=3;
extern int       PRICE_MODE=PRICE_WEIGHTED;

double   Buf0[];
double   Buf1[];                                
double   Buf2[];                                
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
   {
    SetIndexBuffer(0,Buf0);
    SetIndexBuffer(1,Buf1);
    SetIndexBuffer(2,Buf2);

    SetIndexStyle(0,DRAW_LINE);
    SetIndexStyle(1,DRAW_LINE);
    SetIndexStyle(2,DRAW_LINE);

    SetIndexEmptyValue(1,EMPTY_VALUE);   
    SetIndexEmptyValue(2,EMPTY_VALUE);   

    IndicatorShortName("Proba ");                
   
    SetIndexDrawBegin(0, 0);  
    SetIndexDrawBegin(1, 0);
    SetIndexDrawBegin(2, 0);

    return(0);
   }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
int start()
   {
    int i; 
    int limit;
    int counted_bars=IndicatorCounted();
    if(counted_bars<0) return(-1);
    if(counted_bars>0) counted_bars--;
    limit=Bars-counted_bars;
    for (i = limit;i>=0;i--)
        {  
         Buf0[i]=iMA(NULL,0,Fperiod,0,Method,PRICE_MODE,i)-iMA(NULL,0,Speriod,0,Method,PRICE_MODE,i);
         if(Buf0[i] > Buf0[i+1])
             {
              Buf1[i] = Buf0[i];
//              if(Buf0[i+1] > Buf0[i+2])
//                   Buf1[i+1] = Buf0[i+1];
//              else Buf2[i+1] = Buf0[i+1];
             }
         else
             {
              Buf2[i] = Buf0[i];
//              if(Buf0[i+1] < Buf0[i+2])
//                   Buf2[i+1] = Buf0[i+1];
//              else Buf1[i+1] = Buf0[i+1];
             }
        }              
    return(0);
   }

 

Здравствуйте! В эксперте, как одно из торговых условий, использую поворот ССI, однако почему то не получатся. Подскажите, пожалуйста, в чем ошибка?

 C_1=iCCI(NULL,0,C_period,PRICE_TYPICAL,0);

C_2=iCCI(NULL,0,C_period,PRICE_TYPICAL,1);

C_3=iCCI(NULL,0,C_period,PRICE_TYPICAL,2);


 if(C_1 > C_2 > C_3)Opn_B=true;

 if(C_1 < C_2 < C_3)Cls_B=true;  

 
Ratmirf:

Здравствуйте! В эксперте, как одно из торговых условий, использую поворот ССI, однако почему то не получатся. Подскажите, пожалуйста, в чем ошибка?

 C_1=iCCI(NULL,0,C_period,PRICE_TYPICAL,0);

C_2=iCCI(NULL,0,C_period,PRICE_TYPICAL,1);

C_3=iCCI(NULL,0,C_period,PRICE_TYPICAL,2);


 if(C_1 > C_2 > C_3)Opn_B=true;

 if(C_1 < C_2 < C_3)Cls_B=true;  

if (C_1 > C_2 && C_2 > C_3) Opn_B=true;

if (C_1 < C_2 && C_2 < C_3) Cls_B=true; 

 
paladin80:
if (C_1 > C_2 && C_2 > C_3) Opn_B=true;

if (C_1 < C_2 && C_2 < C_3) Cls_B=true; 

Огромное спасибо!
 

 Подскажите пожалуйста, что у меня здесь не так? Я хочу чтобы сделки закрывались в момент пересечения 70 сверху вниз (Buy), а 30 снизу вверх (Sell). Сделки почему то закрываются Buy гораздо ниже семидесяти, а Sell гораздо выше 30. RSI даже еще не успевает даже дойти до уровней 70 и  30. Спасибо!

R_1=iRSI(NULL,0,RSI_Period,PRICE_TYPICAL,0);

  R_2=iRSI(NULL,0,RSI_Period,PRICE_TYPICAL,1);

 if((R_1 < 70 && R_2 > 70)) Cls_B=true; 
  if((R_1 > 30 && R_2 < 30)) Cls_S=true;
 
Ratmirf:

 Подскажите пожалуйста, что у меня здесь не так? Я хочу чтобы сделки закрывались в момент пересечения 70 сверху вниз (Buy), а 30 снизу вверх (Sell). Сделки почему то закрываются Buy гораздо ниже семидесяти, а Sell гораздо выше 30. RSI даже еще не успевает даже дойти до уровней 70 и  30. Спасибо!

R_1=iRSI(NULL,0,RSI_Period,PRICE_TYPICAL,0);

  R_2=iRSI(NULL,0,RSI_Period,PRICE_TYPICAL,1);

 if((R_1 < 70 && R_2 > 70)) Cls_B=true; 
  if((R_1 > 30 && R_2 < 30)) Cls_S=true;

В предыдущем посте у вас было: if (C_1 < C_2 && C_2 < C_3) Cls_B=true; Теперь у вас та же переменная меняется при другом условии: if((R_1 < 70 && R_2 > 70)) Cls_B=true; Проверьте.

Попробуйте такой код:

double C_1=iCCI(NULL,PERIOD_CURRENT,C_period,PRICE_TYPICAL,0);
double C_2=iCCI(NULL,PERIOD_CURRENT,C_period,PRICE_TYPICAL,1);
double C_3=iCCI(NULL,PERIOD_CURRENT,C_period,PRICE_TYPICAL,2);

bool Opn_B=false, Opn_S=false;

if(C_1>C_2 && C_2>C_3) Opn_B=true;
if(C_1<C_2 && C_2<C_3) Opn_S=true;

//---
double R_1=iRSI(NULL,PERIOD_CURRENT,RSI_Period,PRICE_TYPICAL,0);
double R_2=iRSI(NULL,PERIOD_CURRENT,RSI_Period,PRICE_TYPICAL,1);

bool Cls_B=false, Cls_S=false;

if(R_1>70.0 && R_2<70.0) Cls_B=true; 
if(R_1<30.0 && R_2>30.0) Cls_S=true;
 

Всем доброго здравия!!!!

Уверен что уже неоднократно делалось подобное, но может быть ктонибудь подскажет формулу размера лота в зависимости от средств???

Типа если больше 2000 то лот 0.02, если больше 3000 то 0.03 и т.д. 

 
nikelodeon:

Всем доброго здравия!!!!

Уверен что уже неоднократно делалось подобное, но может быть ктонибудь подскажет формулу размера лота в зависимости от средств???

Типа если больше 2000 то лот 0.02, если больше 3000 то 0.03 и т.д. 

Формулы разные есть для расчетов
 
paladin80:

В предыдущем посте у вас было: if (C_1 < C_2 && C_2 < C_3) Cls_B=true; Теперь у вас та же переменная меняется при другом условии: if((R_1 < 70 && R_2 > 70)) Cls_B=true; Проверьте.

Попробуйте такой код:


Большое спасибо за помощь! Я сейчас разбираюсь как работает именно RSI советник. Так вот что интересно, на представленной ниже схеме, сделки открываются точно там где надо, а вот закрываются совершенно не там (я хочу чтобы сделки закрывались в момент пересечения 70 сверху вниз (Buy), а 30 снизу вверх (Sell). Рекомендованная Вами схема закрытия тоже не работает. Поставил период RSI на 2 и смотрю по М1. Где неточность, не могу понять. 

R_1=iRSI(NULL,PERIOD_CURRENT,RSI_Period,PRICE_TYPICAL,0);

R_2=iRSI(NULL,PERIOD_CURRENT,RSI_Period,PRICE_TYPICAL,1);


if(R_1>60 && R_2<60) Opn_B=true; 

if(R_1<40 && R_2>40)  Opn_S=true;


if(R_1<70.0 && R_2>70.0) Cls_B=true; 

if(R_1<30.0 && R_2<30.0) Cls_S=true;

 
Ratmirf:

Большое спасибо за помощь! Я сейчас разбираюсь как работает именно RSI советник. Так вот что интересно, на представленной ниже схеме, сделки открываются точно там где надо, а вот закрываются совершенно не там (я хочу чтобы сделки закрывались в момент пересечения 70 сверху вниз (Buy), а 30 снизу вверх (Sell). Рекомендованная Вами схема закрытия тоже не работает. Поставил период RSI на 2 и смотрю по М1. Где неточность, не могу понять. 

R_1=iRSI(NULL,PERIOD_CURRENT,RSI_Period,PRICE_TYPICAL,0);

R_2=iRSI(NULL,PERIOD_CURRENT,RSI_Period,PRICE_TYPICAL,1);


if(R_1>60 && R_2<60) Opn_B=true; 

if(R_1<40 && R_2>40)  Opn_S=true;


if(R_1<70.0 && R_2>70.0) Cls_B=true; 

if(R_1<30.0 && R_2<30.0) Cls_S=true;

Уверены что последнее условие правильно написано
Причина обращения: