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

 
Roman.:

Você não descarta a opção de a primeira ordem se transformar em uma ordem de mercado e, como conseqüência, não poder removê-la com este ciclo em ordens limitadas?

Estou realizando uma visualização. No momento em que a ordem deve ser apagada, ela permanece pendente. Eu sei como definir o número mágico mas não posso apagar a primeira de duas ordens pendentes.
 
Roman.:

Aparentemente para isso - alguns posts acima :-)))) - "A maneira mais fácil de determinar qual ordem de dois para fechar é através do número mágico. Atribua-lhes números diferentes quando você os configurar. O exemplo que você mostrou acima carece desta verificação. Também, em vez de bilhete, escreva OrderTicket()"

OrderTicket() provavelmente receberá o bilhete da última encomenda pendente, eu preciso da penúltima encomenda.
 
Andreev:

OrderTicket() provavelmente receberá um bilhete do último pedido pendente, e eu preciso do último mas um.

Se você estiver fazendo dois pedidos pendentes, é provavelmente mais fácil dar o primeiro um 1 e o segundo um 2. ))

Então, tanto você quanto o Consultor Especialista não se confundirão com os números.

 

alex12, já é bom começar a escrever algo. Muitos erros, mas ainda assim nada mal.

1. ambos os erros de compilação são porque no mesmo início() você define duas vezes as variáveis locais SL e TP. Você deve defini-los uma vez dentro da função, caso contrário, isso causará um erro.

Remover o tipo duplo no segundo cálculo de ambas as variáveis e o erro desaparecerá. Mas isso não é tudo.

2. Você tem certeza de que precisa de variáveis externas globais com os mesmos nomes? O problema é que a variável SL definida dentro da função é diferente da variável global com o mesmo nome. Se você quiser que ela seja exatamente a mesma variável que a externa (externa), remova o dobro dela em todos os lugares.

3. A condição if() é geralmente uma condição lógica, embora cálculos simples não sejam proibidos pela sintaxe. E você simplesmente não tem uma condição lógica.

Pratique primeiro em programas simples, tais como cálculos com saída. Então você entenderá a sintaxe.

 
Andreev:

OrderTicket() provavelmente receberá o bilhete do último pedido pendente, e eu preciso do último mas um.

Você precisa se lembrar da hora em que o pedido foi feito e depois comparar o tempo no loop e excluir o pedido mais antigo, então - olhe para isto e conecte-o ao seu EA.
 
Mathemat:

alex12, já é bom começar a escrever algo. Muitos erros, mas ainda assim nada mal.

1. ambos os erros de compilação são porque no mesmo início() você define duas vezes as variáveis locais SL e TP. Você deve defini-los uma vez dentro da função, caso contrário, isso causará um erro.

Remover o tipo duplo no segundo cálculo de ambas as variáveis e o erro desaparecerá. Mas isto não é tudo.

2. Você tem certeza de que precisa de variáveis externas globais com os mesmos nomes? O problema é que a variável SL definida dentro da função é diferente da variável global com o mesmo nome. Se você quiser que ela seja exatamente a mesma variável que a externa (externa), remova o dobro dela em todos os lugares.

3. A condição if() é geralmente uma condição lógica, embora cálculos simples não sejam proibidos pela sintaxe. E você simplesmente não tem uma condição lógica.

Pratique primeiro em programas simples, como cálculos com impressão. Então você entenderá a sintaxe.

Muito obrigado.
 
Roman.:

Você memoriza o tempo de fazer pedidos, depois também no ciclo você compara o tempo - apagar o mais antigo, assim - olhe aqui e conecte-o ao seu EA.

Obrigado pelo link! Vou estudá-lo :) Tenho uma boa idéia com o tempo, assim como com o número mágico e tipo de pedido (bylimit ou selllimit). Mas você provavelmente não me entendeu bem. Meu problema não é marcar o pedido, mas COMO REMOVê-lo. Só sou capaz de apagar a última ordem pendente, não importa como eu defina a penúltima ordem.
 

Andreev:

Obrigado pelo link!!! Vou investigar isso :) Com o tempo, assim como o número magik e por tipo de pedido (bylimit ou selllimit) - boa idéia. Mas você provavelmente não me entendeu bem. Meu problema não é marcar o pedido, mas COMO REMOVê-lo. Só sou capaz de apagar a última ordem pendente, não importa como eu defina a penúltima.


Se você pegar pelo menos uma das dicas oferecidas a você (mágico, tipo, tempo de ajuste), você não terá problemas em apagar exatamente a ordem que sua estratégia comercial implica. ))

Use dois critérios em sua seleção, por exemplo, tempo de instalação e tipo ou tipo e magik.

 
Andreev:

Obrigado pelo link!!! Vai investigar :) Com o tempo, assim como o número mágico e por tipo de ordem (bylimit ou selllimit) é uma boa idéia. Mas você provavelmente não me entendeu bem. Meu problema não é marcar o pedido, mas COMO REMOVê-lo. Só sou capaz de apagar a última ordem pendente, não importa como eu defina a penúltima ordem.

Estou corrigindo meu código de acordo com seus termos - vou colocá-lo aqui agora.
 
Andreev:

OrderTicket() provavelmente receberá um bilhete do último pedido pendente, e eu preciso do penúltimo pedido.


Recalcule a cada tique o número de pedidos pendentes.

Se houver menos, isso significa que uma ordem pendente se tornou uma ordem de mercado.

Todos os restantes (que se tornaram desnecessários) podem ser apagados.