Ajuda na codificação - página 110

 

Hi,

preciso de dois indicadores, um é wpr(Williams' Percent Range) e seu ma (wpr com ma), o outro é cmo (chande momentum osc.)

e sua ma (cmo com ma),

alguém ajuda?

Obrigado

 
anonimm:
Hi,

preciso de dois indicadores, um é wpr(Williams' Percent Range) e seu ma (wpr com ma), o outro é cmo (chande momentum osc.)

e sua ma (cmo com ma),

alguém ajuda?

Obrigado

anonimm

Aqui está um WPR com uma média (ma)

Arquivos anexados:
wpr_ma.mq4  2 kb
 
mladen:
anonimmHere é um WPR com uma média (ma)

Obrigado, Mladen,

estou tentando o cmo's ma mas tenho erro (função iCMO não definida)... você pode ajudar...? cmo está anexado

//---- definições de indicadores

#janela_indicadora de propriedade_separarate_window

#property indicator_buffers 2

#indicador de propriedade_color1 Prata

#indicador de propriedade_color2 Vermelho

#largura_do_indicador de propriedade1 2

#largura_do_indicador de propriedade2 2

//---- parâmetros indicadores

externo int CMO_Period=21;

externo int MA_Period=14;

externa string m = "--Moving Average Types--";

cadeia externa m0 = " 0 = SMA";

cadeia externa m1 = " 1 = EMA";

corda externa m2 = " 2 = SMMA";

corda externa m3 = " 3 = LWMA";

externo int MA_Type=1;

//---- buffers indicadores

duplo CMO_Buffer[];

duplo MA_Buffer[];

duplo iCMO[];

em MA_Mode;

string strMAType;

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

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

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

int init()

{

//---- definições de desenho

SetIndexStyle(0,DRAW_LINE);

SetIndexStyle(1,DRAW_LINE);

SetIndexDrawBegin(1,CMO_Period);

IndicatorDigits(Dígitos+1);

//---- indicator buffers mapping

SetIndexBuffer(0,CMO_Buffer);

SetIndexBuffer(1,MA_Buffer);

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

interruptor (MA_Type)

{

caso 1: strMAType="EMA"; MA_Mode=MODE_EMA; break;

caso 2: strMAType="SMMA"; MA_Mode=MODE_SMMA; pausa;

caso 3: strMAType="LWMA"; MA_Mode=MODE_LWMA; pausa;

padrão: strMAType="SMA"; MA_Mode=MODE_SMA; pausa;

}

IndicatorShortName("CMO" + " (" + CMO_Period + ") " + " : " + strMAType+ " (" +MA_Period + ") ");

SetIndexLabel(0, "CMO" + " (" +CMO_Periodo + ") ");

SetIndexLabel(1,strMAType+ " (" + MA_Periodo + ") "); SetIndexLabel(1,strMAType+ " (" + MA_Periodo + ") ");

//---- inicialização feita

retorno(0);

}

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

//| Médias móveis Convergência/Divergência |

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

int start()

{

limite int;

int counted_bars=IndicatorCounted();

//---- última barra contada será recontada

if(counted_bars>0) counted_bars--;

limite=barras_contadas_à_barras;

//---- CMO contada no buffer 1-st

for(int i=0; i<limit; i++)

CMO_Buffer=iCMO(NULL,0,CMO_Periodo,i);

//---- Linha MA contada no buffer 2-nd

para(i=0; i<limite; i++)

MA_Buffer=iMAOnArray(CMO_Buffer,Bars,MA_Period,0,MA_Mode,i);

//---- feito

retorno(0);

}

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

Arquivos anexados:
cmo.mq4  6 kb
 

Mladen, você pode me ajudar a encontrar os erros?

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color2 Red

//----

double UpperBuf[];

double UpperBuf1[];

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

//| |

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

void init()

{

SetIndexStyle(0, DRAW_NONE, STYLE_SOLID, 1);

//----

SetIndexDrawBegin(0, N);

//----

SetIndexBuffer(0, UpperBuf);

SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 1);

//----

SetIndexDrawBegin(1, N);

//----

SetIndexBuffer(1, UpperBuf1);

}

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

//| |

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

void deinit()

{

//----

}

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

//| |

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

void start()

{

int counted = IndicatorCounted();

//----

if(counted < 0)

return (-1);

//----

if(counted > 0)

counted--;

int limit = Bars - counted;

//----

for(int i = 0; i < limit; i++)

{

UpperBuf= ((High/Close)-34)*Volume;

UpperBuf1= iMAOnArray(UpperBuf,0,33,0,MODE_EMA,i);

}

}

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

 
anonimm:
Obrigado, Mladen,

estou tentando o cmo's ma mas tenho erro (função iCMO não definida)... você pode ajudar...? cmo está anexado

//---- definições de indicadores

#janela_indicadora de propriedade_separarate_window

#property indicator_buffers 2

#indicador de propriedade_color1 Prata

#indicador de propriedade_color2 Vermelho

#largura_do_indicador de propriedade1 2

#largura_do_indicador de propriedade2 2

//---- parâmetros indicadores

externo int CMO_Period=21;

externo int MA_Period=14;

externa string m = "--Moving Average Types--";

cadeia externa m0 = " 0 = SMA";

cadeia externa m1 = " 1 = EMA";

corda externa m2 = " 2 = SMMA";

corda externa m3 = " 3 = LWMA";

externo int MA_Type=1;

//---- buffers indicadores

duplo CMO_Buffer[];

duplo MA_Buffer[];

duplo iCMO[];

em MA_Mode;

string strMAType;

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

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

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

int init()

{

//---- definições de desenho

SetIndexStyle(0,DRAW_LINE);

SetIndexStyle(1,DRAW_LINE);

SetIndexDrawBegin(1,CMO_Period);

IndicatorDigits(Dígitos+1);

//---- indicator buffers mapping

SetIndexBuffer(0,CMO_Buffer);

SetIndexBuffer(1,MA_Buffer);

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

interruptor (MA_Type)

{

caso 1: strMAType="EMA"; MA_Mode=MODE_EMA; break;

caso 2: strMAType="SMMA"; MA_Mode=MODE_SMMA; pausa;

caso 3: strMAType="LWMA"; MA_Mode=MODE_LWMA; pausa;

padrão: strMAType="SMA"; MA_Mode=MODE_SMA; pausa;

}

IndicatorShortName("CMO" + " (" + CMO_Period + ") " + " : " + strMAType+ " (" +MA_Period + ") ");

SetIndexLabel(0, "CMO" + " (" +CMO_Periodo + ") ");

SetIndexLabel(1,strMAType+ " (" + MA_Periodo + ") "); SetIndexLabel(1,strMAType+ " (" + MA_Periodo + ") ");

//---- inicialização feita

retorno(0);

}

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

//| Médias móveis Convergência/Divergência |

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

int start()

{

limite int;

int counted_bars=IndicatorCounted();

//---- última barra contada será recontada

if(counted_bars>0) counted_bars--;

limite=barras_contadas_à_barras;

//---- CMO contada no buffer 1-st

for(int i=0; i<limit; i++)

CMO_Buffer=iCMO(NULL,0,CMO_Periodo,i);

//---- Linha MA contada no buffer 2-nd

para(i=0; i<limite; i++)

MA_Buffer=iMAOnArray(CMO_Buffer,Bars,MA_Period,0,MA_Mode,i);

//---- feito

retorno(0);

}

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

Aqui você vai PS : é uma versão autônoma, não há necessidade do cmo

Arquivos anexados:
cmo_ma.mq4  2 kb
 
k3rn3l:
Mladen, você pode me ajudar a encontrar os erros?

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color2 Red

//----

double UpperBuf[];

double UpperBuf1[];

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

//| |

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

void init()

{

SetIndexStyle(0, DRAW_NONE, STYLE_SOLID, 1);

//----

SetIndexDrawBegin(0, N);

//----

SetIndexBuffer(0, UpperBuf);

SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 1);

//----

SetIndexDrawBegin(1, N);

//----

SetIndexBuffer(1, UpperBuf1);

}

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

//| |

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

void deinit()

{

//----

}

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

//| |

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

void start()

{

int counted = IndicatorCounted();

//----

if(counted < 0)

return (-1);

//----

if(counted > 0)

counted--;

int limit = Bars - counted;

//----

for(int i = 0; i < limit; i++)

{

UpperBuf= ((High/Close)-34)*Volume;

UpperBuf1= iMAOnArray(UpperBuf,0,33,0,MODE_EMA,i);

}

}

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

k3rn3l

Experimente assim :

#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 Red

double UpperBuf[];

double UpperBuf1[];

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

//| |

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

void init()

{

IndicatorBuffers(2);

SetIndexBuffer(0, UpperBuf1);

SetIndexBuffer(1, UpperBuf);

}

void deinit() {}

void start()

{

int counted = IndicatorCounted();

if(counted < 0) return (-1);

if(counted > 0) counted--;

int limit = Bars - counted;

for(int i = 0; i < limit; i++)

if (Close!=0)

UpperBuf= ((High/Close)-34)*Volume;

else UpperBuf= 0;

for( i = 0; i < limit; i++) UpperBuf1= iMAOnArray(UpperBuf,0,33,0,MODE_EMA,i);

}
 

Prezado Mladen;

Obrigado mais uma vez pelos indiciamentos wpr ma e cmo ma. Vamos supor que para o primeiro indiciado eu estabeleça o wpr per para a, ma per para b, e para o segundo indiciado cmo gama para c e ma per para d. Eu gostaria de comprar quando o wpr cruza sua ma (enquanto wpr> nível x) e cmo cruza sua ma (enquanto cmo> nível y) no MESMO MINUTO/BAR. (aqui é importante, duas condições têm que ocorrer ao mesmo tempo), e vender condições invertidas.

é possível?

 
anonimm:
Prezado Mladen;

Obrigado novamente pelos indiciamentos wpr ma e cmo ma. Vamos supor que para o primeiro indiciado eu estabeleça o wpr per para a, ma per para b, e para o segundo indiciado cmo gama para c e ma per para d. Eu gostaria de comprar quando o wpr cruza sua ma (enquanto wpr> nível x) e cmo cruza sua ma (enquanto cmo> nível y) no MESMO MINUTO/BAR. (aqui é importante, duas condições têm que ocorrer ao mesmo tempo), e vender condições invertidas.

isso é possível?

Sim

é possível

Use iCustom() para verificar as condições que você está procurando e as condições que você pode combinar a partir de qualquer número de indicadores personalizados que você usa em um único sinal.

 

Alguém pode me ajudar a consertar este indicador para mais de 950 lombadas?

Arquivos anexados:
 
YSCWL:
Alguém pode me ajudar a consertar este indicador para mais de 950 lombadas?

Experimente

Arquivos anexados:
Razão: