Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1576

 
Eugen8519:

He hecho esta función, gracias por su apoyo y por su ayuda.


De nada)
 
Mihail Matkovskij:

Depende de cómo vayas a calcular la parada y la toma en función de las estadísticas... No está muy claro qué es la "estadística por candelero", cómo la calculas.

La respuesta es como el silbido de un cáncer y lo extraño es que siempre responde a mi pregunta.

 
darirunu1:

La respuesta es como el silbido de un cangrejo de río y es extraño que siempre responda a mi pregunta.

¿Cómo se puede responder a una pregunta en la que no se sabe lo que es...? :)

Para entender cómo calcular el stop y la toma, en su caso, es necesario saber cómo se calculan las estadísticas por candelero? Porque "estadísticas de velas" es un término muy amplio...

Además, ¿qué tipo de proporción de parada y toma quieres...? Aquí hay todo un sistema de comercio que idear para ti, ya que ni siquiera conoces la tarea...
 
Mihail Matkovskij:

¿Cómo se puede responder a una pregunta en la que no está claro de qué se trata...? :)

Para entender cómo calcular el stop y la toma, en tu caso, necesitas saber cómo se calculan las estadísticas de las velas? Dado que "estadísticas de velas" es un término muy flexible...

Además, ¿qué proporción de paradas y tomas quieres...? Aquí hay todo un sistema de comercio para idear, ya que ni siquiera conoces la tarea...

int cnt,ticket,total=0;

st = "horario general Lun-Vie Mie-Mie Jue-Vie \n";

double cHeight, gHeight, max;

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

int H = TimeHour(TimeCurrent()); // determinar la hora actual

double NN = H + N*24; // definir el desplazamiento

si (NN>Barras) NN=Barras;

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

{

int AlturaZ = 0; int z=0;

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

{

AlturaZ = MathAbs(Alto[i]-Bajo[i])/Punto ;

z++;

}

¿Qué opciones sugiere?
 
darirunu1:

¿Qué opciones sugiere?
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++;
  }

}

Por lo que tengo entendido, su movimiento se calcula como la altura de la barra(MathAbs no eran necesarios).

и

double NN = H + N*24;

aquí está tratando de calcular el número de barras... Pero es mejor establecerlo como un número positivo, para empezar.

Puedes calcular el movimiento medio de la barra así:

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

Ahora, puede intentar calcular la parada y la toma basándose en el resultado de la función.

 



Ayúdame a colocar la función correctamente

SendNotification ("текст");




Lo inserté para el mensaje de entrada de la posición aquí

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;
 }

Y ya estoy recibiendo con éxito las notificaciones en mi smartphone.




Pero cómo y dónde insertar

SendNotification

¿Recibir un mensaje cuando alcance el stop loss o eltake profit?

 
Eugen8519:


Ayuda para colocar la función correctamente


Lo inserté para el mensaje de entrada de la posición aquí

Y ya estoy recibiendo con éxito las notificaciones en mi smartphone.


Pero cómo y dónde insertar

¿Recibir un mensaje cuando llegue al Stop Loss o alTake Profit?

Ver OnTradeTransaction

 

Eugen8519:

Pero cómo y dónde insertar

¿Enviar un mensaje cuando se alcanza el Stop Loss o elTake Profit?

En primer lugar, hay que crear una función para controlar el cierre de las órdenes.

 
MakarFX:

En primer lugar, tenemos que crear una función para controlar el cierre de las órdenes.

OnTradeTransaction se activará cuando se active cualquier orden de stop en el servidor.

 
MakarFX:

En primer lugar, tenemos que crear una función para controlar el cierre de las órdenes.

¿Qué tal a través de?

DEAL_REASON_SL
DEAL_REASON_TP
Razón de la queja: