[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 71

 
r772ra , artmedia70

Obrigado, está funcionando!
 
artmedia70:

Aqui vai uma dica:

NormalizeDuplo(Baixo[i]-Baixo[i+1],Dígitos)<=3*Ponto --- diferença das barras adjacentes. Se a condição não for cumprida -> Retorno (Falso); (Retorno falso)

Retorno (Falso) após o loop ter sido passado

Podemos fazer isso de uma maneira diferente:

Se a condição NormalizeDouble(Low[i]-Low[i+1],Digits)<=3*Point for verdadeira, aumente o contador de barras adjacentes (inicialmente igual a zero) em 1,

se a condição for falsa, devolvemos o valor do contador de barras adjacente.

Quanto maior for o número retornado pela função, mais forte será o conjunto. Se zero for devolvido - a configuração não existe.



Não acho que o preço deva ser normalizado porque só precisamos comparar com um número inteiro. É melhor usar a funçãoMathAbs(valor duplo), para que se um dos preços for mais alto que o outro, o sinal na saída seja sempre positivo.

Aqui está outro ponto. Acontece que não precisamos de nenhum loop!

Podemos simplesmente usar uma função com um contador. Verificamos continuamente 2 barras adjacentes em busca de extrema, e se forem as mesmas, o contador é incrementado em 1 (inicialmente será 0, é claro). Em seguida, no próximo novo bar, realizamos uma verificação semelhante. Se os extremos forem iguais, o contador será incrementado em 1, etc. Um loop não é necessário aqui, não é?

Afinal de contas, não sabemos quantas barras teremos com o mesmo valor de extremo e, portanto, não faz sentido especificar o parâmetro de deslocamento na história.

 
Notter:

Fala-se muito em comércio de alta freqüência. Dizem que o HFT os vence a todos. Qual é sua principal vantagem sobre nós? O fato de que um ping curto é uma coisa boa em si mesmo é compreensível, mas é preciso mais de um milissegundo para fazer uma troca :) Que nova qualidade aparece no HFT e como os algoritmos diferem em princípio?

Obrigado.


Você dirige um Zaporozhets, e esses caras dirigem uma Ferrari. Você pode ultrapassar? (Não se trata de algoritmos)
 
YOUNGA:

Você dirige um Zaporozhets e esses caras dirigem uma Ferrari. Você pode ultrapassar? (Não se trata de algoritmos)
Os Zaporozhets precisam de um pouco de trabalho. Então, não só a Ferrari pode ser "feita".
 
YOUNGA:

Você dirige um Zaporozhets, e esses caras dirigem uma Ferrari. Você pode fugir deles?

Existe, no entanto, uma diferença fundamental.

Pelo menos assumir riscos/retorno. Se o HFT registra lucro por pontos, ele obviamente não coloca paradas, e o fechamento da posição de acordo com outros critérios. Pode ser que qualquer carrapato contra uma posição seja uma saída). Mas então de onde vem o lucro?

 
Novamente por ajuda.


Como posso determinar de que lado o SMA cruza os preços?
 
hoz:


Acho que não precisamos normalizar o preço, porque só precisamos comparar com um número inteiro. É melhor usar a funçãoMathAbs(valor duplo), de modo que se um dos preços for mais alto que o outro, o sinal da saída é sempre positivo.

Aqui está outro ponto. Acontece que não precisamos de nenhum loop!

Podemos simplesmente usar uma função com um contador. Verificamos continuamente 2 barras adjacentes em busca de extrema, e se forem as mesmas, o contador é incrementado em 1 (inicialmente será 0, é claro). Em seguida, no próximo novo bar, realizamos uma verificação semelhante. Se os extremos forem iguais, o contador será incrementado em 1, etc. Um loop não é necessário aqui, não é?

Afinal de contas, não sabemos quantas barras teremos com o mesmo valor extremo e, portanto, não faz sentido especificar o parâmetro de deslocamento na história.

É claro, MathAbs() é necessário lá - eu o escrevi do nada, sentado ao volante - você não pode escrever muito, além do mais eu dei uma dica para ele. Normalizar os preços, porque comparar números reais requer normalização, enquanto não estamos comparando com um número inteiro (porque 3*Point é int*douplo- int a dupla conversão). Eu ainda faria uma função que compararia barras em cada carrapato - estou acostumado a pensar imediatamente para o real. Se a EA for desativada por algum motivo, a variável que armazena o valor do contador será reiniciada quando a EA for reiniciada - isso não é bom ... é uma perda de dados. Mas em caso de busca pítmica (ou melhor, para otimizar a velocidade), o reinício do Expert Advisor neste caso não é tão ruim - ele recalculará tudo novamente. Portanto, é melhor criar uma função separada que compare um determinado número de barras adjacentes em cada nova barra para igualdade (bem, como você tem) e retorna o número de barras consecutivas iguais por um determinado critério, começando pela primeira e entrando na história para o número de barras que foram passadas para a função (dez por peça...).

Em geral ... algo parecido com isto ...

 
md4RM:
Novamente por ajuda.


Como posso saber de que lado o SMA é atravessado pelo preço?

Se (

iMA(Symbol(), Period(), 1, 0, MODE_SMA, PRICE_CLOSE, 2) <= SMA(blá, blá, blá, blá, 2)

и

iMA(Symbol(), Period(), 1, 0, MODE_SMA, PRICE_CLOSE, 1) > SMA(blah, blah, blah, 1)

) então

{ o preço cruzou seu SMA de baixo para cima na primeira barra}

 

Obrigado, eu encontrei o erro.

 

Boa tarde, por favor, ajude. Eu baixei o indicador VininI_HMA e tentei inseri-lo no modelo EA, mas o EA não abre negócios. A compilação correu bem.

Condição para VENDA (Sigj1==EMPTY_VALUE)&& (Sigj2!=EMPTY_VALUE)&& (Sigj1!=EMPTY_VALUE)&& (Sigj2!=EMPTY_VALUE)

Condições de compra (sigj1==EMPTY_VALUE)&& (sigj2!=EMPTY_VALUE)&& (sigj1!=EMPTY_VALUE)&& (sigj2!=EMPTY_VALUE)

double sigz1 = iCustom(NULL,0, "VininI_HMA_sound&Alert",período,método,preço,sdvig,0,1);
double sigz2 = iCustom(NULL,0, "VininI_HMA_sound&Alerta",período,método,preço,sdvig,0,2);
double sigz1 = iCustom(NULL,0, "VininI_HMA_sound&Alert",período,método,preço,sdvig,1,1);
double sigz2 = iCustom(NULL,0, "VininI_HMA_sound&Alert",período,método,preço,sdvig,1,2);
double sigk1 = iCustom(NULL,0, "VininI_HMA_sound&Alerta",período,método,preço,sdvig,2,1);
double sigk2 = iCustom(NULL,0, "VininI_HMA_sound&Alert",período,método,preço,sdvig,2,2);

Por favor, diga-me onde eu cometi um erro?