Pergunte! - página 95

 

A resposta curta é Não.

Como sempre, a barra 0 é temporalmente incompleta tanto para EAs quanto para indicadores, e seu alto, baixo, próximo e volume são quase certamente diferentes de como eles acabam quando a barra completa e se torna barra 1. Mais exatamente, o valor de StochRSICurr no final da barra diária só é conhecido no primeiro tick da próxima barra diária (e mais tarde). Acho que você mesmo presta um mau serviço tentando usar os valores da barra 0, já que estes, com poucas exceções, refletem apenas o estado parcial da barra incompleta.

Tanto quanto sei, o indicador é invocado no momento da primeira chamada iCustom com a combinação particular do valor do parâmetro, durante cada invocação da função EA start(). As sucessivas chamadas iCustom durante uma chamada de função de início de EA, para o mesmo indicador, com a mesma configuração de valor de parâmetro, reutiliza qualquer que seja a primeira chamada produzida. A próxima função start() da EA, novamente chamando iCustom, invocará novamente o indicador, no contexto do tick que fez com que a função start fosse invocada.

Assim, aos olhos do indicador, ele é invocado uma vez para cada tick que a EA permite que ele seja invocado. Ao dizer a um MA para usar um preço aberto ou alto preço etc., ele só muda quais valores de barra ele observa, enquanto a forma de invocação permanecerá a mesma: ele é invocado a cada tick (que o EA permite).

 
 

Por favor, me ajude

Olá a todos,

Ninguém quer me ajudar. Eu coloco mais uma vez meu problema e, por favor, me ajude.

Só quero entender por que o resultado não é o mesmo com as duas maneiras de codificar o mesmo indicador (veja o código e a figura).

Manuel

Arquivos anexados:
 

retrocesso lento

Só queria dizer obrigado a Ralph Ronnquist. Agora eu tenho essa parte funcionando corretamente.

Tenho outra pergunta para qualquer pessoa que possa ajudar. Quando eu tento usar o Strategy Tester com meu EA, ele é extremamente lento. Sei que funciona, pois obtenho alguns resultados, mas preciso deixá-lo ligado durante a noite para obter 3 meses de resultados.

Meu EA é baseado na tendência diária usando o Stochastic RSI crossing (teste) e depois apenas a ação do preço. Quais poderiam ser as principais razões de ser tão lento. Está na programação ou é porque estou chamando um indicador externo ou é que o Stochastic RSI engole muita energia.

Eu executo muitas outras EA e todas elas são muito mais rápidas do que as minhas. Meu sistema é muito potente com 3GB de Ram e processador Intel Centrino Duo.

Quaisquer sugestões de idéias serão bem-vindas.

Putz

 

Como escrever

Olá Codificadores

sou totalmente novato na codificação Mql.4. Ainda estou aprendendo por EAs modificados existentes.

Seguindo o exemplo de um Pivot flutuante:

para a barra atual;

duplo pivô_de fluxo0 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,0,0))/3,0;

para um bar de volta

onde eu devo definir "número" ou variável "shift_bars".

duplo fluxo_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,TimeFrame_Flow,0))/3.0;

Muito obrigado

 
 

Nenhuma solução encontrada

Oi Bongo

Desculpe, mas neste link não encontrei uma resposta.

Caso normal

double High1 = iHigh(NULL,0, 0); // Preço alto agora

quando eu preciso de entrada externa

double iHigh1 = iHigh(NULL,iHigh12_TimeFrame,Barsback_iHigh1); // Preço alto agora

Green significa quantas barras de volta

mas no meu caso, onde devo inserir Barback_xxx, a linha completa abaixo deve ser uma barra de retorno

duplo fluxo_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,TimeFrame_Flow,0))/3.0;

Bongo:
BadGay,

ir para:

https://www.mql5.com/en/forum/173124

B.
 

Tempos de retorno

Badguy:
Oi Bongo

Desculpe, mas neste link não encontrei uma resposta.

Caso normal

double High1 = iHigh(NULL,0, 0); // Preço alto agora

quando eu preciso de entrada externa

double iHigh1 = iHigh(NULL,iHigh12_TimeFrame,Barsback_iHigh1); // Preço alto agora

Green significa quantas barras de volta

mas no meu caso, onde devo inserir Barback_xxx, a linha completa abaixo deve ser uma barra de retorno

duplo fluxo_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,TimeFrame_Flow,0))/3.0;

Hi

Se você quiser deslocar a linha de volta em 1 barra de cada vez.

duplo fluxo_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,TimeFrame_Flow,0))/3.0; = Dia atual

duplo fluxo_Pivot1 = (iHigh(NULL,1440,1)+iLow(NULL,1440,1)

+ iClose(NULL,TimeFrame_Flow,1))/3.0; = Voltar 1 dia

duplo fluxo_Pivot1 = (iHigh(NULL,1440,2)+iLow(NULL,1440,2)

+ iClose(NULL,TimeFrame_Flow,2))/3.0; = Voltar 2 dias

duplo fluxo_Pivot1 = (iHigh(NULL,1440,Barback_xxx)+iLow(NULL,1440,Barback_xxx)

+ iClose(NULL,TimeFrame_Flow,Barback_xxx))/3.0;

Barback_xxx = 1,2, 3, 4 etc. recuarão 1 barra de cada vez.

 

Oi Cja

não é o que eu quero dizer

cja:
Hi

Se você quiser deslocar a linha de volta em 1 barra de cada vez.

Isso é PIVOT flutuante. Certo?

#1

duplo fluxo_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,TimeFrame_Flow,0))/3.0; = Dia atual

Isso é PIVOT normal para hoje. Não é?

#2

duplo fluxo_Pivot1 = (iHigh(NULL,1440,1)+iLow(NULL,1440,1)

+ iClose(NULL,TimeFrame_Flow,1))/3.0; = Voltar 1 dia

Isso é PIVOT normal, mas de ontem. Não é?

#3

duplo fluxo_Pivot1 = (iHigh(NULL,1440,2)+iLow(NULL,1440,2)

+ iClose(NULL,TimeFrame_Flow,2))/3.0; = Voltar 2 dias

Preciso do nº 1, mas xx barras de volta em qualquer período de tempo.

A mesma função como este Indi : PrevDayAndFloatingPivot_O.mq4. ( mas somente o FloatingPivot )

O Indi está anexado

duplo fluxo_Pivot1 = (iHigh(NULL,1440,Barback_xxx)+iLow(NULL,1440,Barback_xxx)

+ iClose(NULL,TimeFrame_Flow,Barback_xxx))/3.0;

Barback_xxx = 1,2, 3, 4 etc. recuarão 1 barra de cada vez.
Arquivos anexados:
 

talvez esta seja uma pergunta boba... mas espero que você me ajude.

.... como fechar ou abrir uma ordem(ordem pendente) quando outra ordem chegar ao tp?

obrigado b4 !