Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1004

 
Bonjour à tous ! Il y avait un indicateur sur le forum
https://forum.mql4.com/ru/56236/page933,Подскажите s'il vous plaît comment l'ouvrir dans le terminal ?

#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);
   }

 

Bonjour, Dans Expert Advisor, comme l'une des conditions de trading, j'utilise le pivot CCI, mais pour une raison quelconque, il ne fonctionne pas. Pourriez-vous expliquer quelle est l'erreur ?

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) ;


si(C_1 > C_2 > C_3)Opn_B=vrai ;

si(C_1 < C_2 < C_3)Cls_B=vrai ;

 
Ratmirf:

Bonjour, Dans Expert Advisor, comme l'une des conditions de trading, j'utilise le pivot CCI, mais pour une raison quelconque, il ne fonctionne pas. Pourriez-vous expliquer quelle est l'erreur ?

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) ;


si(C_1 > C_2 > C_3)Opn_B=vrai ;

si(C_1 < C_2 < C_3)Cls_B=vrai ;

si (C_1 > C_2 && C_2 > C_3) Opn_B=vrai ;

si(C_1 < C_2 && C_2 < C_3)Cls_B=vrai ;

 
paladin80:
si (C_1 > C_2 && C_2 > C_3) Opn_B=vrai ;

si (C_1 < C_2 && C_2 < C_3) Cls_B=vrai ;

Merci beaucoup !
 

Pouvez-vous me dire ce qui ne va pas ici ? Je veux que les transactions soient fermées lorsqu'elles franchissent 70 à la baisse (Achat) et 30 à la hausse (Vente). Pour une raison quelconque, les transactions se concluent par des achats bien en dessous de 70 et des ventes bien au-dessus de 30. Le RSI n'a même pas encore atteint 70 et 30. Merci !

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

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

si((R_1 < 70 && R_2 > 70)) Cls_B=vrai ;
si((R_1 > 30 && R_2 < 30)) Cls_S=vrai ;
 
Ratmirf:

Pouvez-vous me dire ce qui ne va pas ici ? Je veux que les transactions soient fermées lorsqu'elles franchissent 70 à la baisse (Achat) et 30 à la hausse (Vente). Pour une raison quelconque, les transactions se concluent par des achats bien en dessous de 70 et des ventes bien au-dessus de 30. Le RSI n'a même pas encore atteint 70 et 30. Merci !

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

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

si((R_1 < 70 && R_2 > 70)) Cls_B=vrai ;
si((R_1 > 30 && R_2 < 30)) Cls_S=vrai ;

Dans le post précédent, vous aviez : if(C_1 < C_2 && C_2 < C_3) Cls_B=true; Maintenant vous avez la même variable qui change sous une condition différente : if((R_1 < 70 && R_2 > 70)) Cls_B=true; Vérification.

Essayez ce code :

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;
 

Bonjour à tous !!!!

Je suis sûr que cela a été fait à plusieurs reprises comme cela, mais peut-être que quelqu'un suggérera une formule pour la taille du lot, en fonction des fonds ???

Par exemple, si plus de 2000, le lot est de 0,02, si plus de 3000, de 0,03, etc.

 
nikelodeon:

Bonjour à tous !!!!

Je suis sûr que cela a été fait à plusieurs reprises comme ça, mais peut-être que quelqu'un suggérera une formule pour la taille du lot, en fonction des fonds ???

Par exemple, si plus de 2000, le lot est de 0,02, si plus de 3000, de 0,03, etc.

Il existe différentes formules de calcul
 
paladin80:

Dans le message précédent, vous aviez : if (C_1 < C_2 && C_2 < C_3) Cls_B=true; Maintenant vous avez la même variable qui change sous une condition différente : if((R_1 < 70 && R_2 > 70)) Cls_B=true; Vérifiez-le.

Essayez ce code :


Merci beaucoup pour votre aide ! J'essaie de comprendre comment fonctionne exactement l'EA RSI. Ce qui est intéressant, c'est que dans le graphique suivant, les transactions sont ouvertes exactement au bon endroit, mais elles sont fermées complètement au mauvais endroit (je veux que les transactions soient fermées à 70 croisements de haut en bas (Achat) et à 30 croisements de bas en haut (Vente)). Le schéma de fermeture que vous recommandez ne fonctionne pas non plus. J'ai réglé la période du RSI sur 2 et je regarde M1. Où est l'imprécision, je n'arrive pas à la comprendre.

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

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


si(R_1>60 && R_2<60) Opn_B=vrai ;

si(R_1<40 && R_2>40) Opn__S=vrai ;


si(R_1<70.0 && R_2>70.0) Cls_B=vrai ;

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

 
Ratmirf:

Merci beaucoup pour votre aide ! Je suis en train de comprendre le fonctionnement de l'EA RSI. Ce qui est intéressant, c'est que sur le graphique ci-dessous, les transactions s'ouvrent exactement là où elles devraient, mais elles se ferment complètement à l'envers (je veux que les transactions se ferment à 70 croisement du haut vers le bas (Achat), et à 30 croisement du bas vers le haut (Vente). Le schéma de fermeture que vous recommandez ne fonctionne pas non plus. J'ai réglé la période du RSI sur 2 et je regarde M1. Où est l'imprécision, je n'arrive pas à la comprendre.

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

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


si(R_1>60 && R_2<60) Opn_B=vrai ;

si(R_1<40 && R_2>40) Opn__S=vrai ;


si(R_1<70.0 && R_2>70.0) Cls_B=vrai ;

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

Sommes-nous sûrs que la dernière condition est correctement écrite ?