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

 
russcand:
Potete dirmi come scrivere:
Il prezzo ha attraversato la linea orizzontale verso l'alto....
E come dovrebbe essere descritta questa linea?
Se il valore dell'indicatore sulla prima barra è maggiore del valore della linea orizzontale, E, il valore dell'indicatore sulla seconda barra è inferiore al valore della linea orizzontale, allora la linea dell'indicatore ha attraversato la linea orizzontale verso l'alto.
La descrizione della linea orizzontale è un numero costante, cioè il suo valore nella dimensione della finestra dell'indicatore. Mettiamoci sopra il cursore del mouse e vediamo questo valore.
 
borilunad:

Grazie mille per il chiarimento!

Sono solo preoccupato per il tester che simula barre da un minuto per le modifiche all'apertura di ogni barra da un minuto.

Proverò a cambiare Open[0] in iOpen(NULL,1,0) e ad aggiungere una funzione per controllare l'apertura della barra di un minuto.

Sono passati alcuni minuti, durante i quali ho messo a punto il codice e l'ho provato con il tester a M5 e ho fatto in modo che in questo caso il tester non apra barre di 1 minuto, anche se prescritto, e lo modifichi solo ogni 5 minuti, cosa che temevo. In modalità all ticks è un po' meglio, perché modifica più spesso. Ma su M1 solo all'apertura della barra funziona lo stesso, sia con Open[0] che con iOpen(NULL,1,0), di cui sono ancora grato!

Ora userò sempre iOpen verde, perché vedo che posso fare a meno di Open rosso. Il profitto verde è più bello della perdita rossa. (:))

guarda come sono scritti gli EA in loop, questo è lo standard per multicurrency/multi-timeframes, in quanto elimina la necessità di aspettare un tick sul grafico dove l'EA è in bilico, e permette di elaborare tutti i grafici necessari in tempo reale.
 
granit77:
Se il valore dell'indicatore sulla prima barra è maggiore del valore della linea orizzontale, E, il valore dell'indicatore sulla seconda barra è minore del valore della linea orizzontale, allora la linea dell'indicatore ha attraversato la linea orizzontale da sotto a sopra.
La descrizione della linea orizzontale è un numero costante, cioè il suo valore nella dimensione della finestra dell'indicatore. Mettiamoci sopra il cursore del mouse e vediamo questo valore.

Grazie. Ora, vorrei sistemarmi un po' di più.

Diciamo che questo livello è sfondato. L'indicatore rileva la giusta condizione di mercato.

Ma il prezzo può tornare dentro questo livello.

Non ho bisogno di ridefinire lo stato precedentemente determinato.

È importante per me superare questo livello. Ciò che il prezzo si muove avanti e indietro non mi interessa, perché è importante il momento dell'attraversamento e del fissaggio del livello predefinito.

Quindi, quello che hai scritto è la situazione del momento. Come fare in modo che il nuovo stato determinato rimanga lo stesso quando il prezzo ritorna.

Il nostro indicatore ha le frecce ARROWDN e ARROWUP sul grafico. Forse dovrebbero essere applicati in qualche modo.

Per esempio, se il valore della barra corrente è maggiore di qualche indice AND

Qui per mettere una condizione che il prezzo NON ha rotto la linea verso l'alto (o ARROWUP non è iniziato)..., E il prezzo NON ha rotto la linea verso il basso (o ARROWDN non è iniziato).

allora.... è determinato dallo stato di così e così.

L'indicatore ha un'altra espressione

( ObjectFind(NameInd+timestartpr+"CurExt_ARROWDN")!=-1) - questo tipo di dire sulla ripartizione della linea "CurExt_ARROWDN" verso il basso.

Come posso indicare con la stessa espressione che non c'è nessun guasto?

 
russcand:

Grazie. E ora vorrei decidere ancora un po'.

Diciamo che questo livello viene superato. L'indicatore definisce la condizione di mercato richiesta.

Ma il prezzo potrebbe entrare di nuovo in questo livello.

E ho bisogno di assicurarmi che lo stato precedentemente definito non venga ridefinito.

Poiché ciò che è importante per me è la svolta di questo livello. Quello che il prezzo va avanti e indietro non mi interessa, perché c'è un momento di incrocio e di fissaggio della situazione che è già stata definita.

Quindi, quello che hai scritto è la situazione del momento. Come posso fare in modo che la nuova condizione determinata rimanga invariata quando il prezzo ritorna?

Ci sono anche le frecce ARROWDN e ARROWUP sull'indicatore (sul grafico). Forse dovrebbero essere applicati in qualche modo.

Per esempio, se il valore della barra corrente è maggiore di qualche indice "AND".

Qui mettete una condizione che il prezzo NON abbia rotto la linea verso l'alto (o che ARROWUP non sia iniziato)..., E che il prezzo NON abbia rotto la linea verso il basso (o che ARROWDN non sia iniziato).

allora.... è determinato da uno stato tale e quale.

C'è un'altra espressione nell'indicatore

( ObjectFind(NameInd+timestartpr+"CurExt_ARROWDN")!=-1) - questo dice che la linea "CurExt_ARROWDN" si è rotta.

Come posso specificare la stessa espressione, ma che non ci sia una svolta?



bool statico BreakDown=falso;

...

come sarà rotto:

BreakDown=true;

 
tara:


bool statico BreakDown=falso;

...

mentre corre:

BreakDown=true;

Sanx, puoi disegnare la formula stessa? Da questo punto in poi:

static bool BreakDown=false; // come proverà: BreakDown=true;
static bool BreakUp=false;

if ( iTime(Symbol(),0,0) >= CurExt // inizio del segmento

&& (
ObjectFind(NameInd+timestartpr+"CurExt_ARROWUP")!=-1 // break up
BreakUp=true;
||

ObjectFind(NameInd+timestartpr+"CurExt_ARROWDN")!=-1 // si è rotto

BreakDown=true;

)

)

Dove e come mettere BreakUp=true; e BreakDown=true; o meglio scrivere correttamente la formula, pliz.... Altrimenti, è chiaro che il bilibbero è disegnato in alto...

 
Per favore, ditemi il metodo di calcolo. Prendete per esempio gli ultimi 10 trade e contate per esempio la redditività. Come calcolare, avendo uno storico di tutti gli scambi (molto più di 10) che la redditività di questi 10 scambi era casuale/non casuale.
 
russcand:

Sanx, posso disegnare la formula stessa? Da questo punto in poi:

static bool BreakDown=false; // breakDown=true;
static bool BreakUp=false;

if ( iTime(Symbol(),0,0) >= CurExt // inizio del segmento

&& (
ObjectFind(NameInd+timestartpr+"CurExt_ARROWUP")!=-1 // break up
BreakUp=true;
||

ObjectFind(NameInd+timestartpr+"CurExt_ARROWDN")!=-1 // rompere

BreakDown=true;

)

)

Dove e come mettere BreakUp=true; e BreakDown=true; o meglio scrivere correttamente la formula, pliz.... Perché è chiaro che bilibberd è disegnato in cima...


Scusa, prova prima le tue condizioni :) A proposito, Breakdown è un breakdown. Non in alto o in basso, solo una ripartizione.
 
Skydiver:
Per favore, ditemi il metodo di calcolo. Prendete per esempio gli ultimi 10 trade e contate per esempio la redditività. Come calcolare, avendo uno storico di tutti gli scambi (molto più di 10) che la redditività di questi 10 scambi era casuale/non casuale.

Mi scusi - ma perché?
 
tara:

Mi scusi, perché?

Sto solo cercando di capire bene questa cosa https://www.mql5.com/ru/forum/139348. Basta che non mi prenda a calci con pensieri senza senso e così via. Penso che "la verità è là fuori" e forse una parte di essa è in questo thread. Quindi sto scavando.
 
Dopodomani