Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 352

 
Trader7777:

só pode haver uma ordem no mercado. No momento, esta função não funciona de forma alguma... por alguma razão. Mas se funcionar corretamente, entendo que será acionado o tempo todo, desde que o lucro seja maior do que o número estabelecido de pips. É claro que precisamos que ele feche metade de uma posição uma vez, e é isso. Mas eu gostaria que funcionasse pelo menos uma vez).
Cerca de uma vez para fechar - na página anterior eu escrevi
 
evillive:

Uma biblioteca é uma opção.

Obrigado pela idéia.
 
Trader7777:

só pode haver uma ordem no mercado. No momento, esta função não funciona de forma alguma... por alguma razão. Mas se funcionar corretamente, entendo que será acionado o tempo todo, desde que o lucro seja maior do que o número estabelecido de pips. É claro que precisamos que ele feche metade de uma posição uma vez, e é isso. Mas eu gostaria que funcionasse pelo menos uma vez).


Concordo com você em meu coração que deveria haver apenas um pedido. E então, fechamos parcialmente, quando? Em quantos segundos ou em outros termos? Caso contrário, em algum momento tudo fechará e somente a baba será deixada para cuspir)))))

Sua função deve funcionar, pelo menos no testador. Outra pergunta é quando chamá-lo....

 
Sepulca:


No fundo, concordo com você que deveria haver apenas um pedido. E depois, em parte perto, quando? depois de quantos segundos ou por outras condições? Caso contrário, em algum momento tudo se fechará e tudo o que restará será a baba)))))

Sua função deve funcionar, pelo menos no testador. Outra pergunta é quando chamá-lo....


extern int TP         = 200; // кол-во пунктов, после которых должно произойти частичное закрытие
extern int Magic      = 77;


void CloseHalfOrder(){ // функция вызывается в самом начале цикла Start

for (int i = 0; i<=OrdersTotal(); i++)
  {
    if (OrderSelect (i,SELECT_BY_POS,MODE_TRADES) == true)
      {
        if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
          {
            if (OrderProfit() >= TP*Point)
              {
                 if (OrderType() == OP_BUY) 
                 double Lots = OrderLots(); 
                 double HalfLot  = NormalizeDouble (Lots*0.5,2);
                 OrderClose(OrderTicket(),HalfLot,Bid,0,HotPink);
          
                 if (OrderType() == OP_SELL)
                 double Lots1 = OrderLots(); 
                 double HalfLot1  = NormalizeDouble (Lots*0.5,2);
                 OrderClose(OrderTicket(),HalfLot1,Ask,0,HotPink);
               }
          }
        }
      }
    }
não está funcionando. Por quê?
 
Trader7777:




if (OrderProfit() >= TP*Point)

O que é isto?

if(Bid-OrderOpenPrice()>= TP*Point)//для покупок

if(OrderOpenPrice()-Bid>= TP*Point)//для продаж
Algo parecido com isto.
 
Trader7777:


não funciona. Por que não?

É por isso:

if (OrderProfit() >= TP*Point)
Você quer pontos? Você está olhando para o dinheiro.
 
r772ra:

O que é isto?

Algo parecido com isto

Pedir vendas
 
artmedia70:
Pedir vendas


Isso mesmo, a propagação é levada em conta.
 
artmedia70:

É isso aí:

Você precisa de pontos? E você está olhando para o dinheiro.


r772ra:

O que é isto?

Algo parecido com isto

Obrigado!!! programação para exatamente a segunda semana) inatento novato
 
Por favor, me aconselhem sobre isto. A Alpari está aumentando a propagação no fim de semana, na medida em que a EA está sempre perdendo. OK. Eu posso definir a propagação manualmente no Testador de Estratégia. Mas em que unidades? 100, 50, 30, 10 - o que é isso? Porcentagem, pontos, o quê? Agradeço antecipadamente.