Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 343

 
barabashkakvn:

Modifica del codice di calcolo

a

Cioè 13 o 12 o qualche altro numero - questo dovrebbe essere il parametro "Periodo". Periodo di mediazione

Urrà!

Grazie, ha funzionato. Perché questo parametro non è presente nell'indicatore originale? È preimpostato di default, lo sai?

Cioè, ho impostato solo il numero di barre per la media e nient'altro. Infatti questo è l'unico parametro nella fonte ed è usato nella formula.

Nell'ultima versione, ho due parametri. Numero di barre per la media e una per il calcolo dello SmoothFactor.

 
Alvin1976:

Urrà!

Grazie. Ma perché questo parametro non è presente nell'indicatore originale? Sapete se è prescritto di default?

Cioè, ho solo impostato il numero di barre per la media e questo è tutto. Infatti, nel codice sorgente, questo è l'unico parametro che viene utilizzato nella formula.

Nell'ultima versione, ho due parametri. Numero di barre per la media e una per il calcolo dello SmoothFactor.

Tutto è disponibile nel set. Vedere il codice dell'indicatore "***MQL5\Indicators\Examples\Custom Moving Average.mq5"
 
barabashkakvn:
Tutto è nella consegna. Vedere il codice dell'indicatore "***\MQL5\Indicators\Examples\Custom Moving Average.mq5".

È da lì che ho preso tutto :-). Credo di non capire .....

Eppure, per qualche motivo i valori EMA calcolati non si sommano a quelli originali.

Forse questo indicatore convertito in una funzione è disponibile da qualche parte?

 
Alvin1976:

È da lì che ho preso tutto :-). Credo di non capire .....

Voglio usarlo come maniglia e per qualche motivo i valori EMA calcolati non coincidono con quelli originali.

Forse da qualche parte c'è questo indicatore convertito in una funzione?

O forse è meglio creare in OnInit() dell'EA due handle dell'indicatore iMA con diversi tipi di smoothing e poi semplicemente ottenere i valori di questi indicatori?

 
barabashkakvn:

O forse è meglio creare due maniglie dell'indicatore iMA con diversi tipi di smoothing in OnInit() e poi semplicemente ottenere i valori di questi indicatori?

L'ho già provato. MQL5 produce alcune sciocchezze per le maniglie. Per esempio.

All'uscita della prima barra otteniamo valori variabili anche se la barra è già stata formata! Tutto funziona bene in MQL4 ma qui è orribile.

     MAvarage1[ns] = INVALID_HANDLE;                        //-----------------------------------
   for (int i=0;i<10;i++) //10 попыток создать индикатор
      {
       MAvarage1[ns]=iMA(Symbols[ns],DopTF2,MAper1[ns],0,MAmet2,PRICE_CLOSE);
       if (MAvarage1[ns] == INVALID_HANDLE) Sleep(1000);
      }
              //Проверим handle 
   if (MAvarage1[ns] == INVALID_HANDLE) 
   {
    Print("Ошибка при создании MAvarage1! (№", GetLastError(), ")");
    return;
   } 

  Recount=false;
  if (CopyBuffer(MAvarage1[ns],0,0,2,MA1)<1) Recount=true;
  if (Recount){
  Print("Ошибка при копировании из индикатора ! (№", GetLastError(), ")");
  return;   
  }
  Print("MA1[1]=",MA1[1]);
 
Alvin1976:

L'ho già provato. MQL5 produce alcune sciocchezze per le maniglie. Per esempio.

In questo modo, la prima barra emette valori variabili anche se la barra è già stata formata! Tutto funziona bene in MQL4 ma qui è orribile.

Forum sul trading, sistemi di trading automatico e test di strategia

Domande dai principianti

Nonho mai provato ad usare Handlestick nel trading, è troppo presto per usarlo.

O forse sarebbe meglio creare due maniglie di indicatori iMA con diversi tipi di smoothing in OnInit() dell'EA e poi semplicemente ottenere i valori di questi indicatori?


 

Ho già avuto molti problemi con il trasferimento del codice in MQL5. Per lo più il problema è con gli indicatori. La stocastica sta ottenendo dei valori "sinistri".

Ho deciso di calcolare i valori da solo.

Ho bisogno di MQL5 solo per la velocità di ottimizzazione e per il controllo della modalità multicurrency. Questo è tutto!

Non è utile per nient'altro. Spero che nessun centro di spaccio utilizzerà mai questa "meraviglia".

Ho capito i valori delle variabili! Si scopre che CopyBuffer inverte l'ordine degli indici!

Perché dovrei farlo?

 

Alvin1976:

...Aaah con i valori variabili capiti! CopyBuffer sta invertendo l'ordine degli indici!

Perché lo faccio?

Non voglio chiedere all'indicatore ciò di cui non ha bisogno... Immaginate di arrivare in un'edicola. E vuoi un po' di giornale per gli ultimi 3 giorni... E loro dicono, venderemo il tuo giornale, ma solo per gli ultimi 20 giorni... Ne hai bisogno? :-)
 
denkir:
Se vuoi evitare di chiedere all'indicatore ciò che non ti serve... Immaginate di arrivare in un'edicola. E avete bisogno di un giornale degli ultimi 3 giorni. E loro dicono: "Possiamo venderti il tuo giornale, ma solo per gli ultimi 20 giorni...". Ne hai bisogno? :-)

Beh, anche in MQL4 non c'è bisogno di chiedere troppo. Non si tratta della quantità, ma dell'ordine.

Dov'è la logica? Tutti si sono abituati al fatto che l'elemento zero della matrice è la barra corrente. Perché dovresti cambiare qualcosa ????.

P.S. Risolto tramite ArraySetAsSeries.

Tumbling .....

 
Alvin1976:

Beh, anche in MQL4 non c'è bisogno di chiedere troppo. Non si tratta della quantità, ma dell'ordine.

Dov'è la logica? Tutti si sono abituati al fatto che l'elemento zero della matrice è la barra corrente. Perché dovresti cambiare qualcosa ????.

P.S. Risolto tramite ArraySetAsSeries.

Ballare con il tamburello.....

Non è il tamburello, sono le innovazioni a cui dovrete abituarvi. E queste innovazioni renderanno il compito più facile in alcuni casi. Non chiedete esempi, non ne parlerò.