Discussione sull’articolo "Indicatori Personalizzati in MQL5 per Principianti"

 

Il nuovo articolo Indicatori Personalizzati in MQL5 per Principianti è stato pubblicato:

Qualsiasi nuovo argomento sembra complicato e difficile da imparare per un principiante. Gli argomenti che conosciamo ci sembrano molto semplici e chiari. Ma semplicemente non ricordiamo che tutti devono studiare qualcosa da zero, persino la nostra lingua madre. Lo stesso avviene con il linguaggio di programmazione MQL5 che offre ampie possibilità di sviluppare le proprie strategie di trading: puoi iniziare a impararlo dalle nozioni di base e dagli esempi più semplici. L'interazione di un indicatore tecnico con il client terminal MetaTrader 5 viene considerata in questo articolo sull'esempio del semplice indicatore personalizzato SMA.

Si noti che dopo la dichiarazione di questi parametri di input ci sono commenti e questi commenti saranno visibili come nomi di parametri di input nella finestra "Proprietà" dell'indicatore:


Nel nostro caso, questi nomi sono molto più chiari dei nomi delle variabili dell'indicatore. Quindi, questi commenti dovrebbero essere semplici.

Autore: Nikolay Kositsin

 
Articolo molto interessante per chi inizia..... Spero che altri come questo.... grazie
 
Scritto e raccontato con la A. Dopo averlo letto, vorrete creare qualcosa di vostro. Non è molto interessante riscrivere il codice ogni volta e gli autori di MQL5, rendendosene conto, hanno creato una vasta libreria di funzioni integrate. Eccone una:

int iMA(
string symbol, // nome del simbolo
ENUM_TIMEFRAMES period, // periodo
int ma_period, // periodo di mediazione
int ma_shift, // spostamento orizzontale dell'indicatore
ENUM_MA_METHOD ma_method, // tipo di lisciatura
ENUM_APPLIED_PRICE applied_price // tipo di prezzo o di handle
);
con il quale si può ottenere lo stesso risultato. Ma. Come ottenere applied_price quando si utilizza la forma breve int OnCalculate(). In altre parole, come ottenere i valori nella scheda "Parametri" quando si inizializza l'indicatore?

Grazie.

 
grazie. spiegazione molto chiara per i principianti come me. in attesa del prossimo articolo ...
 

Grazie. È molto chiaro e utile per i principianti.

 

if(prev_calculated==0) // verifica il primo avvio dell'indicatore
first=MAPeriod-1+begin; // indice di avvio per tutte le barre
else first=prev_calculated-1; // indice di avvio per le nuove barre

when first=MAPeriod-1+begin; qual è la barra corrente? [0] o [rates_total]?

when first=prev_calculated-1; è un numero elevato, occorre ripetere il calcolo?

 
Nell'articolo " Indicatori personalizzati in MQL5 per principianti" si dice: "È meglio usare l'ordine crescente [piuttosto che l'ordine inverso] negli indicatori". Ma se il programma continua a girare, alla fine tenderà all'infinito, cioè il buffer (intero) per i numeri di indice si esaurirà presto, non è vero? Come si gestisce questo problema?
Custom Indicators in MQL5 for Newbies
  • 2010.03.03
  • Nikolay Kositsin
  • www.mql5.com
Any new subject seems complicated and hard-to-learn for a newbie. Subjects that we know seem very simple and clear to us. But we simply do not remember, that everyone has to study something from scratch, and even our native language. The same is with the MQL5 programming language that offers wide possibilities of developing one's own trading strategies - you can start learning it from basic notions and simplest examples. Interaction of a technical indicator with the MetaTrader 5 client terminal is consider in this article on the example of the simple custom indicator SMA.
 

Grazie per l'articolo! Materiale molto utile per un principiante e
per chi sta passando da un'altra lingua.

 

Tradotto al computer? Accontentatevi.

Rispetto a MQL4, i pedici dell'array di metriche sono calcolati dal passato e sono fissi, non dinamici. Mi chiedo cosa succeda quando lo si esegue per una settimana o un mese. I dati sono tutti in memoria? Se sono tutti in memoria, non sarà sempre più lento?

Tuttavia, all'indirizzo https://www.mql5.com/zh/articles/31中又说:

  1. "L'impostazione dell'indice di un elemento come sequenza è la stessa di MQL4" - Cosa significa? Nel nostro esempio, utilizziamo l'indice dell'elemento come una serie temporale. In altre parole, la colonna corrente (non ancora formata) ha sempre l'indice [0], quella precedente (già formata) ha l'indice [1] e così via.

La maggior parte degli esempi di MQL4 utilizza un array di indici con corrente come 0, mentre la maggior parte degli esempi di MQL5 utilizza un array di indici con un pedice passato come 0.

MQL5 初学者:EA 交易技术指标使用指南
MQL5 初学者:EA 交易技术指标使用指南
  • 2013.09.04
  • Sergey Pavlov
  • www.mql5.com
为在EA 交易中获得内置或自定义指标的值,首先应使用相应函数创建指标的处理函数。本文中的示例说明了在创建自己的程序时如何使用技术指标。在本文中说明的指标使用 MQL5 语言构建。本文的目标受众是那些在交易策略开发上不具备太多经验的读者,并旨在通过使用提供的函数库提供简单明了的指标使用方式。
 
DxdCn:

Tradotto al computer? Accontentatevi.

Rispetto a MQL4, i pedici dell'array di metriche sono calcolati dal passato e sono fissi, non dinamici. Mi chiedo cosa succeda quando lo si esegue per una settimana o un mese. I dati sono tutti in memoria? Se sono tutti in memoria, non sarà sempre più lento?

Tuttavia, su https://www.mql5.com/zh/articles/31中又说:

  1. "L'impostazione dell'indice di un elemento come sequenza è la stessa di MQL4" - cosa significa? Nel nostro esempio, utilizziamo l'indice dell'elemento come una serie temporale. In altre parole, la colonna corrente (non ancora formata) ha sempre l'indice [0], quella precedente (già formata) ha l'indice [1] e così via.

La maggior parte degli esempi MQL4 utilizza un array di indicatori con l'indice corrente pari a 0, mentre la maggior parte degli esempi MQL5 utilizza un array di indicatori con pedici con l'indice passato pari a 0.

La funzione ArraySetAsSeries() deve essere utilizzata in MQL5 per convertire gli array dinamici (allocando la memoria per memorizzare i valori più recenti in direzione dell'indice più grande) in una forma di serie temporale, vale a dire che i dati più recenti sono memorizzati all'indice 0, i successivi dati più recenti sono memorizzati all'indice 1 e così via, con i dati più recenti memorizzati all'indice 0 per sempre.

Leggere con la funzione copybuffer (), dalla posizione dell'indice 0 per iniziare a leggere a ritroso gli elementi dell'array, leggere quanti della propria definizione sulla riga.

 

Nicholas!

Puoi dirmi perché quando provo a riempire un array di indicatori in un ciclo usando la formula Mass[ i ]= Mass[ i+1]+A; dove A è una variabile, la compilazione passa senza errori, ma quando si attacca alla finestra, appare il messaggio array out of range (fuori dalla dimensione dell'array)?