Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 77

 
John Smith:


Nel codice, i valori sono presi come segue:

Valore[1] = corrente/corrente+6

Valore[2] = corrente+1/corrente+7

Valore[3] = corrente+2/corrente+8


La divisione è un pezzo di formula di slancio con una finestra di 6 barre.

C'è un errore in questa voce?

Dove hai trovato la finestra?

E a cosa pensi che la tua espressione Value[1] = corrente/corrente+6 sarà uguale, se corrente=1, penso 7?

 

Ciao a tutti!

Ho bisogno di aiuto. Sto scrivendo un EA. Utilizza un pannello di trading basato su CAppDialog. Il problema è che quando inizio a cambiare timeframes il pannello non è sempre ma spesso si divide. E le viscere del vecchio pannello rimangono e ne viene disegnato uno nuovo, ma non correttamente. Non mi resta che cancellare il grafico e iniziarne uno nuovo, dato che è impossibile continuare a lavorare con questo grafico e il pannello.

Allego l'EA per la revisione e l'analisi.

Grazie per tutto il vostro aiuto.

File:
6f5djt.mq4  18 kb
 
Rustem71:

Ciao a tutti!

Ho bisogno di aiuto. Sto scrivendo un EA. Utilizza un pannello di trading basato su CAppDialog. Il problema è che quando inizio a cambiare timeframes il pannello non è sempre ma spesso si divide. E le viscere del vecchio pannello rimangono e ne viene disegnato uno nuovo, ma non correttamente. Non mi resta che cancellare il grafico e iniziarne uno nuovo, dato che è impossibile continuare a lavorare con questo grafico e il pannello.

Allego l'EA per la revisione e l'analisi.

Grazie per tutto il vostro aiuto.


Quando cambi il TF devi reinizializzare il pannello...

e scavare nelle classi, il pannello non viene cancellato completamente durante la deinizializzazione

 
Taras Slobodyanik:


Quando si cambia TF, il pannello deve essere reinizializzato...

e scavare nelle classi, il pannello non viene cancellato completamente quando viene deinizializzato

Non l'ho ancora capito bene. Devo scavare in un sacco di classi. Ma la domanda è perché il primo interruttore va bene e il successivo uccide il pannello. Ho già rimosso tutte le cose inutili da esso. Ho lasciato solo la cornice per così dire. Ma il problema rimane. Ci sto lavorando ora. Se hai qualche idea mi piacerebbe sentirla.

Grazie!


Ora ho scoperto che la prima volta il pannello viene cancellato e ricreato dall'init, e la seconda volta il pannello rimane sospeso.

Forse l'iniit non dovrebbe essere caricato la seconda volta? O cancellarlo in qualche altro modo.

File:
mrdv0d.mq4  7 kb
 

Ho appena iniziato a capirlo, ho bisogno dell'aiuto dei professionisti.

Voglio usare l'indicatore stocastico incorporato per ricevere la notifica di un segnale (incrocio stocastico lento e veloce fuori dai confini 80/20)

Ho capito come ottenere i dati con iStochastic: scrivo il mio indicatore, chiamo iStochastic per le barre, lo analizzo e invio l'allarme.

Non capisco cosa fare in questa situazione: se uso un timeframe grande, per esempio 4 ore, allora una nuova barra apparirà alla fine del timeframe,

e l'indicatore viene chiamato per ricalcolare. Cioè il timeout è di 4 ore.

Ma voglio analizzare le informazioni costantemente, cioè appena il prezzo cambia (bid ask) ricalcolare lo stocastico e

se i criteri soddisfano la condizione che voglio essere notificato. Non voglio aspettare la fine del timeframe e la comparsa di una nuova candela.

Si prega di consigliare dove cercare e se è possibile implementare.

Forse non capisco completamente l'essenza dei processi e sto scavando nel posto sbagliato, sono un novizio).

 
Rustem71:

Non l'ho ancora capito bene. Ci sono molte classi da scavare. Ma la domanda è perché il primo interruttore va bene e il successivo uccide il pannello. Ho già rimosso tutte le cose inutili da esso. Ho lasciato solo la cornice per così dire. Ma il problema rimane. Ci sto lavorando ora. Se hai qualche idea mi piacerebbe sentirla.

Grazie!


Ora ho scoperto che la prima volta il pannello viene cancellato e ricreato dall'init, e la seconda volta il pannello rimane sospeso.

Forse l'iniit non dovrebbe essere caricato la seconda volta? O cancellarlo in qualche altro modo.


Tutto fatto! GrazieTaras Slobodyanik mi ha dato un'idea.

Durante l'init, vietato creare un pannello se c'era un cambiamento di TF. E in deinit vietato cancellare il pannello se si verifica un cambiamento di TF.

 
VladPro77:

Ho appena iniziato a capirlo, ho bisogno dell'aiuto dei professionisti.

Voglio usare l'indicatore stocastico incorporato per ricevere la notifica di un segnale (incrocio stocastico lento e veloce fuori dai confini 80/20)

Ho capito come ottenere i dati con iStochastic: scrivo il mio indicatore, chiamo iStochastic per le barre, lo analizzo e invio l'allarme.

Non capisco cosa fare in questa situazione: se uso un timeframe grande, per esempio 4 ore, allora una nuova barra apparirà alla fine del timeframe,

e l'indicatore viene chiamato per ricalcolare. Cioè il timeout è di 4 ore.

Ma voglio analizzare le informazioni costantemente, cioè appena il prezzo cambia (bid ask) ricalcolare lo stocastico e

se i criteri soddisfano la condizione che voglio essere notificato. Non voglio aspettare la fine del timeframe e la comparsa di una nuova candela.

Si prega di consigliare dove cercare e se è possibile implementare.

Forse non capisco completamente l'essenza dei processi e sto scavando nel posto sbagliato, sono un novizio).


// Инициализируем переменную для проверки
datetime time_svecha;        //время предыдущей свечи 
...

// В начале исполнительного кода проверяем на приход новой свечи:
if(iTime(NULL,PERIOD_CURRENT,0) == time_svecha) return;

...

// В конце исполнительного кода присваиваем время новой свечи 
time_svecha = iTime(NULL,PERIOD_CURRENT,0);
 
Potete dirmi cosa bisogna fare nel pannello di trading affinché possa funzionare nel tester in modo specifico nella modalità di visualizzazione. O è molto complicato?
 
Rustem71:
Potete dirmi cosa bisogna fare nel pannello di trading affinché possa funzionare nel tester in modo specifico nella modalità di visualizzazione. O è molto complicato?


Se per un indicatore, dovrebbe funzionare
Se è per Expert Advisors, gli eventi non accadono nello Strategy Tester (per Expert Advisors) e il timer non funziona...

Se funziona nel tester, allora il pannello è disegnato in modo diverso - chiedete agli oggetti (cambiati / spostati) e ridisegnati come necessario, reagite ai clic...
Inoltre, emulare il timer, se necessario.

 
Rustem71:


Grazie, ma non è proprio lo stesso)

Descrivo la seguente situazione.

1. Il timeframe si è concluso, si è formata una candela. L'indicatore viene ricalcolato, viene disegnato.

2. Inizia un nuovo periodo di tempo.( Non c'è unanuova candela fino alla sua fine). Bid e Ask cambiano durante questo lasso di tempo.

Voglio reagire a questi cambiamenti di prezzo (durante il timeframe corrente, la candela non è ancora formata).

Non si tratta nemmeno di disegnare le carte, ma di fissare il momento con una condizione. Voglio ricevere un avviso non appena gli stocastici hanno attraversato (mancano tre ore alla fine del timeframe e la condizione è soddisfatta ora).

E il grafico può essere disegnato quando il timeframe finisce.

Motivazione: