Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Sim, bom conselho...
Repita
Temos que verificaros resultados.ordem.
Se o pedido for feito, isso não significa que o negócio já tenha sido feito.
Além disso, devemos também verificar o status da ordem e se ela já apareceu ou não na história.
A troca não funciona com posições, apenas com ordens.
Recentemente levantei um tópico sobre a reabertura de pedidos. Pensei que tinha resolvido o problema, pois tudo estava funcionando muito bem durante uma semana. Mas hoje eu encontrei um problema semelhante somente ao abrir.
Muitos pedidos foram abertos na Finam, e 9 na Otkritie... embora apenas um pedido devesse ter sido aberto em todos os casos.
Aqui está um trecho de código da EA
ou seja, podemos ver pelo código que se a operação for bem sucedida, a variávelOpenOrders aumenta, o que inicialmente é igual a 0
Se for maior que 0, não deve haver mais abertura do pedido, mas toda a pilha de pedidos é aberta com o comentário Ordem1.
Eu verifico se há uma resposta positiva na função que abre o pedido e se o bilhete de pedido foi recebido, mas por alguma razão esta função retorna falsa, mesmo que o pedido esteja realmente definido.
Explicar o que está errado, como resolver este problema?
Diga-me, para qual mercado você está escrevendo este código?
Para o corretor de bolsa.
Repita
Além disso, você também deve verificar o status da ordem e se ela já apareceu na história ou não.
A troca não trata de posições, apenas de ordens.
Bem, Sergei, veja.... isto é a partir da documentação do resultado da consulta
Negócio
Um negócio de bilhetes, caso tenha sido executado. Isto é relatado durante uma transação comercialTRADE_ACTION_DEAL
encomenda
Pedido de bilhetes, se um bilhete tiver sido colocado. Notificado durante uma operação comercialTRADE_ACTION_PENDING
Não tenho uma ordem pendente, usoTRADE_ACTION_DEAL
Você deve estar trabalhando com limitadores, então tudo está correto.... e aqui está a entrada do mercado ao preço atual.Bem, Sergei, veja.... isto é a partir da documentação do resultado da consulta
negócio
Venda de bilhetes, se houver. A ser informado sobre um TRADE_ACTION_DEAL
encomenda
Pedido de bilhetes, se um bilhete tiver sido colocado. Notificado durante uma operação comercialTRADE_ACTION_PENDING
Não tenho uma ordem pendente, usoTRADE_ACTION_DEAL
Você deve estar trabalhando com limitadores, então tudo está correto.... e aqui você está entrando do mercado ao preço atual.SetTypeFilling
SetTypeFilling
Define o tipo de pedido por preenchimento
Você define o que lhe convém.
A propósito, basta verificar os resultados do envio do pedido com as impressões
então o bilhete dá 0 em todos os casos
res=OrderSend(Request,Results);
if(res)
{
Print(_Symbol+" Test True order "+(string)Results.deal);
if(Results.deal>0) return(true);
else return(false);
}
Print(_Symbol+" Test False order "+(string)Results.deal);
return(false);
A propósito, basta verificar os resultados do envio de um pedido com as impressões
O bilhete mostra 0 em todos os casos
Progressos têm sido feitos ... ))
A propósito, acabei de verificar com as gráficas os resultados do envio do pedido
então o bilhete dá 0 em todos os casos
res=OrderSend(Request,Results);
if(res)
{
Print(_Symbol+" Test True order "+(string)Results.deal);
if(Results.deal>0) return(true);
else return(false);
}
Print(_Symbol+" Test False order "+(string)Results.deal);
return(false);
Onde estão os códigos de retorno? Como posso saber se houve ou não um erro?
Dei-lhe um exemplo: dupla proteção e a saída do bilhete e do código de retorno.
Eu não consegui encontrar um exemplo. Deixe-me colocar desta forma.
Quando você envia uma ordem através do mercado, a ordem deve ser executada ou rejeitada (já que você tem um enchimento FOK).
Portanto, não é preciso esperar por um bilhete, é preciso obter um TICKET.
Uma vez que você recebe um bilhete, você "vai" à OnTradeTransaction() com o bilhete
você ouve TRADE_TRANSACTION_HISTORY_ADD porque as ordens do mercado sempre chegam à história
e olhe para o bilhete para ver o que aconteceu com o pedido.