Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 967

 
Quantos ciclos de teste um disco rígido pode suportar? No sentido de quão rápido ele morrerá? Houve algum caso desse tipo?
 
macleta:

Olá, quero fechar posições direcionadas de forma diferente quando lucro =0 Número diferente de posições de compra e venda, diferentes tamanhos de lote.

O que há de errado com a função de busca de preço médio, ou seja, o ponto de lucro zero?

double AveroProf(string sy="", int op=-1, int mn1=-1) 
   {
 

   double Buylots=0;
   double Buysum=0;
   double Selllots=0;
   double Sellsum=0;
 
   double zeroprice=0;
 
   for (int i=0; i<OrdersTotal(); i++)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderMagicNumber()!=mn1) continue;
      if (OrderType()==OP_BUY)
      {
       Buylots+=OrderLots();
       Buysum+=OrderLots()*OrderOpenPrice();
      }
      if (OrderType()==OP_SELL)
      {
       Selllots+=OrderLots();
       Sellsum+=OrderLots()*OrderOpenPrice();
      }
   
   }
   if ((Buylots-Selllots)>0)
   zeroprice=NormalizeDouble((Buysum - Sellsum)/(Buylots - Selllots),_Digits);

   return( zeroprice);
   }
 
Vladimir Pastushak:

Acredito que este código só funciona para 2 pedidos dirigidos de maneira diferente

Se houver várias ordens de compra e venda e todas com preços abertos diferentes, parece que isso não funciona - você precisa levar em conta o lucro da ordem e o valor do ponto na moeda

olhei o que tenho em mãos, não encontrei nada, mas sei que testei este código

parece que há um indicador no QB que calcula corretamente os níveis para pedidos dirigidos de forma diferente - procurei e encontrei o ano passado

 
macleta:

Olá, quero fechar posições direcionadas de forma diferente quando lucro =0 Número diferente de posições de compra e venda, diferentes tamanhos de lote.

O que há de errado com a função de busca de preço médio, ou seja, o ponto de lucro zero?

Se você quiser colocar paradas, é melhor não fazer isso em posições multidirecionais. Embora com uma distribuição apertada, é claro, pode funcionar bem. Mas mesmo estas empresas de corretagem têm momentos em que o spread salta. É por isso que a melhor variante é calcular o lucro e fechar posições quando é um pouco mais do que 0(ainda é considerado o escorregamento). Ou seja, trabalhar com o momento atual do mercado.
Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
Igor Makanu:

Acredito que este código só funciona para 2 pedidos dirigidos de maneira diferente

Se houver várias ordens de compra e venda e todas com preços abertos diferentes, parece que isso não funciona - você precisa levar em conta o lucro da ordem e o valor do ponto na moeda

olhei o que tenho em mãos, não encontrei nada, mas sei que testei este código

parece haver um indicador no QB que calcula os níveis corretos para pedidos opostos - pesquisei no ano passado e encontrei-o

Então não o verificou corretamente... Este é um cálculo clássico de 100% 0

 
Vladimir Pastushak:

Então você não verificou corretamente... Este é um cálculo clássico de 100% 0

Bem, eu nem vou discutir, voltar à terra, tentar verificar onde você terá um nível de equilíbrio se você o colocar de cima para baixo na tabela

1. compra - compra - compra - compra - venda - venda - venda

2. comprar - vender - vender - vender - vender - comprar - comprar

este é o cálculo corretohttps://www.mql5.com/ru/code/10007 versão 2 , este é o cálculo a ser utilizado

      if(BuyLots>0) BuyPrice = Bid - ((BuyProfit + SellProfit - MyProfit) / (TickValue * BuyLots) * Point); //уровень безубытка для всех BUY ордеров
      if(SellLots>0) SellPrice = Ask + ((SellProfit + BuyProfit - MyProfit) / (TickValue * SellLots) * Point); //уровень безубытка для всех SELL ордеров


verifique melhor seu cálculo clássico

 
As citações estão armazenadas na pasta do testador/histórico?
 

Olá, ajude um iniciante com uma tarefa simples. O indicador em uma janela separada mostra números fracionários 0,123456 1,123456 e eu preciso de números inteiros como 123 1123

Alguém se importa em me dar uma dica sobre como consertar isso?

 
potom:

Olá, ajude um iniciante com uma tarefa simples. O indicador em uma janela separada mostra números fracionários 0,123456 1,123456 e eu preciso de números inteiros como 123 1123

Alguém se importa em me dar uma dica sobre como consertar isso?

int value = (int) 0.12456789*1000000;

A coisa mais fácil que eu poderia pensar)

 
Konstantin Nikitin:
Se você quiser colocar paradas, é melhor não fazê-lo em posições multidirecionais. Esta é uma idéia muito boa para colocar paradas nestas posições. Mas mesmo estas empresas de corretagem têm momentos em que o spread salta. É por isso que a melhor variante é calcular o lucro e fechar posições quando é um pouco mais do que 0 (ainda é considerado o escorregamento). Ou seja, trabalhar com o momento atual do mercado.

Tentando a pirâmide, construindo com um lote menor na tendência, mas com o oposto aberto.

Obrigado a todos que ajudaram.

Razão: