Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 222

 
A sintaxe é dominada, mas a lógica é um pouco difícil de se obter.
 

Olá.

O EA foi testado com as mesmas configurações anteontem e ontem. O código é o mesmo, todos os parâmetros são os mesmos, mas o resultado é diferente.

O Expert Advisor abre as negociações no horário estabelecido sem nenhuma condição adicional. Podemos ver que os preços de abertura dos comércios diferem significativamente.

Fiz o download do mesmo arquivo de citações das duas vezes da MetaQuotes Software Corp.

Arquivos anexados:
szcwya.zip  34 kb
 
gince:

Como encontrar dois fractais superiores/inferiores em uma fila? A figura abaixo.

Tentei escrever um indicador, mas não consegui pensar bem.

Talvez alguém tenha visto um indicador assim pronto?


Você tem certeza de que int GetFractal(string sy="0", int tf=0, int nf=0) funcionacorretamente para capturar os fractais ? (há valores de VAZIO_VALOR ali )

Por que um excesso tão inadequado?

1) funciona sobre a aparência de uma vela e não sobre um carrapato

2) tentar duas matrizes fractais simultaneamente em vez de repetir muitas vezes.

3) Se o fractal superior estiver presente, +1 ao valor da primeira variável, se o fractal inferior, -1. ( Variantes dos resultados: - 1, 0, +1)

4) no fractal seguinte: se houver um fractal superior, então +1 para o valor da segunda variável; se houver um fractal inferior, então -1. ( Os resultados são os seguintes: - 1, 0, +1)

5) Procure a soma da primeira e segunda variáveis:

a) menos de 0 ( temos dois fractais mais baixos) SIM!

b) maior que 0 ( temos dois fractais superiores) YEAH!!!

c) é igual a zero e uma variável é igual a zero (temos dois fractais inferiores e dois fractais superiores) YEAH!!

6) reatribuir o valor da segunda variável à primeira e iniciar o ciclo a partir do ponto 4)

 
aiculu:
Ajuda, não entendi como o fiz, mas cliquei acidentalmente em algo e uma janela desapareceu com uma visão geral das minhas ordens abertas, como faço para recuperá-lo?

Ctrl-T

 
Elektronik:

Ctrl-T


Obrigado.)))
 
Antonius:

Olá.

O EA foi testado com as mesmas configurações anteontem e ontem. O código é o mesmo, todos os parâmetros são os mesmos, mas o resultado é diferente.

O Expert Advisor abre as negociações no horário estabelecido sem nenhuma condição adicional. Podemos ver que os preços de abertura dos comércios diferem significativamente.

Fiz o download do mesmo arquivo de citações das duas vezes da MetaQuotes Software Corp.

Você tem o spread atual selecionado no testador - daí a diferença, porque quando você inicia o teste, o spread é usado como era quando o teste foi iniciado. Ajuste o spread para um número constante.
 
ALXIMIKS:


Você tem certeza de que a função GetFractal(string sy="0", int tf=0, int nf=0)captura os fractais corretamente? (há valores de VAZIO_VALOR ali )

Por que um excesso de mortes tão inadequado?

1) trabalho a partir da aparência de uma vela, não de um carrapato

2) Faça uma busca em duas matrizes fracionárias ao mesmo tempo, ao invés de múltiplas buscas.

3) Se o fractal superior estiver presente, então +1 ao valor da primeira variável, se a inferior, então -1.

4) Fractal seguinte: se houver um fractal superior, então +1 para a segunda variável, se houver um fractal inferior, então -1.

5) Procure a soma da primeira e segunda variáveis:

a) menos de 0 ( temos dois fractais mais baixos) SIM!

b) maior que 0 ( temos dois fractais superiores) YEAH!!!

c) é igual a zero e uma variável é igual a zero (temos dois fractais inferiores e dois fractais superiores) YEAH!!

6) reatribuir o valor da segunda variável à primeira e iniciar um loop a partir do ponto 4)

Ao invés de sarcasmo, é melhor você mesmo escrever uma função adequada e otimizada para a pessoa. Tudo o que você sempre mostra é negatividade e zombaria. Não se faça de esperto: se você tem uma resposta, escreva o código, se você não tem uma resposta, não diga nada. A propósito, o excesso de mortes está acontecendo lá...
 
artmedia70:
Você tem o spread atual selecionado no testador - daí a diferença, porque, quando você executa o teste, o spread é usado o que era no momento em que o teste foi executado. Ajuste o spread para um número constante.


A diferença entre as negociações abertas no mesmo dia, ao mesmo tempo em dias de teste diferentes - varia.

Por exemplo,

Data, hora Anteontem Hoje Diferença
2011.10.05 13:151616.031622.89 -6.86
2011.10.12 13:151682.871682.89 -0.02
2011.10.19 13:151649.101659.66 -10.56


Sim e valores muito altos para propagação.

 
artmedia70:
Ao invés de sarcasmo, é melhor você mesmo escrever uma função adequada e otimizada. Você sempre mostra apenas negatividade e zombaria. Não se faça de espertinho: se você tem algo a dizer, escreva o código, se você não tem uma resposta, não diga nada. A propósito, o excesso de mortes está acontecendo lá...


Eu tive tempo - eu inventei um algoritmo para a tarefa, descrevi-o em detalhes (talvez um pouco incorreto para algumas pessoas - as pessoas são diferentes em termos de compreensibilidade).

sarcasmo? não sei, eu só estava tentando ajudar.

código escrever alguém? otimizar mais? (sim, eu posso, mas vale a pena?)

(PS artmedia70, sem ofensa, eu respeito sua atitude e opinião em geral - honestamente, mas no outro dia você mesmo me deu o código do iCustom-y para dizer de forma suave não muito otimizada).

int a1=0,a2,a3,kilkict,frac,frac1=0;//frac - флаг существования фракталов, frac1- счетчик фракталов (+1 или 0 за цикл)

kilkict=iBars(sy, tf);

for (i=3; i<kilkict;i++){
  a2=0;frac=0;
  if(iFractals(sy, tf, MODE_UPPER, i)>0) {            
     if (Bufer0!=EMPTY_VALUE) {
         a2+=1;frac=1;frac1++;
        }
     }
  if(iFractals(sy, tf, MODE_LOWER, i)>0) {            
     if (Bufer0!=EMPTY_VALUE) {
        if(a2==0){frac1++; frac=1;}a2+=-1;
        }
     } if (frac==0){continue;}if (frac1==1){a1=a2;continue;}
  a3=a1+a2;
  if(a3<0)           { a1=a2;//Два фрактала вниз  подряд найдено// continue;}
  if(a3>0)           { a1=a2;//Два фрактала вверх подряд найдено // continue;}
  if(a3==0 && a1==0) { a1=a2;// Два фрактала подряд вверх и два фрактала подряд вниз найдено //}
}

Algo assim deve funcionar se você inseri-lo no cheque para um novo bar.

O código seria mais ideal se você reduzisse kilkict=iBars(sy,tf) após algum número de fractais, para que você não tenha que olhar constantemente através de todas as barras.

 
ALXIMIKS:


Eu tive tempo - eu inventei um algoritmo para a tarefa, descrito (em detalhes, talvez um pouco incorreto para algumas pessoas - as pessoas são diferentes em termos de acessibilidade).

sarcasmo? não sei, só para ajudar.

escrever o código para alguém? otimizar mais? (sim, eu posso, mas vale a pena? )

(p.s. artmedia70, sem ofensa, respeito sua atitude e opinião em geral - honestamente, mas no outro dia você mesmo deu o código do iCustom-y para dizer de forma suave não muito otimizada).

Algo assim deve funcionar se você inseri-lo no cheque para um novo bar.

O código seria mais otimizado se o código fosse reduzido kilkict=iBars(sy,tf) após algum número de fractais, para não passar por todas as barras o tempo todo.

Sim, como costumavam brincar na KVVAIU, um verdadeiro oficial deve inspirar medo, tanto com seu comportamento quanto com sua aparência física.

É possível torná-lo "mais otimizado"?