[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 23

 
Sergey2011:

Non capisco come essere in 15 minuti, attraverso i quali funziona il tempo, per organizzare un ciclo attraverso i giorni.

Spero che la domanda sia chiara.

Grazie per l'aiuto


Guardate la guida di iBarShift e/o potete lavorare direttamente con le barre giornaliere in questo modo: iOpen(Symbol(),PERIOD_D1,1) - apertura del giorno precedente, ecc.
 
Ereke:
Un altro Smartypants!
Non hai idea di quanto tu abbia ragione nella tua caratterizzazione di questo forum! Si spera che trarrà anche le giuste conclusioni su se stesso e sulla qualità delle sue indagini, visto che è entrato in un ambiente del genere.
 
granit77:
Non hai idea di quanto tu abbia ragione nella tua caratterizzazione di questo forum! Spero che anche voi trarrete le giuste conclusioni su voi stessi e sulla qualità delle vostre indagini, visto che siete entrati in un tale ambiente.
+10 :)
 
granit77:
Non hai idea di quanto tu abbia ragione nella tua caratterizzazione di questo forum! Spero che trarrà le giuste conclusioni su se stesso e anche sulla qualità delle sue inchieste, visto che si trova in un ambiente simile.

artmedia70

GRAZIE !..................... Sono già stato aiutato!

 
artmedia70: Victor ha detto bene - un colpo in aria...
Mi ricorda un aneddoto...
Due Chukchi si perdono nel bosco...
-Spara in aria, forse qualcuno sentirà e aiuterà...
Qualche minuto dopo...
-Spara ancora un po'.
-Non posso, ho finito le frecce...
 
volshebnik:
Il prezzo di chiusura può essere ben al di sopra del frattale (se il frattale è in alto) e allora il profitto potenziale è perso. Controllo il breakout del prezzo ad ogni tick.


Sono d'accordo, puoi farlo, dato che l'ordine di acquisto si apre su ask, puoi confrontarlo con ask...

if (Ask > upfractal) { DO IT }

Alla domanda - perché non si attivano tutte le tue condizioni di entrata, te lo spiego di nuovo in dettaglio - è a causa di un calcolo frattale errato...

Per calcolare correttamente il valore dell'ultimo frattale, dovresti usare questa costruzione usando una variabile ausiliaria...

 fractal_h = iFractals(Symbol(),PERIOD_H1, MODE_UPPER, 3);
   if(fractal_h!=0)  upfractal=iFractals(Symbol(), PERIOD_H1, MODE_UPPER, 3); 
   
   fractal_l = iFractals(Symbol(), PERIOD_H1, MODE_LOWER, 3);
   if(fractal_l!=0)  dwfractal=iFractals(Symbol(),PERIOD_H1, MODE_LOWER, 3); 

Nel tuo codice, non c'è e il frattale è apparso, sì, hai memorizzato bene il suo valore. L'hai scritto correttamente - non sulla 3a barra, ma sulla 2a, quando sappiamo già il suo valore sulla 0a barra, cosa succede dopo ... Se il prezzo non sfonda il valore dell'ultimo frattale sulla barra successiva, e, per esempio, "piccoli passi", su ogni barra successiva si muove verso la sua penetrazione senza formare un frattale regolare (cosa che di solito accade), allora la vostra situazione è ... il tuo valore frattale calcolato viene resettato a "0" da solo... e non c'è bisogno di azzerarlo ulteriormente come fate nel vostro codice (non citerò dove lo sapete)... Ed è per questo che upfractal !=0 appare solo sulla barra successiva a quella calcolata (dove si trovava l'ultimo frattale) ...

Ecco perché ricordano e mantengono il valore del frattale più recente quando formano le barre successive semplicemente inserendo una variabile ausiliaria, provate a fare queste modifiche nel vostro codice e vedete che le operazioni vengono fatte proprio allo sfondamento dell'ultimo frattale e non fa differenza quante barre dopo si verifica questo sfondamento, se ancora non capite, inserite la stampa invece del vostro avviso e guardate come la variabile upfractal cambia ad ogni nuova barra e capirete tutto - si resetta a "0" alla nuova barra formata, e il frattale è rotto, diciamo, all'ottava barra - tutto qui, il suo valore è stato uguale a zero per molto tempo.

È così con te:


  
            
                upfractal=iFractals(Symbol(), PERIOD, MODE_UPPER, 3);
                Alert("upfractal вначале = ",upfractal);
if (Двверх==true && upfractal !=0 && Bid > NormalizeDouble(upfractal+1*Point,Digits) && Tвверх!=Time[0] && Сделкавверх==false) // Условие открытия ордера при пробитии фрактала вверх

È così che dovrebbe essere:

 fractal_h = iFractals(Symbol(),PERIOD_H1, MODE_UPPER, 3);
   if(fractal_h!=0)  upfractal=iFractals(Symbol(), PERIOD_H1, MODE_UPPER, 3);
 if (Двверх==true && Ask > NormalizeDouble(upfractal+1*Point,Digits) && Tвверх!=Time[0] && Сделкавверх==false) 
   

"Roman, perché? Non è la stessa cosa? Per esempio, se MA_8<MA_2 è uguale a (MA_8-MA_2)<0 ?"

È lo stesso, ma per il funzionamento nel mondo reale e l'affidabilità al 100 per cento, per nessun terreno per possibili "glitch" - la 2a opzione è necessaria.

P.S. Invece degli avvisi, usa le stampe e traccia i valori delle variabili risultanti nel tempo nel tester nel log dell'EA per analizzare il funzionamento "corretto" del tuo gufo.

 
Roman.:


Sono d'accordo, si può fare, dato che l'ordine di acquisto si apre sull'ask, si può confrontare con l'ask...

if (Ask > upfractal) { DO IT }

Visivamente, analizzo il grafico per la penetrazione di un frattale e cerco le dipendenze dal prezzo visibile, cioè l'offerta. Ecco perché considero una rottura frattale come un'offerta (e upfractal dà anche un'offerta, non una richiesta).
 
Esempio:
  datetime some_time=D'2004.03.21 12:00'; int shift=iBarShift("EUROUSD",PERIOD_M1,some_time); Print("shift of bar with open time ",TimeToStr(some_time)," is ",shift);

Ho cercato nell'aiuto, non capisco (non lo capisco) come specificare nella variabile "some_time" in 15 minuti, che ho bisogno del giorno precedente, cioè se oggi è il 25 gennaio. 2011 come posso impostare il 24 gennaio, il 23, il 22, ecc. per la ricerca.

Grazie se puoi spiegare.

 
volshebnik:
Analizzo visivamente il grafico per la penetrazione di un frattale e cerco le dipendenze dal prezzo visibile, cioè l'offerta. Ecco perché considero una rottura frattale come un'offerta (e upfractal dà anche un'offerta, non una richiesta).


si può fare anche così, non è importante :-)))

L'hai capito adesso?

 
Roman.:


Sono d'accordo, puoi farlo in questo modo, dato che l'ordine di acquisto si apre sull'ask, puoi confrontarlo con l'ask...

Alla domanda sul perché non hai tutte le condizioni di entrata attivate, te lo spiego di nuovo in dettaglio - è perché il frattale non è calcolato correttamente...

Per il calcolo corretto del valore dell'ultimo frattale è necessario utilizzare tale costruzione con l'uso della variabile ausiliaria...

Nel tuo codice, non c'è e il frattale è apparso, sì, hai memorizzato bene il suo valore. L'hai scritto correttamente - non sulla 3a barra, ma sulla 2a, quando sappiamo già il suo valore sulla 0a barra, cosa succede dopo ... Se il prezzo non sfonda il valore dell'ultimo frattale sulla barra successiva, e, per esempio, "a piccoli passi", su ogni barra successiva, fa progressi verso la sua penetrazione senza formare un nuovo frattale (cosa che di solito accade), allora la vostra situazione è ... il tuo valore frattale calcolato viene resettato a "0" da solo... e non c'è bisogno di azzerarlo ulteriormente come fate nel vostro codice (non citerò dove lo sapete)... Ed è per questo che upfractal !=0 solo sulla barra successiva a quella calcolata (dove si trovava l'ultimo frattale) .

Ecco perché ricordano e mantengono il valore dell'ultimo frattale quando si formano barre successive semplicemente inserendo una variabile ausiliaria, prova a correggere questi cambiamenti nel tuo codice e vedi che le operazioni vengono fatte proprio allo sfondamento dell'ultimo frattale e non importa quante barre dopo si verifica questo sfondamento,

Sì, Roman, grazie mille. Ho aggiunto un parametro ausiliario per la definizione del frattale, ora tutti gli scambi sono aperti.