[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 762

 
FoxUA:

A questão é como escrever corretamente esta função

funciona assim

e eu preciso que ambos trabalhem, por favor explique

Não é uma pergunta muito clara, mas tudo bem.
É muito fácil escrevê-lo, quase o mesmo que o seu:

void tmp_function(){
   if(my_total_order == 0){
      OpenBuyOrder(Lot,PRAsk);
      OpenBuyStopOrder(Lot,PRAsk); 
      OpenBuyLimitOrder(Lot,PRAsk);
   }
   if(my_total_order == 5){
      OpenBuyOrder(Lot,PRAsk);
      OpenBuyStopOrder(Lot*3,PRAsk); 
      OpenBuyLimitOrder(Lot*3,PRAsk);
   }
}
 
ToLik_SRGV:

A questão não é muito clara, mas está bem.
É muito simples de escrever, quase o mesmo que o seu:


Eu não sou muito bom em explicar as coisas, o que você pode fazer? Bem, isto foi uma digressão, e agora na verdade há um código composto de 2 partes, cada uma é a nomeação da variável, então a questão é se é possível combinar estas duas funções sem cortar nada delas

if(my_total_order == 0)           //|                     //|   
{double Lt=Lot;                  //|                     //|
  double PR=PRAsk;                //| --- первая функция  //|
  OpenBuyOrder(Lt,PR);            //|                     //|
  OpenBuyStopOrder(Lt,PR);        //|                     //|
  OpenBuyLimitOrder(Lt,PR);}      //|                     //|
//+--------------------------------+                      //|----  надо обеденить в одну
if(my_total_order == 5)           //|                     //|
{double Lt=Lot*3;                //|                     //|
  double PR=PRBid;                //| --- вторая функция  //|
  OpenSellOrder(Lt,PR);           //|                     //|
  OpenSellStopOrder(Lt,PR);       //|                     //|
  OpenSellLimitOrder(Lt,PR);}     //|                     //|

проблема   'Lt' - variable already defined (уже определенная переменная),       
           'PR' - variable already defined (уже определенная переменная), 
'Lt' 'PR' -  они как раз и нужны но как им присвоить разные значения ? 



 
FoxUA:

Eu não sou muito bom em explicar as coisas, o que você pode fazer? Bem, isso foi uma digressão, e agora na verdade há um código composto de 2 partes, cada uma é a nomeação da variável, então a questão é se é possível combinar essas duas funções sem cortar nada delas

Eles podem ser declarados como globais, por exemplo, fora da função.
E eles só são necessários para passar valores Lot e PRAsk? É possível passá-los diretamente como eu escrevi.
 
ToLik_SRGV:
Você pode declará-los como globais, por exemplo, fora das funções.
Eles são necessários apenas para passar valores de Lote e PRAsk? Você pode passá-los diretamente, como eu escrevi.

Sim, mas o valor de um lote será 10 e + cada um deles estará em PRAsk e PRBid funções totais a abrir, nomeadamente "int OpenBuyOrder(double Lt, double PR).............." e o resto, será um lote infernal, então estou olhando como não descreveria em 3 volumes

 

A SOLUÇÃO FOI ENCONTRADA, OBRIGADO A TODOS VOCÊS.

 

Outra pergunta, como posso atribuir uma ordem de mercado, preço StopLoss eTakeProfit a uma variável de tempo?

 
Techno:
sem visualização, por que não funciona? Objetos gráficos, objetos de canto que você não usa?
Mesmo que seja uma estratégia de ossos nus sem nenhum gráfico, mesmo assim. vazio nos resultados, como em um vácuo.
 
FoxUA:

Outra pergunta é como posso atribuir o preço StopLoss e TakeProfit de uma ordem de mercado a uma variável de tempo ?

Você procura a ordem necessária no mercado e usa as funções OrderStopLoss() e OrderProfit() para obter as informações necessárias...

================================================================================

Pedido duploStopLoss( )
Retorna o preço de fechamento quando o stop loss para a ordem atualmente selecionada é atingido.
A ordem deve ser pré-selecionada usando a função OrderSelect().

duplo OrderProfit( ) )
Devolve o valor do lucro líquido (sem swaps ou comissões) para a ordem atualmente selecionada. Para posições em aberto, este é o lucro atual não realizado. Para pedidos fechados, é o lucro fixo.
A ordem deve ser pré-selecionada usando a função OrderSelect().
================================================================================
... e você o escreve nas variáveis.
 
artmedia70:

Procure no mercado a ordem requerida e use OrderStopLoss() e OrderProfit() para recuperar as informações necessárias...

================================================================================

Pedido duploStopLoss( )
Retorna o preço de fechamento de uma posição quando o nível de stop loss da ordem atualmente selecionada é atingido.
A ordem deve ser pré-selecionada usando a função OrderSelect().

duplo OrderProfit( )
Devolve o valor do lucro líquido (sem swaps ou comissões) para a ordem atualmente selecionada. Para posições em aberto, este é o lucro atual não realizado. Para pedidos fechados, é o lucro fixo.
A ordem deve ser pré-selecionada usando a função OrderSelect().

Desculpe, mas eu não perguntei como deveria encontrar dados StopLoss e TakeProfit; nós sabemos disso!

 

Prezados especialistas em programação! Você poderia acrescentar a função de verificar os horários de abertura ao código EA? Isto é, a EA deve abrir posições somente dentro de um determinado intervalo de tempo, por exemplo, das 8h às 20h (horário de Moscou).

Arquivos anexados: