포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 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 );
   }

 

안녕하세요! Expert Advisor에서는 거래 조건 중 하나로 CCI 로테이션을 사용하고 있는데 어떤 이유로 작동하지 않습니다. 오류가 무엇인지 알려주세요.

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=참;

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

 
Ratmirf :

안녕하세요! Expert Advisor에서는 거래 조건 중 하나로 CCI 로테이션을 사용하고 있는데 어떤 이유로 작동하지 않습니다. 오류가 무엇인지 알려주세요.

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=참;

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

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을 위에서 아래로(매수), 30을 아래에서 위로(매도) 교차하는 순간 거래가 종료되기를 원합니다. 어떤 이유에서인지 Buy 거래는 70보다 훨씬 낮고 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=참;
if((R_1 > 30 && R_2 < 30)) Cls_S=true;
 
Ratmirf :

여기에 무엇이 잘못되었는지 알려주세요. 70을 위에서 아래로(매수), 30을 아래에서 위로(매도) 교차하는 순간에 거래가 종료되기를 원합니다. 어떤 이유에서인지 Buy 거래는 70보다 훨씬 낮고 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=참;
if((R_1 > 30 && R_2 < 30)) Cls_S=참;

이전 게시물에서 다음을 수행했습니다. 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 Advisor가 어떻게 작동하는지 이해했습니다. 그래서 흥미로운 점은 아래 다이어그램에서 거래가 필요한 위치에서 정확히 열리지만 잘못된 위치에서 완전히 닫힙니다( 거래가 위에서 아래로 70을 교차하는 순간(구매). 아래에서 위로 30(매도). 추천한 방식도 닫히지 않습니다.RSI 기간을 2로 설정하고 M1을 봅니다.어디가 부정확한지 알 수 없습니다.

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=참;

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

 
Ratmirf :

당신의 도움을 주셔서 대단히 감사합니다! 이제 RSI Advisor가 어떻게 작동하는지 이해했습니다. 그래서 흥미로운 점은 아래 다이어그램에서 거래가 필요한 위치에서 정확히 열리지만 잘못된 위치에서 완전히 닫힙니다( 거래가 위에서 아래로 70을 교차하는 순간(구매). 아래에서 위로 30(매도). 추천한 방식도 닫히지 않습니다.RSI 기간을 2로 설정하고 M1을 봅니다.어디가 부정확한지 알 수 없습니다.

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=참;

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

마지막 조건이 올바르게 작성되었는지 확인하십시오.