Ajuda na codificação - página 761

 
oguz:

mladen,

"simples (ema regularizado) EA 1.3" estava ativo em 5 paridades diferentes ao mesmo tempo das 10h às 21h, mas não abriu nenhuma ordem!

Há algum problema nesta ema para abrir ordens?

P.S: Eles eram (ecn-pro) tabela de demonstração do tickmill.

Oi oguz

Está trabalhando como deve ser, mas plz sempre tenta explicar seu problema exatamente, se possível com fotos ilustrativas, pelo menos faça seu trabalho que lhe pertence como o tempo é mais importante para cada pessoa.

cumprimentos


 
mntiwana:
Oi oguz

Está trabalhando como deve ser, mas plz sempre tenta explicar seu problema exatamente, se possível com fotos ilustrativas, pelo menos faça seu trabalho que lhe pertence como o tempo é mais importante para cada pessoa.

cumprimentos


Prezado @mntiwana

O problema é simples, ao nível da minha estupidez!

Eu pensava que este botão era apenas uma mensagem de informação! Considerando que ele estava fazendo aquele especialista On-Enable / Off-Disable!

Quando eu vi a cor do botão em seu gráfico, ele estava vermelho!

Obrigado por seus gráficos :)

 
Prezado Mladen,

Eu tento calcular a diferença MA3 - MA1 dada pelo seguinte código:
      for(int i=limit - 1; i>=0; i--)
      {  
        double MA1, MA2, MA3, MA4;
 
        buffer[i] = EMPTY_VALUE;

        MA1 = iCustomMa(MAType1,getPrice(pr_open,Open,Close,High,Low,i),MAPeriod,i,0);
        MA2 = iCustomMa(MAType1,getPrice(pr_close,Open,Close,High,Low,i),MAPeriod,i,0);
 
        MA3 =  iMA(NULL,0,MAPeriod,0,MAType2,PRICE_OPEN,i);
        MA4 =  iMA(NULL,0,MAPeriod,0,MAType2,PRICE_CLOSE,i);

        buffer[i] = MA3 - MA1;
      }
onde MAType1 = iEMA(...), MAType2 = MODE_EMA. Para o laço acima, a diferença MA3 - MA1
é substancialmente diferente de 0,0. Entretanto, quando comento MA2:
      for(int i=limit - 1; i>=0; i--)
      {  
        double MA1, MA2, MA3, MA4;
 
        buffer[i] = EMPTY_VALUE;

        MA1 = iCustomMa(MAType1,getPrice(pr_open,Open,Close,High,Low,i),MAPeriod,i,0);
      //  MA2 = iCustomMa(MAType1,getPrice(pr_close,Open,Close,High,Low,i),MAPeriod,i,0);
 
        MA3 =  iMA(NULL,0,MAPeriod,0,MAType2,PRICE_OPEN,i);
        MA4 =  iMA(NULL,0,MAPeriod,0,MAType2,PRICE_CLOSE,i);

        buffer[i] = MA3 - MA1;
      }
a diferença MA3 - MA1 é exatamente igual a 0,0 (como esperado).
Não consigo entender tal comportamento, por favor, ajude-me; parece um bug, ou coisa parecida...
 
wojtekpaul:
Prezado Mladen,

Eu tento calcular a diferença MA3 - MA1 dada pelo seguinte código:
      for(int i=limit - 1; i>=0; i--)
      {  
        double MA1, MA2, MA3, MA4;
 
        buffer[i] = EMPTY_VALUE;

        MA1 = iCustomMa(MAType1,getPrice(pr_open,Open,Close,High,Low,i),MAPeriod,i,0);
        MA2 = iCustomMa(MAType1,getPrice(pr_close,Open,Close,High,Low,i),MAPeriod,i,0);
 
        MA3 =  iMA(NULL,0,MAPeriod,0,MAType2,PRICE_OPEN,i);
        MA4 =  iMA(NULL,0,MAPeriod,0,MAType2,PRICE_CLOSE,i);

        buffer[i] = MA3 - MA1;
      }
onde MAType1 = iEMA(...), MAType2 = MODE_EMA. Para o laço acima, a diferença MA3 - MA1
é substancialmente diferente de 0,0. Entretanto, quando comento MA2:
      for(int i=limit - 1; i>=0; i--)
      {  
        double MA1, MA2, MA3, MA4;
 
        buffer[i] = EMPTY_VALUE;

        MA1 = iCustomMa(MAType1,getPrice(pr_open,Open,Close,High,Low,i),MAPeriod,i,0);
      //  MA2 = iCustomMa(MAType1,getPrice(pr_close,Open,Close,High,Low,i),MAPeriod,i,0);
 
        MA3 =  iMA(NULL,0,MAPeriod,0,MAType2,PRICE_OPEN,i);
        MA4 =  iMA(NULL,0,MAPeriod,0,MAType2,PRICE_CLOSE,i);

        buffer[i] = MA3 - MA1;
      }
a diferença MA3 - MA1 é exatamente igual a 0,0 (como esperado).
Não consigo entender tal comportamento, por favor, ajude-me; parece um bug, ou coisa parecida...
Você está aplicando preço aberto na primeira chamada para ma personalizada e depois preço fechado na segunda chamada para ma personalizada - e você está fazendo isso na mesma instância da ema. Você não pode fazer isso. Você está misturando maçãs com pêras. Para cada preço (ou valor) diferente, utilize uma instância diferente da ma personalizada.

Declare duas instâncias de ma personalizada e depois faça o seguinte :

for(int i=limit - 1; i>=0; i--)
{  
        double MA1, MA2, MA3, MA4;

        buffer[i] = EMPTY_VALUE;

        MA1 = iCustomMa(MAType1,getPrice(pr_open,Open,Close,High,Low,i),MAPeriod,i,0);
        MA2 = iCustomMa(MAType1,getPrice(pr_close,Open,Close,High,Low,i),MAPeriod,i,1);

        MA3 =  iMA(NULL,0,MAPeriod,0,MAType2,PRICE_OPEN,i);
        MA4 =  iMA(NULL,0,MAPeriod,0,MAType2,PRICE_CLOSE,i);

        buffer[i] = MA3 - MA1;
}
E então elas serão exatamente as mesmas (MA1 a MA3 e MA2 a MA4)
 
sim, você é um gênio. :)
 
wojtekpaul:

Desculpe por uma pergunta estúpida, mas como declarar as duas instâncias?

A função original 'custom ma' é declarada com int instanceNo=0,

e se eu definir o parâmetro como 1 ao chamar a função no código,

Eu não recebo nada...

verificar as substâncias no código :)
 
mladen:

Declare duas instâncias de ma

Desculpe por uma pergunta estúpida, mas como declarar duas instâncias?

A função original 'custom ma' é declarada com int instanceNo=0,

e se eu definir o parâmetro como 1 ao chamar a função no código,

Eu não recebo nada (embora agora não interfira na função com

a instância 0)...

 

OK, obrigado, ainda preciso aprender muito :-)))


EDIT: OK, agora eu vejo - maInstâncias estão na nova versão dos MAs

(por exemplo, em BB para novo formato), mas eles parecem estar ausentes

na versão antiga (onde cerca de 20 MAs estão disponíveis).

 
wojtekpaul:

OK, obrigado, ainda preciso aprender muito :-)))


EDIT: OK, agora eu vejo - maInstâncias estão na nova versão dos MAs

(por exemplo, em BB para novo formato), mas eles parecem estar ausentes

na versão antiga (onde cerca de 20 MAs estão disponíveis).

As versões antigas não tinham a capacidade de múltiplas instâncias
 
Olá todos e obrigado por todos a ajuda que você trouxe foi este fórum eu gostaria de você perguntou se era possível a colocou aseta que tem em este indicador diretamente em axml-ph
Arquivos anexados: