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

 
Eugen8519:

Fiz esta característica, obrigado por seu apoio e por sua ajuda.


De nada)
 
Mihail Matkovskij:

Depende de como você vai calcular as paradas e tomadas com base em estatísticas... Não está muito claro o que é a "estatística por candelabro", como você a calcula.

A resposta é como o apito de um câncer e o estranho é que ele sempre responde à minha pergunta.

 
darirunu1:

A resposta é como o assobio de um lagostim e é estranho que ela sempre responda à minha pergunta.

Como você pode responder a uma pergunta em que não sabe o que é...? :)

Para entender como calcular a parada e tomar, no seu caso, você precisa saber como calcular as estatísticas por candelabro? Porque "estatísticas de candelabros" é um termo muito amplo...

Além disso, que tipo de parada e relação você quer...? Há todo um sistema comercial a ser criado para você aqui, pois você nem conhece a tarefa em mãos...
 
Mihail Matkovskij:

Como você pode responder a uma pergunta onde não está claro do que se trata...? :)

Para entender como calcular a parada e a tomada, no seu caso, você precisa saber como calcular as estatísticas do candelabro? Já que "estatísticas de castiçais" é um termo muito flexível...

Além disso, que parada e relação você quer...? Há todo um sistema comercial a ser criado para você aqui, pois você nem conhece a tarefa em mãos...

int cnt,ticket,total=0;

st = "horas gerais de segunda a sexta Thu-Fri Wed-Wed Thu-Fri \n";

dupla cAltura, gAltura, máx;

int sat, sun, mon, thu, wen, ths, fri; //, NN;

int H = TimeHour(TimeCurrent()); // determinar a hora atual

duplo NN = H + N*24; // definir offset

se (NN>Bars) NN=Bars;

para (int t=0; t<24; t++)

{

int AlturaZ = 0; int z=0;

para (int i=0; i<=NNNN; i++)

{

HeightZ = MathAbs(High[i]-Low[i])/Point ;

z++;

}

Que opções você sugere?
 
darirunu1:

Que opções você sugere?
int cnt,ticket,total=0;

st = "часы общ. пон. вт. ср. чт. пт. \n";

double cHeight, gHeight, Max;

int sat, sun, mon, thu, wen, ths, fri; //, NN;

int H = TimeHour(TimeCurrent()); // определим текущий час

double NN = H + N*24; // определим смещение

if (NN>Bars) NN=Bars;

for (int t=0; t<24; t++)

{

  int HeightZ = 0; int z=0;

  for (int i=0; i<=NN; i++)

  {

    HeightZ = (High[i]-Low[i])/Point;

    z++;
  }

}

Tanto quanto sei, seu movimento é calculado como a altura da barra(MathAbs não eram necessários).

и

double NN = H + N*24;

aqui você está tentando calcular o número de barras... Mas é melhor defini-lo apenas como um número positivo, para começar.

Você pode calcular o movimento médio das barras desta forma:

double avBarMove(int _period) {
  double cmMove = 0;
  for (int i = 0; i < _period; i++)
    cmMove += High[i]-Low[i];
  return cmMove / _period;
} 

Agora, você pode tentar calcular a parada e tomar com base no resultado da função.

 



Ajude-me a posicionar a função corretamente

SendNotification ("текст");




Inseriu-a aqui para a mensagem de entrada de posição

void OPENORDER(string ord)

  {
  
  double priceL=m_symbol.Ask();
   if(ord=="Sell")      
    SendNotification ("текст");

        //--- check for free money
            if(m_account.FreeMarginCheck(Symbol(),ORDER_TYPE_BUY,my_lot,priceL)<0.0)
               printf("We have no money. Free Margin = %f",m_account.FreeMargin());
            else
      if(!m_trade.Sell(my_lot,Symbol(),m_symbol.Bid(),my_SL,my_TP,""))
         Print("BUY_STOP -> false. Result Retcode: ",m_trade.ResultRetcode(),
               ", description of Retcode: ",m_trade.ResultRetcodeDescription(),
               ", ticket of order: ",m_trade.ResultOrder());                     // Если sell, то не открываемся
     double priceS=m_symbol.Bid();
   if(ord=="Buy")
    SendNotification ("текст");
 //--- check for free money
            if(m_account.FreeMarginCheck(Symbol(),ORDER_TYPE_SELL,my_lot,priceS)<0.0)
               printf("We have no money. Free Margin = %f",m_account.FreeMargin());
            else
      if(!m_trade.Buy(my_lot,Symbol(),m_symbol.Ask(),my_SL,my_TP,""))
 
         Print("Buy -> false. Result Retcode: ",m_trade.ResultRetcode(),
               ", description of result: ",m_trade.ResultRetcodeDescription(),
               ", ticket of deal: ",m_trade.ResultDeal());
   return;
 }

E eu já estou recebendo notificações com sucesso em meu smartphone.




Mas como e onde inserir

SendNotification

Para receber uma mensagem quando eu parar de perder outer lucro?

 
Eugen8519:


Ajuda para posicionar a função corretamente


Inseriu-a aqui para a mensagem de entrada de posição

E eu já estou recebendo notificações com sucesso em meu smartphone.


Mas como e onde inserir

Para receber uma mensagem quando eu chegar a Stop Loss ouTake Profit?

Ver OnTradeTransaction

 

Eugen8519:

Mas como e onde inserir

Para enviar uma mensagem quando o Stop Loss ouTake Profit for atingido?

Primeiro, você precisa criar uma função para controlar o fechamento dos pedidos.

 
MakarFX:

Primeiro, precisamos criar uma função para controlar o fechamento dos pedidos.

A OnTradeTransaction será acionada quando qualquer ordem de parada no servidor for acionada.

 
MakarFX:

Primeiro, temos que criar uma função para controlar o fechamento dos pedidos.

Que tal através?

DEAL_REASON_SL
DEAL_REASON_TP
Razão: