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
A me non permette di compilare il file.
Non so se c'è qualche idea su cosa stia succedendo.
Grazie,
Jordi
Grazie!
Di seguito è riportato un semplice esempio che ho messo insieme giocando.
Se è sbagliato, vi prego di correggermi e lo modificherò.
Quello che trovo strano è che i valori non sembrano corrispondere a una semplice media mobile sul grafico.
################### In uno script
int period = 21; // La media mobile a 21 barre
int sampleSize = 100; /Questo è il numero di barre di dati che si desidera recuperare
int handle = iCustom(Symbol(),0, "Examples\Custom Moving Average",
periodo,// Periodo
0, // Offset
MODE_SMA, // Metodo di calcolo
PRICE_CLOSE // Calcolo sui prezzi di chiusura
);
void OnTick()
{
// Questo è l'array in cui verranno copiate le medie mobili.
// Ogni elemento è un valore di media mobile
// Il primo elemento di questo array (elemento in posizione 0) è il più recente
// L'ultimo elemento è l'ultimo elemento dell'array ArraySize() - 1
double movingAverageValues[];
ArraySetAsSeries(movingAverageValues, true);
if (CopyBuffer(handle,0,0,sampleSize,movingAverageValues) < 0){Print("Errore CopyBufferMA1 =",GetLastError());}
double currentMovingAverage = movingAverageValues[0];
double earliestMovingAverage = movingAverageValues[ArraySize(movingAverageValues) - 1];
################################# In un EA (NOTA: OnInit e OnTick)
int OnInit(){
int period = 21; // La media mobile a 21 barre
int sampleSize = 100; /Questo è il numero di barre di dati che si desidera recuperare
int handle = iCustom(Symbol(),0, "Examples\Custom Moving Average",
period, // Periodo
0, // Offset
MODE_SMA, // Metodo di calcolo
PRICE_CLOSE // Calcolo sui prezzi di chiusura
);
}
OnTick()
{
// Questo è l'array in cui verranno copiate le medie mobili.
// Ogni elemento è un valore di media mobile
// Il primo elemento di questo array (elemento in posizione 0) è il più recente
// L'ultimo elemento è l'ultimo elemento dell'array ArraySize() - 1
double movingAverageValues[];
ArraySetAsSeries(movingAverageValues, true);
if (CopyBuffer(handle,0,0,sampleSize,movingAverageValues) < 0){Print("Errore CopyBufferMA1 =",GetLastError());}
double currentMovingAverage = movingAverageValues[0];
double earliestMovingAverage = movingAverageValues[ArraySize(movingAverageValues) - 1];
}
Ottimo articolo