Erros, bugs, perguntas - página 797

 
sergeev:

É isto?


Tenho duas perguntas.

- porque mudou o cálculo de quádruplo no código?

- O que é que este indicador mostra? como negociar com ele?

É isto mesmo.

- Eu não o mudei. Transferi tudo um a um. Em vez de f-i no código de quatro, utilizo os valores de matrizes MA previamente calculados a partir de médias móveis lentas e rápidas de OPEN, CLOSE, HIGH, LOW em cinco, novamente multiplicando por coeficientes apropriados de instrumentos.

Por exemplo, o código TOTAL de um quatro:

if (Symbol() == "EURUSD"){
               OPEN=EUR(Mode,PRICE_OPEN,i,per1,per2)-USD(Mode,PRICE_OPEN,i,per1,per2);
               HIGH=EUR(Mode,PRICE_HIGH,i,per1,per2)-USD(Mode,PRICE_HIGH,i,per1,per2);
               LOW=EUR(Mode,PRICE_LOW,i,per1,per2)-USD(Mode,PRICE_LOW,i,per1,per2);
               CLOSE=EUR(Mode,PRICE_CLOSE,i,per1,per2)-USD(Mode,PRICE_CLOSE,i,per1,per2);
...
 pair[i]=(OPEN+HIGH+LOW+CLOSE)/4;

Aqui está um dos EUR f-i's que utilizo em vez disso em fives (ver abaixo) - calcular imediatamente as fórmulas dentro dele. É tudo um-para-um:

double EUR(int Mode, int Price, int i, int per1, int per2){
   return(
            (iMA("EURUSD",0,per2,0,Mode,Price,i)-
            iMA("EURUSD",0,per1,0,Mode,Price,i))*10000*kUSD
            +
            (iMA("EURGBP",0,per2,0,Mode,Price,i)-
            iMA("EURGBP",0,per1,0,Mode,Price,i))*10000*kGBP
            +
            (iMA("EURJPY",0,per2,0,Mode,Price,i)-
            iMA("EURJPY",0,per1,0,Mode,Price,i))*100*kJPY
          ); 

Em cinco este cálculo será assim - sem funções, como em quatro, mas directamente por arrays previamente calculados:

if (Symbol() == "EURUSD")
        {     
// ----  OPEN=EUR(Mode,PRICE_OPEN,i,per1,per2)-USD(Mode,PRICE_OPEN,i,per1,per2);          
         OPEN=((OPEN_F_EURUSD[i]-OPEN_S_EURUSD[i])*10000*kUSD+(OPEN_F_EURGBP[i]-OPEN_S_EURGBP[i])*10000*kGBP+(OPEN_F_EURJPY[i]-OPEN_S_EURJPY[i])*100*kJPY -
               (OPEN_S_EURUSD[i]-OPEN_F_EURUSD[i])*10000*kEUR+(OPEN_S_GBPUSD[i]-OPEN_F_GBPUSD[i])*10000*kGBP+(OPEN_F_USDJPY[i]-OPEN_S_USDJPY[i])*100*kJPY);
               
// ----  HIGH=EUR(Mode,PRICE_HIGH,i,per1,per2)-USD(Mode,PRICE_HIGH,i,per1,per2);              
         HIGH=((HIGH_F_EURUSD[i]-HIGH_S_EURUSD[i])*10000*kUSD+(HIGH_F_EURGBP[i]-HIGH_S_EURGBP[i])*10000*kGBP+(HIGH_F_EURJPY[i]-HIGH_S_EURJPY[i])*100*kJPY -
               (HIGH_S_EURUSD[i]-HIGH_F_EURUSD[i])*10000*kEUR+(HIGH_S_GBPUSD[i]-HIGH_F_GBPUSD[i])*10000*kGBP+(HIGH_F_USDJPY[i]-HIGH_S_USDJPY[i])*100*kJPY);
               
// ----  LOW=EUR(Mode,PRICE_LOW,i,per1,per2)-USD(Mode,PRICE_LOW,i,per1,per2);
         LOW=((LOW_F_EURUSD[i]-LOW_S_EURUSD[i])*10000*kUSD+(LOW_F_EURGBP[i]-LOW_S_EURGBP[i])*10000*kGBP+(LOW_F_EURJPY[i]-LOW_S_EURJPY[i])*100*kJPY -
               (LOW_S_EURUSD[i]-LOW_F_EURUSD[i])*10000*kEUR+(LOW_S_GBPUSD[i]-LOW_F_GBPUSD[i])*10000*kGBP+(LOW_F_USDJPY[i]-LOW_S_USDJPY[i])*100*kJPY);
               
// ---   CLOSE=EUR(Mode,PRICE_CLOSE,i,per1,per2)-USD(Mode,PRICE_CLOSE,i,per1,per2);
         CLOSE=((CLOSE_F_EURUSD[i]-CLOSE_S_EURUSD[i])*10000*kUSD+(CLOSE_F_EURGBP[i]-CLOSE_S_EURGBP[i])*10000*kGBP+(CLOSE_F_EURJPY[i]-CLOSE_S_EURJPY[i])*100*kJPY -
               (CLOSE_S_EURUSD[i]-CLOSE_F_EURUSD[i])*10000*kEUR+(CLOSE_S_GBPUSD[i]-CLOSE_F_GBPUSD[i])*10000*kGBP+(CLOSE_F_USDJPY[i]-CLOSE_S_USDJPY[i])*100*kJPY);
         }
      
      pair[i]=(OPEN+HIGH+LOW+CLOSE)/4;    

- O efeito cumulativo dos movimentos de vários símbolos, as diferenças de MA rápido e lento dos símbolos OPEN, HIGH, LOW, CLOSE são tomados. São somados e divididos por quatro tendo em conta os coeficientes dos multiplicadores das diferenças de MA rápido e lento dos instrumentos que também estão sujeitos a optimização.

Para negociar: 1. atravessando a linha zero + Diferente (distância do zero para filtrar entradas falsas) de baixo para cima, depois para comprar, de cima para baixo, depois para vender. Ver Consultor Especialista no reboque.

2. em linhas de inflexão: se houver uma inflexão abaixo de zero, então comprar, se houver uma inflexão acima de zero desta linha de diferença cumulativa de instrumentos de MA, então vender (esta opção ainda não está disponível no EA).

Quero utilizar ou a primeira ou a segunda opção no Campeonato.

Arquivos anexados:
 

Exibição incorrecta de gráficos (Modo Barras).

Quando o terminal é iniciado, a exibição dos símbolos do indicador buffer é significativamente compensada em relação às imagens das barras com as quais se relacionam.

construir 687

Também no modo de visualização, quando um gráfico está em movimento, os símbolos tampão indicadores estão a mover-se atrás das barras correspondentes com um atraso muito forte e visível.

 
R0MAN:

- Eu não o mudei. Transferi tudo um para um.

O seu resultado não é o mesmo.

Não compreendo por que razão se agrupam sempre mqh

. Fixei o código em ordem. Adicionei duas classes

CSeries - uma classe que serve 4 arrays e 4 buffers + são definidos em INDICATOR_CALCULATION
CPair - uma classe que serve duas CSeries - Fast e Slow.

E as funções USD/JPY/EUR/GBP + início transferido como no MT4


Eu comparei os resultados com o MT4 - um-para-um - coincidem completamente

Cerveja por conta da casa :)


Quero utilizar ou a primeira ou a segunda opção no Campeonato.

Tem algum resultado lucrativo?

Arquivos anexados:
 

e este é o tipo de indicador que estava originalmente a tentar fazer

Arquivos anexados:
 
sergeev:

1. os seus resultados não coincidem.

Não sei porque tem sempre mqh no seu kit.

De qualquer forma, limpei o código. Acrescentei duas classes

CSeries - uma classe, que serve 4 matrizes e 4 buffers + são definidos no INDICADOR_CALCULATION
CPair - uma classe que serve duas CSeries - Fast e Slow.

E funções USD/JPY/EUR/GBP + início deslocado como em MT4


2. Comparei os resultados com o MT4 - um-para-um - são idênticos.

Cerveja por conta da casa :)

3. tem algum resultado lucrativo?


1. Oh! obrigado do fundo do meu coração! Ainda não o analisei. É iCustom - empresta-se a si próprio?

Não uma coruja num cinco. Tenho esta indicação há séculos - no arquivo.

2. cirurgião com o seu MASD - inspirado! Ele está a fazer todos os ultra-sons neuro-multi-espectra-ultra-ul com os seus 11 ofícios. :-)

É assim que ele costuma ser. Agora, se o iCustom se adequa às minhas necessidades, vou colocar os sinais em corujas e enlouquecer!

3. Enquanto não houver coruja no calcanhar... É emprestado ao iCustom? - Preciso dos seus valores na primeira, segunda, terceira barra (para codificar duas condições para entrar no mercado: passagem zero e (ou) ponto de inflexão acima/abaixo do zero).

4. "Deves-me uma cerveja :-) + escrito numa mensagem pessoal.

 
R0MAN:

3. Enquanto não houver coruja no calcanhar... É emprestado ao iCustom? - necessitam dos seus valores da primeira, segunda, terceira barra (para codificar duas condições de entrada no mercado: passagem zero e (ou) ponto de inflexão acima/abaixo do zero).

tudo é alimentado pelo iCustom.
 
Rosh:
A depuração não está disponível no testador
Há alguns planos? A depuração online é de pouca utilidade devido a condições não reproduzíveis.
 
Lembre-me, como posso obter um indicador para aparecer automaticamente na janela do gráfico, que é aberta depois de correr no testador? Acho que não precisava de fazer nada antes.
 
marketeer:
A depuração em linha tem pouca utilidade porque as condições são irreproduzíveis.

Há uma carta como essa. É grande e ousada.

Há alguns planos?

Não creio que a MetaQuotes tenha o entusiasmo de cruzar entre um testador e um depurador, o que é compreensível - a tarefa é tortuosa.

As ideias sobre"servidor virtual" vagueiam por aí - está mais próximo da realidade, especialmente se a introdução de dados arbitrários (com velocidade arbitrária) for permitida. Mas é também uma opção que coloca muita ênfase nas metaquotas (aparentemente, por várias razões ao mesmo tempo).

Mas mais maneiras são possíveis. Alguma coisa em terceiro lugar. Algo como um "microtester" mesmo no debugger. Definimos um par, especificamos pontos de ruptura, lançamo-lo e voilá. Passe-o através do depurador. Com paragens nos pontos de paragem e possibilidade de investigar passo a passo e começar "mais", até à conclusão do "período de depuração".

Mais ou menos.

// Mas isto é tudo especulação minha/pensamento em voz alta. Talvez Stringo venha a pensar noutra coisa.

Mas algo tem de ser feito, isso é certo.

 

MetaDriver:

Há algumas ideias a flutuar sobre o "servidor virtual" - está mais próximo da realidade, especialmente se permitir a introdução arbitrária de dados (a uma velocidade arbitrária). Mas é também uma opção que coloca muita pressão sobre as metaquotas (aparentemente, por várias razões ao mesmo tempo).

Ai, algo me parece que um testador com depuração seria mais realista, e nem sequer se deve sonhar nesta direcção.