Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 683
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Non li hai inizializzati all'inizio o da qualche altra parte, li hai solo dichiarati
Ho scritto prima di usare, cioè se avete le variabili SredRazmax, SredRazmin, Sredn come somme di valori di array, allora per calcolare correttamente la somma, dovete azzerare la variabile e poi aggiungere i valori di array e salvarli in questa variabile
cioè
E il secondo, quello che hai una domanda, nell'indicatore ogni tick chiameràOnCalculate() e significa che conterai costantemente i top di ZigZag ad ogni tick, cioè circa 40-60 volte al secondo.
Grazie, ma ho provato ad azzerarli e ho provato adusareOnStart invece diOnCalculate() , ivalori continuano a saltare e non mi è chiaro se ww=0 (il valore dell'array è sempre visualizzato), perché i valori saltano nel mezzo, come fare per non contare ogni tick e contare solo i valori dall'array?
Grazie, ma ho provato ad azzerarli e adusareOnStart invece diOnCalculate()
Non credo di poter spiegare perché succede così, la questione è che OnStart() è usato negli script e OnCalculate() è usato negli indicatori. Si dovrebbe capire la differenza tra script e indicatori in MQL.
Non mi è molto chiaro qual è il tuo compito? vuoi emettere i valori di cosa? nel codice, sommi i prezzi ai quali si trovano i picchi di ZigZag su tutto il grafico, nell'output scrivi "Average spread" e stampi il valore(SredRazmax-SredRazmin)/nn, e il calcolo viene eseguito per tutte le barre
perché avete bisogno dell'indicatore se non usate i buffer dell'indicatore per il disegno? nell'indicatore i buffer sono attaccati alle barre, e i loro valori si spostano non appena appare una nuova barra
Non credo di poter spiegare perché succede, il punto è che OnStart() è usato negli script, e OnCalculate() negli indicatori, bisogna capire come gli script differiscono dagli indicatori in MQL
Non mi è molto chiaro qual è il tuo compito? vuoi emettere i valori di cosa? nel codice, sommi i prezzi ai quali si trovano i picchi di ZigZag su tutto il grafico, nell'output scrivi "Average spread" e stampi il valore(SredRazmax-SredRazmin)/nn, e il calcolo viene eseguito per tutte le barre
Perché avete bisogno di un indicatore se non usate i buffer dell'indicatore per il disegno? nell'indicatore i buffer sono attaccati alle barre e i loro valori si muovono non appena appare una nuova barra
Ad essere onesti, ho semplificato il problema (la formula originale sembra un po' diversa), pensavo di capire perché i valori della media saltano quando il valore zero nell'array rimane costante. Ho due cicli, uno per riempire l'array, e l'altro per calcolare la media, c'è un limite di nn, e in realtà volevo produrre un grafico - è uno zig zag standard, ma iCustom lo sta disegnando di brutto, e la media... Dal nodo zero, se è più grande del precedente, si sottrae il nodo precedente e quello prima di esso (sarà segno meno, quindi va moltiplicato per meno 1) e tutto questo va sommato e diviso per un dato numero di nn nodi. Otteniamo la portata media dei vertici. Inoltre volevo ottenere altre medie per lo zigzag, ma sono rimasto bloccato con valori "saltellanti".
Questo è più o meno come era in origine:
Ad essere onesti ho solo semplificato il problema (in origine la formula sembra un po' diversa), pensavo di poter capire perché i valori della media saltano, se il valore zero nell'array rimane costante. Ho due cicli, uno per riempire l'array, e l'altro per calcolare la media, c'è un limite di nn, e in realtà volevo anche emettere un grafico - è un zig zag standard, ma iCustom lo disegna in modo incredibile, e la media... Dal nodo zero, se è più grande del precedente, si sottrae il nodo precedente e da quello precedente si sottrae quello precedente (avrà il segno meno, quindi va moltiplicato per meno 1) e tutto questo va sommato e diviso per un dato numero di nn. Otteniamo la portata media dei vertici. Inoltre volevo ottenere altre medie per lo zigzag, ma sono rimasto bloccato con valori "saltellanti".
Questo è approssimativamente come era in origine:
Non ci capisco molto, è tardi, ho sonno, l'ho modificato come l'ho visto, ho dei dubbi su come si comporterà l'indicatore su una barra zero (non ho controllato), ma disegna e visualizza i commenti secondo la tua formula
Potete aiutarmi a risolvere un problema come questo? (Se possibile.)
L'Expert Advisor emetterà un allarme in determinate condizioni. È possibile rendere attiva anche la finestra che ha fatto scattare l'allarme?
Potete aiutarmi a risolvere un problema come questo? (Se possibile.)
L'Expert Advisor emetterà un allarme in determinate condizioni. È possibile rendere attiva anche la finestra che ha fatto scattare l'allarme?
Ho qualche dubbio su come l'indicatore si comporterà su una barra zero (non ho controllato), ma disegna e usa la tua formula per emettere il commento.
Sì, grazie per il vostro tempo, funziona, devo aver sbagliato qualcosa. Ma non sta emettendo un array nel commento (ci dovrebbero essere solo vertici, giusto?) e conta male con meno e numero..., lo zigzag ha una diffusione diversa tra i vertici. L'idea è di sottrarre il precedente vertice più piccolo dall'ultimo più grande (che è appena formato), e dal precedente più piccolo sottrarre anche quello più grande e il numero sarà con segno meno, lo moltiplichiamo per (-1) e così via, e tutto questo viene sommato nn volte e diviso per nn, si ottiene la partenza media. Approssimativamente su 4 orologi questo sarebbe 1,69 (da a) su USDJPY. Inoltre volevo calcolare il numero di barre medie tra i top. Ora cercherò di capire il tuo codice, cosa ho sbagliato, perché non ha disegnato e perché non calcola correttamente...
Sì, grazie per il vostro tempo, funziona davvero, devo aver sbagliato qualcosa. Ma non emette l'array nel commento (dovrebbe avere solo vertici, giusto?) e conta male con meno e numero..., lo zigzag ha una diffusione diversa tra i vertici. L'idea è di sottrarre il precedente vertice più piccolo dall'ultimo più grande (che è appena formato), e dal precedente più piccolo sottrarre anche quello più grande e il numero sarà con segno meno, lo moltiplichiamo per (-1) e così via, e tutto questo viene sommato nn volte e diviso per nn, si ottiene la partenza media. Approssimativamente su 4 orologi questo sarebbe 1,69 (da a) su USDJPY. Inoltre volevo calcolare il numero di barre medie tra i top. Ora cercherò di capire il tuo codice, cosa ho sbagliato, perché non mi ha disegnato e perché non calcola correttamente...
I vertici nel commento non usciranno, perché il buffer indicatoreHZZ[] contiene valori copiati del buffer indicatore ZigZag, altrimenti non saremo in grado di disegnare, ho deliberatamente diviso in 2 condizioni di rilevamento dei vertici su e giù:
Se avetebisogno di conoscere diversi top in ZZ, allora dovete creare un altro array per memorizzare questi dati. Il nuovo buffer di indicatori lo complica, perché tutti gli array collegati ai buffer di indicatori "scivolano" insieme al grafico
ZS: il codice è il mio esempio, e penso che ha bisogno di loop alla 1a barra, e non a 0, ricalcolerà costantemente i valori di SredRazmax, non posso controllare ora, nessun terminale nel PC
I vertici nel commento non usciranno, perché il buffer indicatoreHZZ[] contiene valori copiati del buffer indicatore ZigZag, altrimenti non saremo in grado di disegnare, ho deliberatamente diviso in 2 condizioni di rilevamento dei vertici su e giù:
Se avetebisogno di conoscere diversi top in ZZ, allora dovete creare un altro array per memorizzare questi dati. Il nuovo buffer di indicatori lo complica, perché tutti gli array collegati ai buffer di indicatori "scivolano" insieme al grafico
SZY: il codice è il mio esempio, e penso che ha bisogno di loop alla 1a barra, e non a 0, ricalcolerà costantemente il valore di SredRazmax, non posso controllare ora, nessun terminale nel PC