Pergunte! - página 169

 

Indicador de gráfico off-line

Kalenzo:
Não há nada de especial que você precise codificar dentro do indicador. Basta arrastar e soltar o indicador do nagivator para o gráfico offline e ele funcionará. Experimente-o primeiro com os dados normais disponíveis com metatrader, por exemplo eurusd. Se o indicador funcionar no eurusd e não funcionar na NYSE então significa que o indicador conta algo de forma errada e precisa ser corrigido/ajustado (por exemplo, talvez precise ser arredondado ou durante os cálculos ele gera erro como divisão zero).

Oi Kalenzo,

Obrigado por sua resposta. Os indicadores da plataforma MT4 funcionam muito bem. É um indicador personalizado que um indivíduo codificado que não funciona. No código, os símbolos da moeda são notados. Eu estava me perguntando se preciso mudar os símbolos dos pares de moedas GBPUSD para o símbolo da NYSE? Eu também queria saber como funcionam os indicadores. Quais dados em que pasta os indicadores funcionam, se os indicadores que foram originalmente instalados na plataforma ou você faz o download gratuito de um indicador codificado personalizado?

Obrigado!!

 
winsumloosesum:
Olá Kalenzo,

Obrigado por sua resposta. Os indicadores da plataforma MT4 funcionam muito bem. É um indicador personalizado que um indivíduo codificado que não funciona. No código, os símbolos da moeda são notados. Eu estava me perguntando se preciso mudar os símbolos dos pares de moedas GBPUSD para o símbolo da NYSE? Eu também queria saber como funcionam os indicadores. Quais dados em que pasta os indicadores funcionam, se os indicadores que foram originalmente instalados na plataforma ou você faz o download gratuito de um indicador codificado personalizado?

Obrigado!!

Olá!

Sim, definitivamente você precisa verificar o código do indicador. Se seu indicador não estiver usando a função Symbol() (ou valor NULL em vez de símbolo onde ele é necessário), então é o problema para 100%. Normalmente o indicador transforma os dados a partir do gráfico ao qual estão anexados, portanto, por que os indicadores MT4 originais funcionam. Entretanto, nos indicadores personalizados é possível obter dados de outros símbolos/tempo e depois é preciso especificar manualmente quais dados se deseja utilizar. Por exemplo, você pode usar EURUSD como base e usar também GBPUSD e USDCHF como alguns outros parâmetros para o cálculo.

Você precisa verificar o código indicador e mudar os símbolos para NYSE que você deseja calcular. Então, funcionará bem.

 

Mais uma vez obrigado por sua ajuda

Obrigado novamente por toda a sua ajuda.

 

Problema de depuração

Escrevo um EA básico para entender o funcionamento dos indicadores, mas tive alguma surpresa. Primeiro com a repintura indy e agora com o indy muito básico.

Para entender os números, uso uma função de impressão() para imprimir valores no relatório de registro durante um backtest. Mas a função de impressão parece perturbar a impressão do registro e eu perco uma grande parte do registro. removendo a impressão e o registro está completo com todas as ordens!

Alguma idéia? Aqui um extrato do meu código

//----+ DEFININDO SINAIS PARA O COMÉRCIO

if (kline[1] < Level_Up) // under treshold

if (kline[0] > dline[0]) // Sinal principal sobreposto

se (kline[0] > kline[1]) // Principal deve subir

se (dline[0] > 0 ) { //Sinal deve permanecer no nível zero < dline[1]) { // Previous Main under Signal so we crossed up

BUY_Sign = verdadeiro;

se (Debug) {

Impressão ("Longopen K0 ",DoubleToStr(kline[0],Digitos)", K1 ",DoubleToStr(kline[1],Digitos),

" K2 ",DoubleToStr(kline[2],Dígitos), "K3 ",DoubleToStr(kline[3],Dígitos));

Print (" D0 ",DoubleToStr(dline[0],Digitos)," D1 ",DoubleToStr(dline[1],Digitos)," D2 ",DoubleToStr(dline[2],Digitos),

" D3 ",DoubleToStr(dline[3],Dígitos));

}

}

Obrigado por ajudar

Marcel

 

Por favor, ajudem!! Não sou um programador, mas estou dando o meu melhor aqui. Qualquer conselho sobre por que meu indicador não funciona seria muito apreciado!!

Obrigado de antemão

#janela_indicadora de propriedade_separarate_window

#property indicator_buffers 4

#indicador de propriedade_color1 LimeGreen

#indicador de propriedade_color2 FireBrick

#indicador de propriedade_color3 Verde

#indicador de propriedade_cores4 Vermelho

#largura_do_indicador de propriedade1 2

#largura_do_indicador de propriedade2 2

#largura_do_indicador de propriedade3 2

#largura_do_indicador de propriedade4 2

//---------------------------------------------------------------------indicator parameters

externo int FastEMA=12;

externo int SlowEMA=26;

extern int SignalSMA=9;

//---------------------------------------------------------------------indicator buffers

OsmaBuffer duplo[];

duplo Spm;

duplo Smm;

duplo SpmaBuffer1;

duplo Spmaks2;

duplo Smmin1;

duplo Smmin2;

duplo nou[];

duplo ver[];

duplo OsMAUP[];

duplo OsMADOWN[];

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

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

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

int init()

{

//-------------------------------------------------------------------- 2 buffers adicionais são usados para a contagem.

IndicatorBuffers(4);

//--------------------------------------------------------------------drawing settings

SetIndexStyle(0,DRAW_HISTOGRAM);

SetIndexBuffer(0,OsMAUP);

SetIndexStyle(1,DRAW_HISTOGRAM);

SetIndexBuffer(1,OsMADOWN);

SetIndexStyle(2,DRAW_ARROW);

SetIndexArrow(2,159);

SetIndexBuffer(2,Spmaks1);

SetIndexStyle(3,DRAW_ARROW);

SetIndexArrow(3,159);

SetIndexBuffer(3,Smmin1);

SetIndexDrawBegin(0,SignalSMA);

IndicatorDigits(Dígitos+2);

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

IndicatorShortName("OsMA Marius("+FastEMA+", "+SlowEMA+", "+SignalSMA+")")

//-------------------------------------------------------------------initialization done

retorno(0);

}

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

//| Média Móvel do Oscilador |

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

int start()

{

limite int;

int counted_bars=IndicatorCounted();

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

if(counted_bars>0) counted_bars--;

limite=barras_contadas_à_barras;

//-------------------------------------------------------------------Main Loop

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

{

OsmaBuffer=iOsMA(NULL,0,FastEMA,SlowEMA,SignalSMA,PRICE_WEIGHTED,i);

nou = OsmaBuffer;

ver = OsmaBuffer;

if(OsmaBuffer > 0)

{

OsMAUP = OsmaBuffer;

OsMADOWN = 0;

}

senão

{

OsMADOWN = OsmaBuffer;

OsMAUP = 0;

}

//-------------------------------------------------------------------Cross Down

se ((nou0))

{

Spmaks1 = Spmaks2;

if(Spmaks2 > 0)

{

Spmaks2 = 0;

}

}

//-------------------------------------------------------------------Cross Up

se ((nou>0)&&(ver<0))

{

Smmin1 = Smmin2;

if(Smmin2 < 0)

{

Smmin2 = 0;

}

}

//-------------------------------------------------------------------During Swing

if(ver > 0)

{

Spm = ver;

if((nou > ver) ||| (nou == ver))

{

Spm = nou;

}

if((Spm > Spmaks2) ||| (Spm == Spmaks2))

{

Spmaks2 = Spm;

}

}

senão

{

Smm = ver;

if((nou < ver) ||| (nou == ver))

{

Smm = nou;

}

if((Smm < Smmin2) ||| (Smm == Smmin2))

{

Smmin2 = Smm;

}

}

}

//--------------------------------------------------------------------done

retorno(0);

}

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

 

Como traçar a linha entre as últimas 20 barras

Eu tenho uma pergunta!

Eu quero ter um indicador sobre a média móvel.

Ele sempre traça a linha entre as últimas 20 barras

Mas eu não sei como escrevê-lo

Espero que você possa me ajudar e oferecer um indicador como este.

Muito obrigado!

 

Paz a todos,

Espero que tudo esteja bem c/ todos.

Minha pergunta é bastante simples para aqueles qualificados na área de programação:

Eu tinha um e.a. profissionalmente criado para mim, usando 3 indicadores em seu estado bruto. É um sistema de 4 estratégias codificadas em um e.a. onde os 3 indicadores são comercializados em combinações variadas. Apenas um pouco de história, mas esta parte é na verdade irrelevante.

Os 3 indicadores utilizam dois buffers cada um e a única variável que todos eles tinham era "CountBars". Como eles estavam em um estado em que não eram otimizáveis, sendo que a única opção ajustável era "CountBars", tive a brilhante idéia de usar o algoritmo de Jurik como uma espécie de pré-processamento. Dessa forma, pude manter o indicador em estado bruto, ou seja, reagindo rapidamente, mas com vários "soluços", enquanto adicionava um fator de suavização que ainda é muito responsivo e, simultaneamente, de baixa defasagem. Assim, pedi a um membro conhecido desta diretoria para me ajudar com aquela parte do projeto, o que eles fizeram e sem falhas eu poderia acrescentar. Entretanto, como eles foram além do dever, eu não queria pedir que me fizessem mais favores, ou seja, que trocassem as novas versões alisadas da Jurik dos mesmos indicadores no lugar de seus subordinados em bruto.

Dito isto, pensei: "Como poderia ser difícil", pensei que eu mesmo sabia o suficiente para fazê-lo. Basta mudar os nomes sendo chamados nas 3 instâncias iCustom, adicionar as novas variáveis na parte "externa", bem como na parte iCustoms, (agora os versos smthd JRK dos indicadores ainda usam 2 buffers, mas eles têm uma variável extra, 2 no total: "SmoothLength" e "SmoothPhase". "CountBars" foi removido) e Voila!! Se ao menos fosse assim tão fácil. Eu fiz essas coisas e as compilei, sem erros/avisos. Entretanto, quando tento fazer o teste de retrocesso/avançado, não há troca.....

Estou perdendo alguma coisa? Todo e qualquer conselho será muito apreciado.

 

Bizzzzzump!

 
forex_for_life:
Paz a todos,

Espero que tudo esteja bem c/ todos.

Minha pergunta é bastante simples para aqueles qualificados na área de programação:

Eu tinha um e.a. profissionalmente criado para mim, usando 3 indicadores em seu estado bruto. É um sistema de 4 estratégias codificadas em um e.a. onde os 3 indicadores são comercializados em combinações variadas. Apenas um pouco de história, mas esta parte é na verdade irrelevante.

Os 3 indicadores utilizam dois buffers cada um e a única variável que todos eles tinham era "CountBars". Como eles estavam em um estado em que não eram otimizáveis, sendo que a única opção ajustável era "CountBars", tive a brilhante idéia de usar o algoritmo de Jurik como uma espécie de pré-processamento. Dessa forma, pude manter o indicador em estado bruto, ou seja, reagindo rapidamente, mas com vários "soluços", enquanto adicionava um fator de suavização que ainda é muito responsivo e, simultaneamente, de baixa defasagem. Assim, pedi a um membro conhecido desta diretoria para me ajudar com aquela parte do projeto, o que eles fizeram e sem falhas eu poderia acrescentar. Entretanto, como eles foram além do dever, eu não queria pedir que me fizessem mais favores, ou seja, que trocassem as novas versões alisadas da Jurik dos mesmos indicadores no lugar de seus subordinados em bruto.

Dito isto, pensei: "Como poderia ser difícil", pensei que eu mesmo sabia o suficiente para fazê-lo. Basta mudar os nomes sendo chamados nas 3 instâncias iCustom, adicionar as novas variáveis na parte "externa", bem como na parte iCustoms, (agora os versos smthd JRK dos indicadores ainda usam 2 buffers, mas eles têm uma variável extra, 2 no total: "SmoothLength" e "SmoothPhase". "CountBars" foi removido) e Voila!! Se ao menos fosse assim tão fácil. Eu fiz essas coisas e as compilei, sem erros/avisos. Entretanto, quando tento fazer o teste de retrocesso/avançado, não há troca.....

Está me faltando alguma coisa? Todo e qualquer conselho será muito apreciado.

Olá Ffl,

Experimente iCustom(NULL,0," nome do indicador" SmoothLength,SmoothPhase,0,1) para comprar e iCustom(NULL,0," nome do indicador" SmoothLength,SmoothPhase,1,1), para vender basta mudar o "nome do indicador" para o indicador que você está tentando chamar.

 
mrtools:
Olá Ffl,Experimente iCustom(NULL,0," nome do indicador" SmoothLength,SmoothPhase,0,1) para comprar e iCustom(NULL,0," nome do indicador" SmoothLength,SmoothPhase,1,1), para vender basta mudar o "nome do indicador" para o indicador que você está tentando chamar.

Paz Sr. T,

Obrigado pela orientação. Eu fiz essas mudanças com base em sua sugestão e E.A. ainda compila sem erros/avisos, mas também ainda não coloca nenhuma negociação. Tentarei mais um trabalho em breve.....

Razão: