Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 1004

 
Ciao a tutti! C'era un indicatore sul forum
https://forum.mql4.com/ru/56236/page933,Подскажите per favore come aprirlo nel terminale?

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

 

In Expert Advisor, come una delle condizioni di trading, uso il pivot CCI, ma per qualche motivo non funziona. Potresti spiegare qual è l'errore?

C_1=iCCI(NULL,0,C_periodo,PREZZO_TIPICO,0);

C_2=iCCI(NULL,0,C_periodo,PREZZO_TIPICO,1);

C_3=iCCI(NULL,0,C_periodo,PREZZO_TIPICO,2);


se(C_1 > C_2 > C_3)Opn_B=vero;

se(C_1 < C_2 < C_3)Cls_B=vero;

 
Ratmirf:

In Expert Advisor, come una delle condizioni di trading, uso il pivot CCI, ma per qualche motivo non funziona. Potresti spiegare qual è l'errore?

C_1=iCCI(NULL,0,C_periodo,PREZZO_TIPICO,0);

C_2=iCCI(NULL,0,C_periodo,PREZZO_TIPICO,1);

C_3=iCCI(NULL,0,C_periodo,PREZZO_TIPICO,2);


se(C_1 > C_2 > C_3)Opn_B=vero;

se(C_1 < C_2 < C_3)Cls_B=vero;

se (C_1 > C_2 && C_2 > C_3) Opn_B=vero;

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

 
paladin80:
se (C_1 > C_2 && C_2 > C_3) Opn_B=vero;

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

Grazie mille!
 

Potete dirmi per favore cosa c'è di sbagliato qui? Voglio che i trade chiudano a 70 incrociando dall'alto verso il basso (Buy) e 30 dal basso verso l'alto (Sell). Per qualche ragione i trade stanno chiudendo Buy ben al di sotto di 70 e Sell ben al di sopra di 30. La RSI non arriva ancora a 70 e 30. Grazie!

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

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

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

Potete dirmi per favore cosa c'è di sbagliato qui? Voglio che i trade chiudano a 70 incrociando dall'alto verso il basso (Buy) e 30 dal basso verso l'alto (Sell). Per qualche ragione i trade stanno chiudendo Buy ben al di sotto di 70 e Sell ben al di sopra di 30. La RSI non arriva ancora a 70 e 30. Grazie!

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

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

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

Nel post precedente, avevi: if(C_1 < C_2 && C_2 < C_3) Cls_B=true; Ora hai la stessa variabile che cambia sotto una condizione diversa: if((R_1 < 70 && R_2 > 70)) Cls_B=true; Check.

Prova questo codice:

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;
 

Ciao a tutti!!!!

Sono sicuro che è stato fatto ripetutamente come questo, ma forse qualcuno suggerirà una formula per la dimensione del lotto, a seconda dei fondi?

Tipo se più di 2000 allora lotto 0,02, se più di 3000 allora 0,03, ecc.

 
nikelodeon:

Ciao a tutti!!!!

Sono sicuro che è stato fatto ripetutamente come questo, ma forse qualcuno suggerirà una formula per la dimensione del lotto, a seconda dei fondi?

Tipo se più di 2000 allora lotto 0,02, se più di 3000 allora 0,03, ecc.

Ci sono diverse formule di calcolo
 
paladin80:

Nel post precedente avevi: if (C_1 < C_2 && C_2 < C_3) Cls_B=true; Ora hai la stessa variabile che cambia sotto una condizione diversa: if((R_1 < 70 && R_2 > 70)) Cls_B=true; Controlla.

Prova questo codice:


Grazie mille per il vostro aiuto! Sto capendo come funziona esattamente l'EA RSI. La cosa interessante è che nel seguente grafico i trade sono aperti esattamente nel posto giusto, ma sono chiusi completamente nel posto sbagliato (voglio che i trade siano chiusi a 70 incrociando dall'alto in basso (Buy) e 30 incrociando dal basso in alto (Sell). Anche il tuo schema di chiusura raccomandato non funziona. Ho impostato il periodo RSI a 2 e sto guardando M1. Dov'è l'imprecisione, non riesco a capirlo.

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:

Grazie mille per il vostro aiuto! Sto cercando di capire come funziona l'EA RSI. Quello che è interessante, sul grafico qui sotto, le compravendite si aprono esattamente dove dovrebbero, ma si chiudono in modo completamente sbagliato (voglio che le compravendite si chiudano a 70 incrociando dall'alto in basso (Acquisto), e 30 incrociando dal basso in alto (Vendita). Anche il tuo schema di chiusura raccomandato non funziona. Ho impostato il periodo RSI a 2 e sto guardando M1. Dov'è l'imprecisione, non riesco a capirlo.

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;

Siamo sicuri che l'ultima condizione sia scritta correttamente