Se vedi tutto strano devi riaggiornare la cache del tuo browser. premendo CTRL + F5. E' dovuto all'aggiornamento del forum.

creare un canele prezzo

Programmi di trading automatico, gioie e .... dolori.
Avatar utente
positiveday
Amministratore
Messaggi: 1905
Iscritto il: sab mag 28, 2016 9:23 pm

Re: creare un canele prezzo

Messaggio da positiveday »

Cioè, il tuo problema è nella conoscenza della programmazione, ma proprio di base.
Se non si sa bene cosa sia una variabile e che dati possa contenere, è veramente difficile poter scrivere righe di programma con un senso.
Senza offesa mi raccomando, è la semplice constatazione della realtà.
:cry:

Tu scrivi questo :

Codice: Seleziona tutto

     double OrarioInizio1=Close[2]>sar2 && sar2<sma2200 && Close[1]>sar && sar>sma200  ;
     double OrarioFine1=Close[2]<sar2 && sar2>sma2200 && Close[1]<sar && sar<sma200   ;  
     
   
    if(OrarioFine1 && contatore==true){
    
         Massimo=iHigh(Symbol(),PERIOD_M1,iHighest(Symbol(),PERIOD_M1,MODE_HIGH,(Close[1]>OrarioFine1&& Close[1]<OrarioInizio1)));
         Minimo= iLow(Symbol(),PERIOD_M1,iLowest(Symbol(),PERIOD_M1,MODE_LOW,(Close[1]>OrarioFine1&& Close[1]<OrarioInizio1)));
           contatore=false;
    
    
    }
    
    if(OrarioFine1){
    
         contatore=true;
    
    }
Se si dichiara una variabile di tipo Double, in genere è perché vogliamo metterci dentro un bel numero in virgola mobile positivo o negativo. Ad esempio un prezzo di apertura di un ordine, oppure un valore di una media mobile.
Usato così conterrà sempre 1,00000... oppure 0,000000, cioè un valore booleano convertito in Double (dovuto al typecasting) per via del fatto che la parte a destra dell'uguaglianza ( = ) è un valore booleano ( true o false, 1 o 0).

Perché non provi a spiegare in modo descrittivo che dati vorresti avere e come li vorresti elaborare. Lascia stare il codice, scrivi il ragionamento che gli sta dietro.
(Preciso che l'ho compreso benissimo, ma visto che siamo in una fase didattica, andiamo avanti).
:D
Trovi interessanti i contenuti di forexometro? Considera la possibilità di iscriverti! :mrgreen: e poi di partecipare ...

Puliexpress
Messaggi: 26
Iscritto il: mer apr 22, 2020 2:21 pm

Re: creare un canele prezzo

Messaggio da Puliexpress »

so di non averne le competenze e non voglio far perdere tempo chi ci vive di questo, anche perché per me è solo un hobby, per il momento, e sto cercando solo di capirne qualcosa in più.

Se qualcuno sa dirmi se è corretto scriverlo cosi?



int OrarioInizio1=TimeCurrent()&& Close[2]>sar2 && sar2<sma2200 && Close[1]>sar && sar>sma200 ;
int OrarioFine1=TimeCurrent()&& Close[2]<sar2 && sar2>sma2200 && Close[1]<sar && sar<sma200 ;



if(OrarioFine1 && contatore==true){

Massimo=iHigh(Symbol(),PERIOD_M1,iHighest(Symbol(),PERIOD_M1,MODE_HIGH,84600-OrarioFine1,84600-OrarioInizio1)) ;
Minimo2= iLow(Symbol(),PERIOD_M1,iLowest(Symbol(),PERIOD_M1,MODE_LOW,84600-OrarioFine1,84600-OrarioInizio1)) ;

contatore=false;


}

if(OrarioFine1){

contatore=true;

}

Avatar utente
positiveday
Amministratore
Messaggi: 1905
Iscritto il: sab mag 28, 2016 9:23 pm

Re: creare un canele prezzo

Messaggio da positiveday »

Puliexpress ha scritto:
gio apr 23, 2020 8:56 am
qui vado ad individuare il minimo di un canale prezzo, individuato tra le due linee nere, quando il SAR (0.001,0.01) rompe la media mobile 200
Cominciamo da questo.
Ok, si può tornare indietro nel grafico di MT4 e trovare i due incroci.
Ovviamente il momento dove le due righe sono più recenti è quando si è appena verificata la linea più avanti nel tempo.
Quindi mi sembra di capire che il "tempo" sia dato dai due incroci. Penso che l'ideale sia che l'ultimo si sia appena verificato. I prezzi penso siano il massimo ed il minimo rilevati all'interno dei due incroci.
Va considerato, che se un incrocio si è appena verificato nella barra 1, il prezzo corrente, potrebbe rappresentare uno dei due prezzi del canale, massimo o minimo. E quindi potrebbe essere un dato che magari nelle prossime barre cambierà ancora.
Va da sè che se tornando indietro trovo un incrocio, poi dovrò cercare il suo opposto.
Ma a parte questa ultima considerazione il resto è giusto?
:D
Trovi interessanti i contenuti di forexometro? Considera la possibilità di iscriverti! :mrgreen: e poi di partecipare ...

Avatar utente
positiveday
Amministratore
Messaggi: 1905
Iscritto il: sab mag 28, 2016 9:23 pm

Re: creare un canele prezzo

Messaggio da positiveday »

Puliexpress ha scritto:
sab mag 02, 2020 9:17 pm
so di non averne le competenze e non voglio far perdere tempo chi ci vive di questo, anche perché per me è solo un hobby, per il momento, e sto cercando solo di capirne qualcosa in più.

Se qualcuno sa dirmi se è corretto scriverlo cosi?
No.
Trovi interessanti i contenuti di forexometro? Considera la possibilità di iscriverti! :mrgreen: e poi di partecipare ...

Puliexpress
Messaggi: 26
Iscritto il: mer apr 22, 2020 2:21 pm

Re: creare un canele prezzo

Messaggio da Puliexpress »

si esatto.. qui cerco il massimo tra i due incroci… il minimo in realtà poi lo vado a cercare in un secondo canale che è esattamente l'opposto (altrimenti non avrebbe molto senso cercarlo qui il minimo), che sopra non ti ho riportato solo per essere un po' piu' comprensibile..
grz

io con questi parametri individuo sempre dei massimi e minimi corretti:


double sar= iSAR(NULL,0,0.001,0.01,1);
double sar2= iSAR(NULL,0,0.001,0.01,2);
double sma200= iMA(NULL,0,200,1,MODE_SMA,PRICE_CLOSE,1);
double sma2200= iMA(NULL,0,200,1,MODE_SMA,PRICE_CLOSE,2);

è qui sotto che non ho saputo automatizzarli :oops:

int OrarioInizio1= Close[2]>sar2 && sar2<sma2200 && Close[1]>sar && sar>sma200 ;
int OrarioFine1=Close[2]<sar2 && sar2>sma2200 && Close[1]<sar && sar<sma200 ;

Massimo=iHigh(Symbol(),PERIOD_M1,iHighest(Symbol(),PERIOD_M1,MODE_HIGH,OrarioFine1-OrarioInizio1)) ;

int OrarioInizio2=Close[2]<sar2 && sar2>sma2200 && Close[1]<sar && sar<sma200 ;
int OrarioFine2=Close[2]>sar2 && sar2<sma2200 && Close[1]>sar && sar>sma200 ;

Minimo2= iLow(Symbol(),PERIOD_M1,iLowest(Symbol(),PERIOD_M1,MODE_LOW,OrarioFine2-OrarioInizio2)) ;

Avatar utente
positiveday
Amministratore
Messaggi: 1905
Iscritto il: sab mag 28, 2016 9:23 pm

Re: creare un canele prezzo

Messaggio da positiveday »

Iniziamo a salvare gli orari in cui avvengono le transizioni.
Vedi ea allegato.
:D
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
Trovi interessanti i contenuti di forexometro? Considera la possibilità di iscriverti! :mrgreen: e poi di partecipare ...

Puliexpress
Messaggi: 26
Iscritto il: mer apr 22, 2020 2:21 pm

Re: creare un canele prezzo

Messaggio da Puliexpress »

io l'avrei inserito cosi… ma mi da questo errore di conversione dati… poi stanotte provo a capirlo meglio:

possible loss of data due to type conversion 1.mq4 110 92
possible loss of data due to type conversion 1.mq4 113 89
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.

Avatar utente
positiveday
Amministratore
Messaggi: 1905
Iscritto il: sab mag 28, 2016 9:23 pm

Re: creare un canele prezzo

Messaggio da positiveday »

Ma non è che i programmi si fanno così, alla buona.
Prima si verifica che i dati siano validi.
Hai verificato che vengono generati dei dati corretti ad ogni incrocio?
Una volta che i dati di ingresso sono buoni e validati si vede come utilizzarli.
:D

Cioè, hai eseguito un backtest?
Basta aggiungere dei "Print" ad ogni nuova generazione di tempo.
:D
Trovi interessanti i contenuti di forexometro? Considera la possibilità di iscriverti! :mrgreen: e poi di partecipare ...

Puliexpress
Messaggi: 26
Iscritto il: mer apr 22, 2020 2:21 pm

Re: creare un canele prezzo

Messaggio da Puliexpress »

lo vedo da qua? graficamente non mi fa vedere nulla..

Backtest=

2020.05.04 10:21:14.216 AUDUSD,M1: 29497 tick events (29496 bars, 58646 bar states) processed in 0:00:27.328 (total time 0:00:29.391)

Puliexpress
Messaggi: 26
Iscritto il: mer apr 22, 2020 2:21 pm

Re: creare un canele prezzo

Messaggio da Puliexpress »

print? a vedere i video tutoria sembrava cosi facile scrivere un EA :oops:

intendi qualcosa del genere?

int OrarioInizio1= ...…...………... ;
int OrarioFine1= …...……………... ;

Massimo=iHigh(Symbol(),PERIOD_M1,iHighest(Symbol(),PERIOD_M1,MODE_HIGH,OrarioFine1-OrarioInizio1));

Rispondi