Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 318

 
Vitaly Muzichenko:

:D


Grazie, buon uomo!

 

Qui è più dettagliato

 
Ras al Ghul:

O la tua variante è molto complicata, o non capisco il valore di cui parli...


Nella mia variante, il pezzo evidenziato è giurato:

'Array' - array richiesto.

Non mettiamo il valore dell'indicatore nell'array in questo modo?



Notate che ovviamente ci deve essere più di un valore nell'array per un calcolo corretto.Vitaly Muzichenko ha giustamente sottolineato l'errore, non lo ripeterò ancora una volta.

 
voron_026:

Sì, hai ragione. I rettangoli sono disegnati sulle stesse coordinate. Risolto il problema come segue:

Aggiunta la variabileTimeFrame, per cambiare rapidamente il timeframe calcolato

Beh, sì, è più o meno così.

Notate il segno di uguaglianzaUseDojiCandles.

if(UseDojiCandles == true && Doji() == 1 && New_Bar == true)
 
Aleksey Vyazmikin:

Sì, è più o meno così.

Notate il segno di uguaglianza diUseDojiCandles

Così si espande la risposta che c'è un confronto "==" e c'è un'assegnazione "="

 
Vitaly Muzichenko:

Così si espande la risposta, che c'è un confronto "==" e c'è un'assegnazione "=".


L'uomo lo sa chiaramente, ha solo fatto un errore di battitura.

 
Aleksey Vyazmikin:

L'uomo lo sa chiaramente, ha solo fatto un errore di battitura.


Sì, è vero, grazie per il suggerimento. Già corretto.

Andare avanti.

Agganciato il martello e il modello di martello invertito
 
voron_026:

Sì, è vero, grazie per il suggerimento. Già corretto.

Ci sto lavorando ora.

Ho collegato i modelli "Hammer" e "Inverted Hammer".

Ho un presupposto che modelli simili funzioneranno in modo diverso quando i prezzi si muovono a nord e a sud - penso che questo dovrebbe essere preso in considerazione quando li si interpreta.

 
  for(int i=0; i<limit; i++) {
    Last[i] = Symbol1_Vol*Vol1*iClose(Symbol1_Name,0,iBarShift(Symbol1_Name,0,Time[i])) - 
              Symbol2_Vol*Vol2*iClose(Symbol2_Name,0,iBarShift(Symbol2_Name,0,Time[i]));



 for(int i=0; i<limit; i++) {
    if(ButtonSt) { // кнопка выбора, отображать Bands, или Envelopes
     MA[i]=iMAOnArray(Last,0,Env_Period,0,MODE_SMA,i);
     LineUp[i]=iEnvelopesOnArray(Last,0,Env_Period,MODE_SMA,0,Env_Dev,MODE_UPPER,i);
     LineDn[i]=iEnvelopesOnArray(Last,0,Env_Period,MODE_SMA,0,Env_Dev,MODE_LOWER,i);
    } else {
     MA[i]=iMAOnArray(Last,0,BB_Period,0,MODE_SMA,i);
     LineUp[i]=iBandsOnArray(Last,0,BB_Period,BB_Dev,0,MODE_UPPER,i);
     LineDn[i]=iBandsOnArray(Last,0,BB_Period,BB_Dev,0,MODE_LOWER,i);
    }
  }

Tecnicamente, come farlo sembra essere chiaro.

for(int i=0; i<limit; i++) {
    RSI[i] = iRSI(Symbol(),TimeFrame,14,PRICE_CLOSE,i);
  }

for(int i=0; i<limit; i++) {
    BandsMn[i]=iBandsOnArray(RSI,0,BB_Period,BB_Dev,0,MODE_MAIN,i);
    BandsUp[i]=iBandsOnArray(RSI,0,BB_Period,BB_Dev,0,MODE_UPPER,i);
    BandsDn[i]=iBandsOnArray(RSI,0,BB_Period,BB_Dev,0,MODE_LOWER,i);
  }

Ma l'essenza del processo non è chiara:

Ad esempio, quale valore dovrebbe avere il limite e perché proprio quel valore?

A giudicare dalla variabile i alla fine delle funzioni indicatore, stiamo inserendo i dati con uno spostamento.

Cioè, il limite dovrebbe dipendere dal periodo dell'indicatore?


Grazie per la vostra attenzione e pazienza.

 
Ras al Ghul:

Tecnicamente, come farlo sembra essere chiaro.

Ma l'essenza del processo non è chiara:

Ad esempio, quale valore dovrebbe avere il limite e perché proprio quel valore?

A giudicare dalla variabile i alla fine delle funzioni indicatrici, introduciamo i dati con uno spostamento.

Cioè, il limite dovrebbe dipendere dal periodo dell'indicatore?


Grazie per la vostra attenzione e pazienza.

Limite - il numero di barre nel grafico; ha bisogno di visualizzare l'indicatore fino alla fine della storia quando si scorre la storia.