Aiuto per la codifica - pagina 222

 

Grazie per il codice e la codifica Altoronto,

Grazie mille, sono pronto per il prossimo passo

 

Grazie Altoronto,

Il prossimo passo per questo codice è quello di determinare la stessa linea per tutti i periodi, allo stesso punto, senza cambiamenti durante il giorno, al primo minuto per la candela a 00:00 per il giorno in corso.

Ho allegato un'immagine con le descrizioni per una migliore comprensione:

Potete aiutarmi a codificare questo, e a codificarlo in un indicatore?

Grazie ancora,

Se questo finalmente funziona manderò una bottiglia di buon vino cileno a chi mi aiuta,

Grazie ancora,

Daniel1983

File:
 
daniel1983:
Grazie Altoronto,

Il prossimo passo per questo codice è determinare la stessa linea per tutti i periodi, allo stesso punto, senza cambiamenti durante il giorno, al primo minuto per la candela alle 00:00 per il giorno in corso.

Ho allegato un'immagine con le descrizioni per una migliore comprensione:

Potete aiutarmi a codificare questo, e a codificarlo in un indicatore?

Grazie ancora,

Se questo finalmente funziona manderò una bottiglia di buon vino cileno a chi mi aiuta,

Grazie ancora,

Daniel1983

Daniel1983

Se stai usando la prima barra chiusa alta e bassa, ci saranno cambiamenti durante il giorno

 

Signor Mladen,

Perché sarà cambiamenti durante il giorno? Penso solo fare il calcolo una volta e solo per la prima candela di ogni giorno. Non per le candele seguenti, non capisco

a t=1 del giorno 1 fare il calcolo per t= 0 del giorno 1, risultato disegnare una linea

solo per il giorno in cui state usando l'indicatore, alle 23:59 del giorno fate smettere di lavorare fino al prossimo giorno il prezzo dell'indicatore per la prima candela

giorno successivo

a t=1 del giorno 2 fare il calcolo per t= 0 del giorno 2, risultato disegnare una linea

Spero che qui sia più chiaro

 
daniel1983:
Signor Mladen,

Perché sarà cambiamenti durante il giorno? penso solo fare il calcolo una volta e solo per la prima candela di ogni giorno. Non le candele seguenti, non capisco

a t=1 del giorno 1 fare il calcolo per t= 0 del giorno 1, risultato disegnare una linea

solo per il giorno in cui state usando l'indicatore, alle 23:59 del giorno fate smettere di lavorare fino al prossimo giorno il prezzo dell'indicatore per la prima candela

giorno successivo

a t=1 del giorno 2 fare il calcolo per t= 0 del giorno 2, risultato disegnare una linea

spero che qui sia più chiaro

daniel1983

High[1] e Low[1] indicano il massimo e il minimo della prima barra chiusa del grafico corrente. Se quel grafico non è un grafico giornaliero, otterrai un cambiamento intraday come il cambiamento di alto e basso. Inoltre, in ogni caso, ma quando si utilizza un grafico giornaliero, si ha un mix di dati da diversi time frame

 

Ok Mladen, fammi vedere se ho capito, penso che il problema è che sto mescolando 2 timeframe nello stesso codice, quindi se uso solo 1 timeframe per esempio tutto per un grafico a 1 minuto, dovrebbe funzionare:

facciamo tutto per un grafico al minuto,

codice formula por prezzo dove la linea deve essere =

double minuteOpen = iOpen(NULL,PERIOD_M1,1);

doppio numero = (minuteOpen+High[1]+Low[1])/3;

in questo modo penso che il codice per la linea orizzontale al prezzo calcolato dovrebbe essere per t=1, ma non funziona

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

//|Funzione di inizializzazione dell'indicatore personalizzato

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

int init()

{

//----

return(0);

}

int deinit() {

Comment("");

ObjectDelete("KeyLine");

return(0);

}

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

//|Funzione di iterazione dell'indicatore personalizzata |

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

int start()

{

double minuteOpen = iOpen(NULL,PERIOD_M1,1);

double number = (minuteOpen+High[1]+Low[1])/3;

Comment("Linea chiave: ",numero);

ObjectDelete("KeyLine");

ObjectCreate("KeyLine", OBJ_HLINE,1, CurTime(),numero);

ObjectSet("KeyLine",OBJPROP_COLOR,Orange);

ObjectSet("KeyLine",OBJPROP_STYLE,STYLE_SOLID);

ObjectsRedraw();

return(0);

}

 
daniel1983:
Ok Mladen, fammi vedere se ho capito, penso che il problema sia che sto mescolando 2 timeframe nello stesso codice, quindi se uso solo 1 timeframe per esempio tutto per il grafico a 1 minuto, dovrebbe funzionare:

facciamo tutto per un grafico al minuto,

codice formula por prezzo dove la linea deve essere =

double minuteOpen = iOpen(NULL,PERIOD_M1,1);

doppio numero = (minuteOpen+High[1]+Low[1])/3;

in questo modo penso che il codice per la linea orizzontale al prezzo calcolato dovrebbe essere per t=1, ma non funziona

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

//|Funzione di inizializzazione dell'indicatore personalizzato

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

int init()

{

//----

return(0);

}

int deinit() {

Comment("");

ObjectDelete("KeyLine");

return(0);

}

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

//|Funzione di iterazione dell'indicatore personalizzata |

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

int start()

{

double minuteOpen = iOpen(NULL,PERIOD_M1,1);

double number = (minuteOpen+High[1]+Low[1])/3;

Comment("Linea chiave: ",numero);

ObjectDelete("KeyLine");

ObjectCreate("KeyLine", OBJ_HLINE,1, CurTime(),numero);

ObjectSet("KeyLine",OBJPROP_COLOR,Orange);

ObjectSet("KeyLine",OBJPROP_STYLE,STYLE_SOLID);

ObjectsRedraw();

return(0);

}

No

Dovreste fare così:

double number = )iOpen(NULL,PERIOD_D1,1)+iHigh(NULL,PERIOD_D1,1)+iLow(NULL,PERIOD_D1,1))/3

E in questo modo otterrai tutti i dati dai dati giornalieri (nessun dato temporale da diversi time frame che si mescolano)

 

Grazie Mladen,

Penso che forse sto andando troppo veloce. Torniamo un po' indietro senza inserire alcuna formula, partiamo da prima, facciamo fare all'indicatore solo il seguente compito:

Disegna una singola linea orizzontale al prezzo di apertura della prima candela minuto di ogni giorno, candela a 00:01 minuti, e la cancella a 23:59 minuti.

Il prezzo per questa linea non cambia nel tempo per tutti i periodi lo stesso prezzo fino alle 23:59 quando viene cancellata, e reinizia di nuovo alle 00:01 del giorno successivo.

Come sarebbe questo?

 
daniel1983:
Grazie Mladen,

Penso che forse sto andando troppo veloce. Torniamo un po' indietro senza inserire alcuna formula, partiamo da prima, facciamo fare all'indicatore solo il seguente compito:

Disegna una singola linea orizzontale al prezzo di apertura della prima candela minuto di ogni giorno, candela a 00:01 minuti, e la cancella a 23:59 minuti.

Il prezzo per questa linea non cambia nel tempo per tutti i periodi lo stesso prezzo fino alle 23:59 quando viene cancellata, e reinizia di nuovo alle 00:01 del giorno successivo.

Come sarebbe questo?

Se usi la formula che ho postato, allora si comporterà esattamente così: appena il giorno cambia, anche il valore cambierà e rimarrà fisso fino al giorno successivo

 

Grazie Mladen, ho fatto le modifiche, l'indicatore appare così, ma ancora non fa nulla nel grafico...

//------------------------------------------------------------------

#proprietà copyright "www.forex-tsd.com"

#property link "www.forex-tsd.com"

//------------------------------------------------------------------

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

//|funzione di inizializzazione dell'indicatore personalizzata |

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

int init()

{

//----

return(0);

}

int deinit() {

Comment("");

ObjectDelete("KeyLine");

return(0);

}

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

//|Funzione di iterazione dell'indicatore personalizzata |

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

int start()

{

double number = (iOpen(NULL,PERIOD_D1,1)+iHigh(NULL,PERIOD_D1,1)+iLow(NULL,PERIOD_D1,1))/3;

Comment("Linea Chiave: ",numero);

ObjectDelete("KeyLine");

ObjectCreate("KeyLine", OBJ_HLINE,1, CurTime(),numero);

ObjectSet("KeyLine",OBJPROP_COLOR,Orange);

ObjectSet("KeyLine",OBJPROP_STYLE,STYLE_SOLID);

ObjectsRedraw();

return(0);

}

Cosa sto facendo di sbagliato ora?

Grazie.

Motivazione: