![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Como estou escrevendo para opções binárias, tenho feito as coisas um pouco diferente:
Isto seria provavelmente correto?
Aqui está o problema
Há 2 linhas no terminal para 1 pedido
E para o pedido que foi feito pelo Conselheiro Especialista, Lucro == 0
Acho que este é o problema
Existem 2 linhas no terminal para 1 pedido
E no pedido que foi feito pelo Conselheiro Especialista, Lucro == 0
onde você encontrou um preço abaixo de zero - mostre-me uma foto de tela?
Você não vê nesta captura de tela
Você já recebeu conselhos sobre todo o algoritmo, eu não quero interferir e nem sequer olhei para seu código e os mesmos conselhos... Mas isto
chamou minha atenção. Portanto, minha pergunta é: não é mais fácil e mais legível usar o interruptor operador
Acho que é mais fácil de ler e entender. Talvez também funcione um pouco mais rápido.Talvez, em vez de uma função, use apenas um volume de matriz[n] ?
Talvez sim... eu concordo.
Onde você encontrou um preço inferior a zero, mostre-me uma foto de tela?
Não existe tal coisa nesta captura de tela.
Estou tentando obter OrderProfit() - ele dá 0
aqui está uma confirmação de lucro encontrado -0,01 como sai dessa linha adicional
![](https://c.mql5.com/3/376/Screenshot_8.png)
Talvez sim... eu concordo.
Eu não recebo o preço negativo, ele ainda não está lá.
contar o lucro total desta forma (trecho)
O que você precisa é destacado
for(i=0;i<OrdersHistoryTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderType()==ORDER_TYPE_BALANCE && OrderCloseTime()>startDate)Withdrawal=Withdrawal+OrderProfit()+OrderCommission()+OrderSwap();
if((OrderType()==ORDER_TYPE_BUY || OrderType()==ORDER_TYPE_SELL))
{
if(OrderCloseTime()>iTime(Symbol(),PERIOD_D1,0))hystCurrDay=hystCurrDay+OrderProfit()+OrderCommission()+OrderSwap();
if(OrderCloseTime()<iTime(Symbol(),PERIOD_D1,0) && OrderCloseTime()>iTime(Symbol(),PERIOD_D1,1))hystPrevDay=hystPrevDay+OrderProfit()+OrderCommission()+OrderSwap();
}
}
}
Não sou pago por mim mesmo e pelo autodesenvolvimento. Depois do trabalho, é interessante fazer uma busca de graal
Não se importe comigo. Sou só eu e Nikolay que estamos tendo um pequeno encontro...
A essência de seu problema: como a OrderProfit() na corretagem forex não dá nenhum valor real, você tem que definir uma ordem positivamente/negativamente fechada como a diferença entre o preço fechado e o preço aberto da ordem. Você já foi informado sobre isso
Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos
Verificar o que eu fiz de errado?
Renat Akhtyamov, 2021.12.21 09:27
não entendem a lógica por trás disso
por que?
como o preço de fechamento do pedido pode ser inferior a zero?
a ordem de compra estará na posição de mais se o preço de fechamento for maior do que o preço de abertura
aqui está a condição de um plus de compra (excluindo comissões e trocas):
Se for ao contrário, é um sinal de menosNão recebo tanto para mim e para meu autodesenvolvimento. Depois do trabalho, é divertido ir em uma busca de graal.
Sim, Natalia - isso foi apenas um memorando da série "Quando você é pago por uma linha de código".
Esse é o tipo de humor que os programadores têm.
![](https://c.mql5.com/3/376/2569586369970__1.png)
Você não precisa de uma função em seu caso.
Você só precisa formar variáveis Volume1 ... As variáveis do volume 10 devem ser inicialmente formadas como um volume de matriz[10]
e depois se referir a seu volume de elementos[n] por índice n.
Não se preocupe - quase todos os programadores passaram por isso.
O principal é que você realmente gosta de programação. Eu posso senti-lo.
Então você irá longe.