Verificar - o que eu fiz de errado? - página 2

 
Natalya Smirnova #:

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

 
Natalya Smirnova #:

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

 
Alexey Viktorov #:

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 função utilize apenas o volume da matriz[n] ?
Embora, se você estiver pagando por cada linha de código, é melhor deixá-lo assim :))
 
Nikolai Semko #:
Talvez, em vez de uma função, use apenas um volume de matriz[n] ?
Embora se você pagar por cada linha de código, é melhor mantê-lo dessa forma :))

Talvez sim... eu concordo.

 
Renat Akhtyamov #:

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

 
Alexey Viktorov #:

Talvez sim... eu concordo.

Não sou pago por mim mesmo e pelo autodesenvolvimento. Depois do trabalho, é interessante fazer uma busca de graal
 

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();

         }

      }

   }



 
Natalya Smirnova #:
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?

bool profit = false;
         if(OrderClosePrice() > 0)
            profit = true;

         bool loss = false;
         if(OrderClosePrice() < 0)
            loss = true;

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):

OrderClosePrice() > OrderOpenPrice()
Se for ao contrário, é um sinal de menos

 
Natalya Smirnova #:
Nã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.


Você não precisa de uma função em seu caso.

double SelectVolume(int n)

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.

 
Eu concordo. A programação realmente se mantém e é de muito longo prazo!!!
Nem todos acabam com um hail....
Razão: