Voglio fare un'analisi di similarità nei dati forex.
Voglio dire, voglio trovare la barra di 1 ora più correlata (stesso o più simile valore in OHLC) alla barra di ULTIMA 1 ora (OHLC) nella storia di 20.000 barre (OHLC).
Il coefficiente di correlazione di Pearson è sufficiente per scoprire la somiglianza del valore dell'ultima barra nella storia di 20.000 barre? È possibile fare questa analisi in metatrader con uno script (o EA)?
Voglio fare un'analisi di similarità nei dati forex.
Voglio dire, voglio trovare la barra di 1 ora più correlata (stesso o più simile valore in OHLC) alla barra di ULTIMA 1 ora (OHLC) nella storia di 20.000 barre (OHLC).
Il coefficiente di correlazione di Pearson è sufficiente per scoprire la somiglianza del valore dell'ultima barra nella storia di 20.000 barre? È possibile fare questa analisi in metatrader con uno script (o EA)?
Puoi farlo con Pearson e trovare semplicemente la barra con il valore massimo di Pearson - puoi farlo per qualsiasi time frame e qualsiasi numero di barre poiché Pearson non è pesante per la CPU. Meglio farlo da un indicatore però (per evitare alcune operazioni di array)
Ciao Mladen,
Voglio fare un'analisi di similarità nei dati forex.
Voglio dire, voglio trovare la barra di 1 ora più correlata (stesso o più simile valore in OHLC) alla barra di ULTIMA 1 ora (OHLC) nella storia di 20.000 barre (OHLC).
Il coefficiente di correlazione di Pearson è sufficiente per scoprire la somiglianza del valore dell'ultima barra nella storia di 20.000 barre? È possibile fare questa analisi in metatrader con uno script (o EA)?
caro mlade:
faccio il mio primo indicatore MTF
ma il colore è nero
come risolvere il problema?
grazie mille
caro mlade:
faccio il mio primo indicatore MTF
ma il colore è nero
come risolvere il problema?
grazie mille
Ciao Mladen,
Voglio fare un'analisi di similarità nei dati forex.
Voglio dire, voglio trovare la barra di 1 ora più correlata (stesso o più simile valore in OHLC) alla barra di ULTIMA 1 ora (OHLC) nella storia di 20.000 barre (OHLC).
Il coefficiente di correlazione di Pearson è sufficiente per scoprire la somiglianza del valore dell'ultima barra nella storia di 20.000 barre? È possibile fare questa analisi in metatrader con uno script (o EA)?
Mladen,
Qualche commento su questo?
Mladen,
Qualche commento su questo?
Impostare la #proprietà indicator_color1 al colore desiderato (ora è impostato su Black)
signor mladen:
lo faccio ma ho solo un colore
ho bisogno di due colori per il mercato bull &bear
signor mladen:
lo faccio ma ho solo un colore
ho bisogno di due colori per il mercato bull &bear
Allora devi codificarlo in modo diverso (devi usare due buffer non solo uno per l'istogramma a due colori)
è corretto signore?
//+------------------------------------------------------------------+
//| MTF_xb4d.mq4 |
//|------------------------------------------------------------------+
#proprietà indicator_separate_window
#proprietà indicator_buffers 2
#property indicator_color1 LimeGreen
#proprietà indicator_width1 2
#proprietà indicator_color2 PaleVioletRed
#proprietà indicator_width2 2
//---- parametri di ingresso
/*************************************************************************
PERIODO_M1 1
PERIODO_M5 5
PERIODO_M15 15
PERIODO_M30 30
PERIODO_H1 60
PERIODO_H4 240
PERIODO_D1 1440
PERIODO_W1 10080
PERIODO_MN1 43200
Devi usare il valore numerico del timeframe che vuoi usare
quando impostate il valore di "TimeFrame" con gli input dell'indicatore.
---------------------------------------*/
extern int TimeFrame=0;
extern int period = 10;
extern int AppliedPrice=0;
extern bool SoundAlerts=false;
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//|funzione di inizializzazione dell'indicatore personalizzata
//+------------------------------------------------------------------+
int init()
{
//---- linea dell'indicatore
SetIndexStyle(0, DRAW_HISTOGRAM);
SetIndexStyle(1, DRAW_HISTOGRAM);
SetIndexBuffer(0, ExtMapBuffer1);
SetIndexBuffer(1, ExtMapBuffer1);
//---- nome per DataWindow e l'etichetta della sottofinestra dell'indicatore
switch(TimeFrame)
{
caso 1 : stringa TimeFrameStr="Period_M1"; break;
caso 5 : TimeFrameStr="Periodo_M5"; break;
caso 15 : TimeFrameStr="Periodo_M15"; break;
caso 30 : TimeFrameStr="Periodo_M30"; break;
caso 60 : TimeFrameStr="Periodo_H1"; break;
caso 240 : TimeFrameStr="Periodo_H4"; break;
caso 1440 : TimeFrameStr="Periodo_D1"; break;
caso 10080 : TimeFrameStr="Periodo_W1"; break;
caso 43200 : TimeFrameStr="Periodo_MN1"; break;
default : TimeFrameStr="Timeframe corrente";
}
IndicatorShortName(" MTF_xb4d ("+TimeFrameStr+" ) ");
return(0);
}
//----
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
datetime TimeArray[];
int i,limit,y=0,counted_bars=IndicatorCounted();
// Traccia il time frame definito sul time frame corrente
ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame);
limit= Bars-1;
for(i=0,y=0;i<limite;i++)
{
if (Time[i]<TimeArray[y]) y++;
/***********************************************************
Aggiungete il ciclo del vostro indicatore principale qui sotto. Potete fare riferimento a un
indicatore esistente con il suo iName o iCustom.
Regola 1: Aggiungi gli input esterni qui sopra per tutti i valori necessari
Regola 2: Usa 'TimeFrame' per il time frame dell'indicatore
Regola 3: Usa 'y' per il valore di spostamento del tuo indicatore
**********************************************************/
ExtMapBuffer1[i]=iCustom(Symbol(),TimeFrame, "xb4d",period,0,y);//iRSI(Symbol(),TimeFrame,period,AppliedPrice,y);
}
if(GlobalVariableGet(Symbol()+"previndicator")<0 && ExtMapBuffer1[0]>=0)
if(SoundAlerts){Alert("Buy Alert " + Symbol() + " [" + Period() + "] ");PlaySound("alert.wav");}
if(GlobalVariableGet(Symbol()+"previndicator")>=0 && ExtMapBuffer1[0]<0)
if(SoundAlerts){Alert("Sell Alert " + Symbol() + " [" + Period() + "] ");PlaySound("alert.wav");}
GlobalVariableSet(Symbol()+"previndicator",ExtMapBuffer1[0]);
return(0);
}
//+------------------------------------------------------------------+
è corretto signore?
//+------------------------------------------------------------------+
//| MTF_xb4d.mq4 |
//|------------------------------------------------------------------+
#proprietà indicator_separate_window
#proprietà indicator_buffers 2
#property indicator_color1 LimeGreen
#proprietà indicator_width1 2
#proprietà indicator_color2 PaleVioletRed
#proprietà indicator_width2 2
//---- parametri di ingresso
/*************************************************************************
PERIODO_M1 1
PERIODO_M5 5
PERIODO_M15 15
PERIODO_M30 30
PERIODO_H1 60
PERIODO_H4 240
PERIODO_D1 1440
PERIODO_W1 10080
PERIODO_MN1 43200
Devi usare il valore numerico del timeframe che vuoi usare
quando impostate il valore di "TimeFrame" con gli input dell'indicatore.
---------------------------------------*/
extern int TimeFrame=0;
extern int period = 10;
extern int AppliedPrice=0;
extern bool SoundAlerts=false;
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//|funzione di inizializzazione dell'indicatore personalizzata
//+------------------------------------------------------------------+
int init()
{
//---- linea dell'indicatore
SetIndexStyle(0, DRAW_HISTOGRAM);
SetIndexStyle(1, DRAW_HISTOGRAM);
SetIndexBuffer(0, ExtMapBuffer1);
SetIndexBuffer(1, ExtMapBuffer1);
//---- nome per DataWindow e l'etichetta della sottofinestra dell'indicatore
switch(TimeFrame)
{
caso 1 : stringa TimeFrameStr="Period_M1"; break;
caso 5 : TimeFrameStr="Periodo_M5"; break;
caso 15 : TimeFrameStr="Periodo_M15"; break;
caso 30 : TimeFrameStr="Periodo_M30"; break;
caso 60 : TimeFrameStr="Periodo_H1"; break;
caso 240 : TimeFrameStr="Periodo_H4"; break;
caso 1440 : TimeFrameStr="Periodo_D1"; break;
caso 10080 : TimeFrameStr="Periodo_W1"; break;
caso 43200 : TimeFrameStr="Periodo_MN1"; break;
default : TimeFrameStr="Timeframe corrente";
}
IndicatorShortName(" MTF_xb4d ("+TimeFrameStr+" ) ");
return(0);
}
//----
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
datetime TimeArray[];
int i,limit,y=0,counted_bars=IndicatorCounted();
// Traccia il time frame definito sul time frame corrente
ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame);
limit= Bars-1;
for(i=0,y=0;i<limite;i++)
{
if (Time[i]<TimeArray[y]) y++;
/***********************************************************
Aggiungete il ciclo del vostro indicatore principale qui sotto. Potete fare riferimento a un
indicatore esistente con il suo iName o iCustom.
Regola 1: Aggiungi gli input esterni qui sopra per tutti i valori necessari
Regola 2: Usa 'TimeFrame' per il time frame dell'indicatore
Regola 3: Usa 'y' per il valore di spostamento del tuo indicatore
**********************************************************/
ExtMapBuffer1[i]=iCustom(Symbol(),TimeFrame, "xb4d",period,0,y);//iRSI(Symbol(),TimeFrame,period,AppliedPrice,y);
}
if(GlobalVariableGet(Symbol()+"previndicator")<0 && ExtMapBuffer1[0]>=0)
if(SoundAlerts){Alert("Buy Alert " + Symbol() + " [" + Period() + "] ");PlaySound("alert.wav");}
if(GlobalVariableGet(Symbol()+"previndicator")>=0 && ExtMapBuffer1[0]<0)
if(SoundAlerts){Alert("Sell Alert " + Symbol() + " [" + Period() + "] ");PlaySound("alert.wav");}
GlobalVariableSet(Symbol()+"previndicator",ExtMapBuffer1[0]);
return(0);
}
//+------------------------------------------------------------------+
Sta mostrando i colori nel modo in cui volevi?
caro mladen:
ho trovato mtf di esso a https://www.forex-tsd.com/forum/debates-discussions/1131-multi-timeframe-indicators/page762#comment_1831838
grazie mille per il tuo aiuto a tutti i membri
Dio benedica la tua vita