Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 753

 
Top2n:


Grazie! Se non vi dispiace un'altra domanda, come diavolo si fa a dividere un array bidimensionale in due, la logica si rompe, no?

Se volete dare un array bidimensionale da un indicatore, fate un buffer per ogni dimensione dell'array.

Il buffer 0 è la prima dimensione, il buffer 1 è la seconda dimensione.

E farli entrare nell'EA nel solito modo.

 
Artyom Trishkin:

Se volete dare un array bidimensionale da un indicatore, fate un buffer per ogni dimensione dell'array.

Il buffer 0 è la prima dimensione, il buffer 1 è la seconda dimensione.

E farli entrare nell'EA nel solito modo.


Grazie, ma se la dimensionalità è 1000*1000, allora non come.

Quindi come si divide un array bidimensionale in due?

Ho un array unidimensionale di dati su ogni barra

 
Top2n:


Grazie, ma se la dimensionalità è 1000*1000, allora niente da fare.

Quindi come fa a dividere un array bidimensionale in due?

Ho capito che su ogni barra c'è un array monodimensionale di dati

Perché è necessario calcolare tutto nell'indicatore per darlo in pasto all'Expert Advisor? Basta calcolare tutto nell'Expert Advisor - sarà più facile.
 
Artyom Trishkin:
Perché è necessario fare dei calcoli in un indicatore e poi passarli all'Expert Advisor? Basta calcolare tutto nell'Expert Advisor - sarà più facile.


Ho una classe che usa parametro&prezzo[]

OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
   sm.Solve(rates_total,prev_calculated,price);

Non posso aggirarlo nell'EA

 
Top2n:


Ho una classe che usa&price[] come parametro

Non posso aggirarlo nell'EA

Leggete attentamente la sezione "Accesso alle serie temporali e agli indicatori" della documentazione e tutto diventerà chiaro.

Puoi anche usare"SymbolInfoTick" per ottenere i prezzi negli EA.

Документация по MQL5: Доступ к таймсериям и индикаторам
Документация по MQL5: Доступ к таймсериям и индикаторам
  • www.mql5.com
Доступ к таймсериям и индикаторам - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Colleghi, buona giornata.

Ho letto circa 20 argomenti su MQL5 ma non ho trovato una risposta alla seguente domanda: dove posso trovare un codice di esempio di un semplice Expert Advisor MQL5 per il trading automatico FORTS?

Più semplice è l'EA, meglio è. Più semplice è l 'EA, meglio è.

Ho già un codice funzionante in MT5.


Ho lavorato in precedenza con Tranzac, AmiBroker e alcuni terminali IT. Mai lavorato con MetaTrader 4 o 5,

Ma ora Jus2Trade (apparentemente è una filiale di Finam) ha MT5 con accesso ai forti e ai futures americani.

Voglio provarlo su MT5, ma non riesco a trovare un esempio che funzioni correttamente. Tutti gli esempi sono per il forex.

Colleghi, fate un poke al link, per favore.

 
Alexey Viktorov:

Leggete attentamente la sezione "Accesso alle serie temporali e agli indicatori" della documentazione e vedrete tutto.

Puoi anche usare"SymbolInfoTick" per ottenere i prezzi negli EA.


Non capisco.
 

Brava gente, consigliate come bypassare questi parametri in un EA, non riesco a capire come utilizzare una classe personalizzata per un indicatore in un EA

sm.Solve(rates_total,prev_calculated,price);

Info: quando avvio l'indicatore uso la SMA, si applica a HL/2

 
Top2n:

Brava gente, consigliate come bypassare questi parametri in un EA, non riesco a capire come utilizzare una classe personalizzata per un indicatore in un EA

Info: uso SMA quando avvio l'indicatore, si applica a HL/2

Non ho bisogno di rates_total o prev_calculated nel mio EA. Passa su queste espressioni incomprensibili e premi F1, leggi cosa significano, forse allora diventerà più chiaro. Dopo tutto, tutte le azioni devono essere significative. Come si può fare qualcosa senza pensare a ciò che si pensa possa funzionare o meno? Come si può usare qualcosa senza capire cos'è?

Beh, immaginate che se volete piantare un chiodo, cercherete di farlo con un rastrello o un microscopio senza capire con cosa avete a che fare...

Se avete bisogno dei valori dell'indicatore iMA sulle ultime 2-3 barre, potete ottenerli tramite CopyBuffer da un handle dell'indicatore creato prima. Proprio lì, quando si crea un indicatore e si ottiene il suo handle

PREZZO_MEDIANO

Il prezzo mediano, (alto+basso)/2


E c'è un esempio assolutamente chiaro nella documentazione.

Документация по MQL5: Технические индикаторы / iMA
Документация по MQL5: Технические индикаторы / iMA
  • www.mql5.com
Технические индикаторы / iMA - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

Né tassi_totali né prev_calcolati sono necessari nell'EA. Passa su queste espressioni incomprensibili e premi F1, leggi cosa significano, forse allora diventerà più chiaro. Dopo tutto, tutte le azioni devono essere significative. Come si può fare qualcosa senza pensare a ciò che si pensa possa funzionare o meno? Come si può usare qualcosa senza capire cos'è?

Beh, immaginate che se volete piantare un chiodo, cercherete di farlo con un rastrello o un microscopio senza capire con cosa avete a che fare...

Se avete bisogno dei valori dell'indicatore iMA sulle ultime 2-3 barre, potete ottenerli tramite CopyBuffer da un handle dell'indicatore creato prima. Proprio lì, quando si crea un indicatore e si ottiene il suo handle

PREZZO_MEDIANO

Il prezzo mediano, (alto+basso)/2


E c'è un esempio assolutamente chiaro nella documentazione.


Ok, ho esagerato con i primi due rates_total e l'altro, ma invece di prece ->&aData[]. si dovrebbe integrare la classe, non gli indicatori attraverso copybuff

la classe è

//+------------------------------------------------------------------+
void  CSMA_Greed::Solve(const int aRatesTotal,const int aPrevCalc,const double  &aData[])
  {
   rt=aRatesTotal; prv=aPrevCalc;
   for(int i=0;i<m_max_period;i++)ArrayResize(d[i].m,rt);
   chsma.Solve(rt,prv,aData,d[m_max_period-1].m);

   for(int i=prv>m_max_period?prv:m_max_period;i<rt;i++)
     {
      temp=d[m_max_period-1].m[i]*m_max_period;
      for(int j=m_max_period-2;j>=0;j--)
        {
         temp-=aData[i-(j+1)];
         d[j].m[i]=temp/(j+1);
        }
     }
  };