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 28

 
Vinin:

Tente usar oDoubleToStr


Muito obrigado.

Eu entendo que o terminal conta os valores exatos e só me mostra os valores "truncados", certo? E para ver os valores exatos você tem que fazer oDoubleToStr?

 
lottamer:


Muito obrigado.

Eu entendo que o terminal conta os valores exatos e só me mostra os "aparados", certo? E para ver os valores exatos eu tenho que fazerDoubleToStr?


Sim
 
ajude-me com esta parte do código (falta o goto)
verifique se há uma ordem aberta ou pendente na nnn, caso contrário, faça uma ordem de paralisação
 
sdm:
Ajude-me com esta parte do código (falta o goto)
Preciso verificar se há uma ordem aberta ou pendente a preço nnn e, se não houver uma ordem de paralisação.

Então, como ajudá-lo?

Use OrderTotal() para obter o número de ordens abertas e pendentes.

Assim, se houver algum, então você faz um overhoot e compara o preço de abertura de cada pedido com seu nnn.

Se não houver ordens, então você define a sua.

Onde está faltando o goto aqui?

 
PapaYozh:

Então, como ajudá-lo?

Use OrderTotal() para obter o número de ordens abertas e pendentes.

Assim, se houver algum, então você faz um overhoot e compara o preço de abertura de cada pedido com seu nnn.

Se não houver ordens, então você define a sua.

Onde está faltando o goto aqui?


1 Não preciso de todos os pedidos, mas só vendo e vendotop // correção

Eu ainda não entendo como sair do loop e fazer o pedido (o tempo todo eu tento fazer o pedido sem passar pelo loop) ou como voltar para o loop.

 
sdm:


1 Eu não preciso de todos os pedidos, mas apenas vender e vender

2 Não entendo como sair do laço para comprar (todo o tempo que faço pedidos sem passar por todo o laço) ou voltar para o laço

1. Quem ou o que o impede de analisar o tipo de pedido?

Criar uma variável de bandeira, inicializá-la, verificar a ordem e, se necessário, alterar o valor da variável de bandeira. Após o loop, dependendo do valor da bandeira, faça o pedido.

Isto está claro?

 
PapaYozh:

Isso está claro?


Entendi, obrigado.
 
sdm:

Eu não consigo acertar a pontuação :-)

Imprimir("Ordens por ",Koob", Ordens de Venda = ",Koos);

oo=0; // bandeira se a ordem existe

se (Koos <= Koob) // se aberto!A ordem de venda é menor ou igual à quantidade de ordens em aberto por

para (i=0; i<k; i++)

{if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{if (OrderType()==OP_SELL || OrderType()==OP_SELLSTOP) // então se houver uma ordem de venda em aberto ou pendente

{ se (PraiceSs = OrderOpenPrice()) { oo=1; } // com PraiceSs definidos para oo

}

}

}

if (oo=0) {OrderSend(Symbol(),OP_SELLSTOP,v,PraiceS, ,Sl,Tp, ,mn,0,Green);} //put selltop

diz a linha " se ( PraiceSs= OrderOpenPrice()) { oo=1; } " - '=' - cessão ilegal utilizada

ps PraiceSs -double, oo -int

Em primeiro lugar, é uma operação de comparação de igualdade '=='.

Segundo, variáveis do tipo duplo não podem ser comparadas em igualdade. Em vez disso, elas devem ser comparadas em proximidade: MathAbs( PraiceSs - OrderOpenPrice() ) <= PriceDelta

 
PapaYozh:

Em primeiro lugar, a operação de comparação para igualdade é "==".

Segundo, variáveis do tipo duplo não podem ser comparadas em igualdade, elas devem ser comparadas em proximidade: MathAbs( PraiceSs - OrderOpenPrice() ) <=


qual é oPriceDelta então? nenhum pedido pode estar mais próximo de 30 pips

e por que eles não podem ser comparados?

 
sdm:


qualpreçoDelta devemos fixar? nenhum pedido mais próximo de 30 pips

E por que eles não podem ser combinados?

PriceDelta = Ponto * 30;

Comparação de números reais

Razão: