Ajuda na codificação - página 689

 

Olá, Mladen,

Eu quero fazer alguma análise de similaridade em dados forex.

Quero dizer, quero descobrir a barra de 1 hora mais relacionada (mesmo valor ou valor mais similar em OHLC) à última barra de 1 hora(OHLC) na história de 20.000 bar(OHLC).

É Pearson coef. de correlação suficiente para descobrir a similaridade do valor da última barra no histórico de 20.000 barras? É possível fazer esta análise em metatradervith um script(ou EA) ?Obrigado.

 

querida mlade:

eu faço meu primeiro indicador MTF

mas a cor é preta

como consertá-lo?

Muito obrigado.

Arquivos anexados:
MTF xb4d.mq4  4 kb
xb4d.mq4  4 kb
 
bilbao:

querida mlade:

eu faço meu primeiro indicador MTF

mas a cor é preta

como consertá-lo?

Muito obrigado.

Ajuste o indicador de propriedade_cor1 para a cor desejada (agora ele está ajustado para Preto)
 
nevar:

Olá, Mladen,

Eu quero fazer alguma análise de similaridade em dados forex.

Quero dizer, quero descobrir a barra de 1 hora mais relacionada (mesmo valor ou valor mais similar em OHLC) à última barra de 1 hora(OHLC) na história de 20.000 bar(OHLC) .

É Pearson coef. de correlação suficiente para descobrir a similaridade do valor da última barra no histórico de 20.000 barras? É possível fazer esta análise em metatradervith um script(ou EA) ?Obrigado.

Mladen,

Algum comentário sobre isso?

 
nevar:

Mladen,

Algum comentário sobre isso?

Você pode fazer isso com Pearson e simplesmente encontrar a barra com o valor máximo de Pearson - você pode fazer isso para qualquer período de tempo e qualquer número de barras, uma vez que Pearson não é pesado na CPU. Mas é melhor fazer isso a partir de um indicador (a fim de evitar algumas operações de array)
 
mladen:
Ajuste o indicador de propriedade_cor1 para a cor desejada (agora ele está ajustado para Preto)

mr mladen:

eu o faço, mas só tenho uma cor

eu preciso de duas cores para o mercado de bull &bear

 
bilbao:

mr mladen:

eu o faço, mas só tenho uma cor

eu preciso de duas cores para o mercado de bull &bear

Então você tem que codificá-lo de forma diferente (você tem que usar dois buffers e não apenas um para o histograma de duas cores)
 
mladen:
Então você tem que codificá-lo de forma diferente (você tem que usar dois buffers e não apenas um para o histograma de duas cores)

está correto, senhor?

//+------------------------------------------------------------------+

//| MTF_xb4d.mq4 |

//|------------------------------------------------------------------+


#janela_indicadora de propriedade_separarate_window

#property indicator_buffers 2

#indicador de propriedade_color1 LimeGreen

#largura_do_indicador de propriedade1 2

#indicador de propriedade_color2 PaleVioletRed

#largura_do_indicador de propriedade2 2

//---- parâmetros de entrada

/*************************************************************************

PERÍODO_M1 1

PERÍODO_M5 5

PERÍODO_M15 15

PERÍODO_M30 30

PERÍODO_H1 60

PERÍODO_H4 240

PERÍODO_D1 1440

PERÍODO_W1 10080

PERÍODO_MN1 43200

Você deve usar o valor numérico do período de tempo que você deseja usar

quando você define o valor do TimeFrame com as entradas do indicador.

---------------------------------------*/

tempo interno externo=0;

período int externo = 10;

extern int Preço Aplicado=0;

Exterior Bool SoundAlerts=false;

duplo ExtMapBuffer1[];

//+------------------------------------------------------------------+

//| Função de inicialização do indicador personalizado |

//+------------------------------------------------------------------+

int init()

{

//---- linha indicadora

SetIndexStyle(0, DRAW_HISTOGRAM);

SetIndexStyle(1, DRAW_HISTOGRAM);

SetIndexBuffer(0, ExtMapBuffer1);

SetIndexBuffer(1, ExtMapBuffer1); SetIndexBuffer(1, ExtMapBuffer1);

//---- nome para DataWindow e subwindow label do indicador

switch(TimeFrame)

{

caso 1 : string TimeFrameStr="Period_M1"; pausa;

caso 5 : TimeFrameStr="Period_M5"; pausa;

caso 15 : TimeFrameStr="Period_M15"; pausa;

caso 30 : TimeFrameStr="Period_M30"; pausa;

caso 60 : TimeFrameStr="Period_H1"; pausa;

caso 240 : TimeFrameStr="Period_H4"; pausa;

caso 1440 : TimeFrameStr="Period_D1"; pausa; caso 1440 : TimeFrameStr="Period_D1"; pausa;

case 10080 : TimeFrameStr="Period_W1"; pausa;

case 43200 : TimeFrameStr="Period_MN1"; pausa;

padrão : TimeFrameStr="Current Timeframe";

}

IndicatorShortName(" MTF_xb4d ("+TimeFrameStr+" ) ");

return(0);

}

//----

//+------------------------------------------------------------------+

//| |

//+------------------------------------------------------------------+

int start()

{

dataHoraTempoeArray[];

int i,limit,y=0,counted_bars=IndicatorCounted();

// Horário definido de plotagem sobre o período de tempo atual

ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame);

limite= Bars-1;

for(i=0,y=0;i<limite;i++)

{

se (Tempo[i]<TimeArray[y]) y++;

/***********************************************************

Adicione seu principal laço indicador abaixo. Você pode fazer referência a um

com seu iName ou iCustom.

Regra 1: Adicionar entradas externas acima para todos os valores necessários

Regra 2: Usar 'TimeFrame' para o período de tempo do indicador

Regra 3: Use "y" para o valor do seu indicador de turno

**********************************************************/

ExtMapBuffer1[i]=iCustom(Symbol(),TimeFrame, "xb4d",period,0,y);//iRSI(Symbol(),TimeFrame,period,Applied Price,y);

}

if(GlobalVariableGet(Symbol()+"previndicator")<0 && ExtMapBuffer1[0]>=0)

if(SoundAlerts){Alert("Alerta de compra" + Símbolo() + " [" + Período() + "] ");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);

}

//+------------------------------------------------------------------+

 
bilbao:

está correto, senhor?

//+------------------------------------------------------------------+

//| MTF_xb4d.mq4 |

//|------------------------------------------------------------------+


#janela_indicadora de propriedade_separarate_window

#property indicator_buffers 2

#indicador de propriedade_color1 LimeGreen

#largura_do_indicador de propriedade1 2

#indicador de propriedade_color2 PaleVioletRed

#largura_do_indicador de propriedade2 2

//---- parâmetros de entrada

/*************************************************************************

PERÍODO_M1 1

PERÍODO_M5 5

PERÍODO_M15 15

PERÍODO_M30 30

PERÍODO_H1 60

PERÍODO_H4 240

PERÍODO_D1 1440

PERÍODO_W1 10080

PERÍODO_MN1 43200

Você deve usar o valor numérico do período de tempo que você deseja usar

quando você define o valor do TimeFrame com as entradas do indicador.

---------------------------------------*/

tempo interno externo=0;

período int externo = 10;

extern int Preço Aplicado=0;

Exterior Bool SoundAlerts=false;

duplo ExtMapBuffer1[];

//+------------------------------------------------------------------+

//| Função de inicialização do indicador personalizado |

//+------------------------------------------------------------------+

int init()

{

//---- linha indicadora

SetIndexStyle(0, DRAW_HISTOGRAM);

SetIndexStyle(1, DRAW_HISTOGRAM);

SetIndexBuffer(0, ExtMapBuffer1);

SetIndexBuffer(1, ExtMapBuffer1); SetIndexBuffer(1, ExtMapBuffer1);

//---- nome para DataWindow e subwindow label do indicador

switch(TimeFrame)

{

caso 1 : string TimeFrameStr="Period_M1"; pausa;

caso 5 : TimeFrameStr="Period_M5"; pausa;

caso 15 : TimeFrameStr="Period_M15"; pausa;

caso 30 : TimeFrameStr="Period_M30"; pausa;

caso 60 : TimeFrameStr="Period_H1"; pausa;

caso 240 : TimeFrameStr="Period_H4"; pausa;

caso 1440 : TimeFrameStr="Period_D1"; pausa; caso 1440 : TimeFrameStr="Period_D1"; pausa;

case 10080 : TimeFrameStr="Period_W1"; pausa;

case 43200 : TimeFrameStr="Period_MN1"; pausa;

padrão : TimeFrameStr="Current Timeframe";

}

IndicatorShortName(" MTF_xb4d ("+TimeFrameStr+" ) ");

return(0);

}

//----

//+------------------------------------------------------------------+

//| |

//+------------------------------------------------------------------+

int start()

{

dataHoraTempoeArray[];

int i,limit,y=0,counted_bars=IndicatorCounted();

// Horário definido de plotagem sobre o período de tempo atual

ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame);

limite= Bars-1;

for(i=0,y=0;i<limite;i++)

{

se (Tempo[i]<TimeArray[y]) y++;

/***********************************************************

Adicione seu principal laço indicador abaixo. Você pode fazer referência a um

com seu iName ou iCustom.

Regra 1: Adicionar entradas externas acima para todos os valores necessários

Regra 2: Usar 'TimeFrame' para o período de tempo do indicador

Regra 3: Use "y" para o valor do seu indicador de turno

**********************************************************/

ExtMapBuffer1[i]=iCustom(Symbol(),TimeFrame, "xb4d",period,0,y);//iRSI(Symbol(),TimeFrame,period,Applied Price,y);

}

if(GlobalVariableGet(Symbol()+"previndicator")<0 && ExtMapBuffer1[0]>=0)

if(SoundAlerts){Alert("Alerta de compra" + Símbolo() + " [" + Período() + "] ");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);

}

//+------------------------------------------------------------------+

Está mostrando as cores do jeito que você queria?
 
mladen:
Está mostrando as cores do jeito que você queria?

querida mladen:

encontro mtf dele em https://www.forex-tsd.com/forum/debates-discussions/1131-multi-timeframe-indicators/page762#comment_1831838

muito obrigado por sua ajuda a todos os membros

Deus abençoe sua vida

Razão: