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 609

 
artmedia70:

Isso também vai para lá. Naturalmente - uma não contradiz a outra. Ele está contando as ordens de parada para a compra do pedido. Não os normaliza. Não verifica a limitação de distância StopLevel.

Em resumo, é um hodgepodge.



Eu peguei, obrigado. Eu realmente estraguei os preços. O StopLevel deve ser verificado antes de fazer um pedido pendente. As paradas e os lotes também são verificados quanto à mesma abundância.

Neste caso particular, o nivelador de parada de acordo com os termos do corretor = 0, e a parada e o lucro são definidos muito mais atrás. Quanto ao preço da ordem de mercado, tanto quanto sei, ele é aberto ao preço de mercado mais próximo e o nível de parada não tem nada a ver com isso neste caso. Certo?

 
artmedia70:

Para Comprar, parar e levar são calculados a partir do preço de Licitação - este é um deles.

Em segundo lugar, se você calcular os preços de parada de pedidos, eles precisam ser normalizados. O fato de que SL e TP foram normalizados antes não é nada demais. Em seguida, você usa o valor não normalizado da expressão na ordem comercial.

Em terceiro lugar, todos os preços devem atender às exigências e restrições às operações comerciais. O nível do StopLevel, por exemplo, pode ser maior do que o tamanho da ordem de parada.



Eu entendi corretamente que os valores precisam ser normalizados dentro da ordem comercial?
 
Diga-me como, elegantemente, encontrar o TIME Lowe de ontem. Porque eu tenho algumas construções pesadas saindo.
 
001:
Diga-me como, elegantemente, encontrar o TIME Lowe de ontem. Porque eu tenho algumas construções pesadas saindo.

Encontre o indicador de canal de preço(canal doncian ), coloque uma profundidade de 1periodicidade nos diários... deve ser que
 
YOUNGA:

Encontre o indicador de canal de preço (canal doncian), defina uma profundidade de 1periodicidade nos diários... deve ser que
Obrigado, vou tentar. Alguém mais tem alguma opção enquanto eu estou procurando?
 

Boa tarde, por favor, ajude com o código.

Nesta implementação, as ordens de compra e venda no mercado são calculadas em média separadamente. Como posso implementar que a última ordem aberta não está sujeita a modificações gerais em sua série?

extern int t=10;

///////////////////////////////////////////////////////
      int kolOK=0;
//   int i=0;
   int kol1=0;
   int kol2=0;
   double lots1=0;
   double lots2=0;
   double sum0=0;
   double sum=0;
  // double sum1=0;
   /////////////////////////////////////////////////////////////////////
   int Total = OrdersTotal();
   for(int i=Total-1; i>=0; i--)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderType()==OP_BUY)
      {
       lots1=lots1+OrderLots();
       sum0=sum0+OrderLots()*OrderOpenPrice();
      // sum1=sum1+OrderProfit( )+OrderSwap( )+OrderCommission( )  ; 
       kol1=kol1+1;
      }
      if (OrderType()==OP_SELL)
      {
       lots2=lots2+OrderLots();
       sum=sum+OrderLots()*OrderOpenPrice();
      // sum1=sum1+OrderProfit( )+OrderSwap( )+OrderCommission( )  ;
       kol2=kol2+1;
      }
   }
   ////////////////////////////////////////////////////////////////////////////
   double zeroprice1=0;
   double zeroprice2=0;
   if (lots1!=0) zeroprice1=sum0/lots1;
   if (lots2!=0) zeroprice2=sum/lots2;
   zeroprice1 = (MathRound(zeroprice1*MathPow(10,Digits)))/MathPow(10,Digits);
   zeroprice2 = (MathRound(zeroprice2*MathPow(10,Digits)))/MathPow(10,Digits);

 int res1 = 0;
 int res2 = 0;

 double zeroprice10 = NormalizeDouble(zeroprice1 + t*Point, Digits);
 double zeroprice20 = NormalizeDouble(zeroprice2 - t*Point, Digits);
 if (zeroprice10 !=0 || zeroprice20 !=0) {
   int Total2 = OrdersTotal();
   for(int in=Total2-1; in>=0; in--)
   {
      if (!OrderSelect(in,SELECT_BY_POS,MODE_TRADES)) continue;
      if (OrderSymbol()!=Symbol()) continue;     

           if (OrderType()==OP_BUY) {if (zeroprice10 == NormalizeDouble(OrderTakeProfit(), Digits)) res1=res1+1; else { if (OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),zeroprice10,0,CLR_NONE)) res1 = res1+1;} }

           if (OrderType()==OP_SELL){if (zeroprice20 == NormalizeDouble(OrderTakeProfit(), Digits)) res2=res2+1; else { if (OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),zeroprice20,0,CLR_NONE)) res2 = res2+1;} } 
       }   
   }
 
fmv_for_a_way:


Entendido, obrigado. Eu realmente cometi um erro com os preços. Nós verificamos se há perda antes de fazer um pedido pendente. Há também um controle de parada e de perda para a mesma permissividade.

Neste caso particular, o nível de parada do corretor = 0 e a parada e o lucro são definidos muito mais longe. Quanto ao preço do pedido de mercado, meu entendimento é que ele abre ao preço de mercado mais próximo e o nível de parada não tem nada a ver com isso. Certo?

Não, não é. A Alpari usa a dupla propagação como um StopLevel.
 
fmv_for_a_way:

Eu entendi corretamente que você precisa normalizar os valores dentro da ordem de comércio?
Não necessariamente por dentro. Mas pouco antes de enviá-lo, sim.
 
artmedia70:
Não necessariamente dentro de nada. Mas pouco antes do embarque, sim.


Obrigado. Vou procurar uma solução.
 
Pessoal, vocês podem me dizer onde baixar o MT4 build 625?