Scriverò l'indicatore gratuitamente - pagina 44

 

Aiuto con l'indicatore


Voglio tenerlo così com'è, ma rifarlo a due buffer


#proprietà indicator_separate_window

#proprietà indicator_buffers 1

#property indicator_color1 DodgerBlue

#proprietà indicator_maximum 1.4

#proprietà indicatore_livello1 0

#proprietà indicatore_minimo -1,2


//------- Parametri dell'indicatore esterno -------------------------------

extern int CCI_Period_0 = 14; // periodo CCI per il timeframe corrente

extern int Level_0 = 100; // Livello CCI per il TF corrente

extern int TF_1 = 60; // Numero di minuti nel primo intervallo di tempo

extern int CCI_Period_1 = 14; // periodo CCI per il primo TF

extern int Level_1 = 100; // livello CCI per il primo TF

extern int TF_2 = 240; // Numero di minuti del secondo TF

extern int CCI_Period_2 = 14; // periodo CCI per il secondo TF

extern int Level_2 = 100; // livello CCI per il secondo TF

extern int NumberOfBars = 10000; //Numero di barre(0-tutto)


//------- Buffer indicatori ------------------------------------------

doppio buf0[];

//+------------------------------------------------------------------+

//| funzione di inizializzazione dell'indicatore personalizzato

//+------------------------------------------------------------------+

void init()

{

IndicatoreCifre(1);


SetIndexBuffer(0,buf0);

SetIndexLabel(0, "i-3CCI-h");

SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);

SetIndexEmptyValue(0,0);

}

//+------------------------------------------------------------------+

//| funzione di deinizializzazione dell'indicatore personalizzata

//+------------------------------------------------------------------+

void deinit()

{

Commento(");

}

//+------------------------------------------------------------------+

//| funzione di iterazione dell'indicatore personalizzata

//+------------------------------------------------------------------+

void start()

{

doppio cci0,cci1,cci2;

int nb1,nb2;

int LoopBegin,sh;


if(NumberOfBars==0) LoopBegin=Bars-1;

else LoopBegin=NumberOfBars-1;

LoopBegin=MathMin(Bars-1,LoopBegin);


for(sh=LoopBegin; sh>=0; sh--)

{

nb1=iBarShift(NULL, TF_1, Time[sh], False);

nb2=iBarShift(NULL, TF_2, Time[sh], False);


cci0=iCCI(NULL, 0 , CCI_Period_0, PRICE_CLOSE, sh);

cci1=iCCI(NULL, TF_1, CCI_Period_1, PRICE_CLOSE, nb1);

cci2=iCCI(NULL, TF_2, CCI_Period_2, PRICE_CLOSE, nb2);


if(cci0>Level_0 && cci1>Level_1 && cci2>Level_2) buf0[sh]=1;

if(cci0<-Level_0 && cci1<-Level_1 && cci2<-Level_2) buf0[sh]=-1;

}

}

//+------------------------------------------------------------------+


Provando io stesso, non ho ancora avuto fortuna.

provato in questo modo


#proprietà indicator_separate_window

#proprietà indicator_buffers 2

#property indicator_color1 Green

#property indicator_color2 Red

#proprietà indicator_maximum 1.4

#proprietà indicatore_livello1 0

#proprietà indicatore_minimo -1,2


//------- Parametri dell'indicatore esterno -------------------------------

extern int CCI_Period_0 = 14; // periodo CCI per il timeframe corrente

extern int Level_0 = 100; // Livello CCI per il TF corrente

extern int TF_1 = 60; // Numero di minuti nel primo intervallo di tempo

extern int CCI_Period_1 = 14; // periodo CCI per il primo TF

extern int Level_1 = 100; // livello CCI per il primo TF

extern int TF_2 = 240; // Numero di minuti del secondo TF

extern int CCI_Period_2 = 14; // periodo CCI per il secondo TF

extern int Level_2 = 100; // livello CCI per il secondo TF

extern int NumberOfBars = 10000; //Numero di barre(0-tutti)


//------- Buffer indicatori ------------------------------------------

doppio ExtBuffer1[];

doppio ExtBuffer2[];

//+------------------------------------------------------------------+

//| funzione di inizializzazione dell'indicatore personalizzato

//+------------------------------------------------------------------+

void init()

{

SetIndexBuffer(0,ExtBuffer1);

SetIndexStyle(0,DRAW_HISTOGRAM,0,2);

//----

SetIndexBuffer(1, ExtBuffer2);

SetIndexStyle(1,DRAW_HISTOGRAM,0,2);

}

//+------------------------------------------------------------------+

//| funzione di deinizializzazione dell'indicatore personalizzata

//+------------------------------------------------------------------+

void deinit()

{

Commento(");

}

//+------------------------------------------------------------------+

//| funzione di iterazione dell'indicatore personalizzata

//+------------------------------------------------------------------+

void start()

{

doppio cci0,cci1,cci2;

int nb1,nb2;

int LoopBegin,sh;


if(NumberOfBars==0) LoopBegin=Bars-1;

else LoopBegin=NumberOfBars-1;

LoopBegin=MathMin(Bars-1,LoopBegin);


for(sh=LoopBegin; sh>=0; sh--)

for(st=LoopBegin; st<0; st--)

{

nb1=iBarShift(NULL, TF_1, Time[sh], False);

nb2=iBarShift(NULL, TF_2, Time[st], False);


cci0=iCCI(NULL, 0 , CCI_Period_0, PRICE_CLOSE, sh);

cci1=iCCI(NULL, TF_1, CCI_Period_1, PRICE_CLOSE, nb1);

cci2=iCCI(NULL, TF_2, CCI_Period_2, PRICE_CLOSE, nb2);


if(cci0>Level_0 && cci1>Level_1 && cci2>Level_2) buf1[sh]=1;

if(cci0<-Level_0 && cci1<-Level_1 && cci2<-Level_2) buf2[st]=-1;



l'errore è


alla fine abbiamo bisogno di due buffer, uno sopra lo zero e uno sotto.


File:
12121.jpg  42 kb
ere.mq4  6 kb
 

Caro koziabrrr !!! Hai creato il tuo argomento. Ci sono più argomenti, e se qualcuno inizia a cercare un argomento? E ci sono molti argomenti, è difficile da trovare. Per rendere più facile l'argomento per argomento. L'argomento più in alto è per aiutare i nuovi arrivati. È lì che dovrebbe andare la tua domanda. Creato topic delete, e ci scrivono tenendo conto dei miei commenti!!! Poi hai anche scritto in questo thread - beh, questa è megalomania, opinione esagerata del valore della sua persona

Per ottenere l'attenzione - è necessario spiegare il compito. 1. 1. Che aspetto ha l'indicatore = screenshot. 2. Che cosa fa l'indicatore, qual è il suo uso (punti di ingresso mostrerà, tendenza, piatto, ...). 3) Perché abbiamo bisogno di due buffer? Cosa è più utile per questo (mostra meglio la tendenza, il piatto, i punti di entrata)? È allora che tutti si affretteranno a perfezionarlo!!!! .... Sarà un bene per loro e per voi! Dovremmo essere amici, condividere

 

Ecco un rifacimento. Sembra mostrare una tendenza. Ma è un imbroglio.

Tra mezz'ora sapremo che avremmo dovuto vendere...

E che è il momento di comprare - è silenzioso...

 
Qualcosa del genere sarebbe meglio:

o MAinColor di qualche tipo

 
STARIJ:

Ecco un rifacimento. Sembra mostrare una tendenza. Ma è un imbroglio.

Tra mezz'ora sapremo che avremmo dovuto vendere...

E che è il momento di comprare - è silenzioso...


Sì, sembra migliore, grazie per la riprogettazione. Ma ancora non capisco come)))

 
koziabrrr: Sì, sembra migliore, grazie per la riprogettazione. Ma ancora non capisco come))
#property indicator_buffers 2
#property indicator_color2 Tomato
double buf0[], buf1[];  //------- Буферы индикатора ------   добавил второй буфер
void init() 
  {
..................
   SetIndexBuffer(1,buf1);
   SetIndexLabel(1,"Вниз");
   SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2);
   SetIndexEmptyValue(1,0);
  }

void start() 
  {
....................
..................

      buf0[sh]=0;buf1[sh]=0;
      if(cci0>Level_0 && cci1>Level_1 && cci2>Level_2) buf0[sh]=1;
      if(cci0<-Level_0 && cci1<-Level_1 && cci2<-Level_2) buf1[sh]=-1;
    }
}
 
STARIJ:

STARIJ:

Ci sto provando, ma non riesco a mettere tutto insieme. Va bene quando si conosce il problema, ma quando non lo si conosce, ogni piccola cosa è un giorno.

 
koziabrrr:


Ci sto provando, ma non riesco a mettere tutto insieme. Va bene quando si conosce il problema, ma quando non lo si conosce, ogni piccola cosa è un giorno.

... E ogni giorno è un'esperienza inestimabile che viene solo attraverso il proprio lavoro - non attraverso una soluzione da forum.
 
Artyom Trishkin:
... E ogni giorno è un'esperienza inestimabile che viene solo dal proprio lavoro - non da una decisione su un forum.

Questo è Sì!


STARIJ: Grazie per il tuo aiuto!!!!


Risolto il problema)))

 

Ciao Yuri.

Descrizione dell'indicatore: quando si parte da 3 candele mantenute sullo stesso livello o quasi sullo stesso livello, manda un avviso via e-mail e trasmette un suono. Mostrava anche lo strumento e il time frame sullo schermo finché non l'ho cancellato. Guardate i file allegati per favore, ci sono esempi

File:
11.png  25 kb
12.png  24 kb
13.png  24 kb
14.png  27 kb
Motivazione: