o que vc precisa é mais ou menos isso aqui
for(int i = OrdersTotal()-1; i>=0; i--) { ulong ticket = 0; if((ticket = OrderGetTicket(i))>0) { string symbol = OrderGetString(ORDER_SYMBOL); if(symbol == _Symbol) { if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_SELL_STOP) { double priceBuffer = OrderGetDouble(ORDER_PRICE_OPEN); } } }
Ele pega todas as ordens que existem, seleciona um ticket, verifica se é uma ordem de venda e se for ele pega o preço de abertura de ordem...ai o resto é com vc...mas basicamente é só vc verificar qual o menor valor ou maior do preço de venda e colocar a distancia....no de compra é a mesma coisa
Só precisa ver se o seu tipo de ordem é ORDER_TYPE_SELL_STOP ou outras, dê uma verificada
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
Boa tarde pessoal estou desenvolvendo um robo de Gradiente Liener e me deparei com um dilema, como vou verificar e repor as ordens dos preços?
Minha primeira tentativa foi utilizando o campo de comentário da ordem para gerencias as memas, sendo assim eu deu numero para elas no caso de 0 a 19, e armazenei em um array(booleano) em um segundo arry armazenei o ticket gerado de cada operação,
para então vericar se alguma das posições ja foi pega pelo TakeProfit para repo-lâs:
e tenho o mesmo codigo para venda.
Porem após a 3 ordem aberta ele começa a repetir o loop de abrir ordens e abre muitas iguais, como se a posição do array estivesse como true.
Se alguem tiver alguma ideia melhor para essa logica ou conseguir descobrir o que tem de errado eu agradaço.