Asesores Expertos: Flat Channel

 

Flat Channel:

Descripción breve

Flat Channel

Autor: Vladimir Karputov

 

¡Los autores son buenos! Buen trabajo, logró el objetivo - Asesor Experto plana rentable. Ahora lo probé en nuestro mercado, en particular en Si-12.18, ¡da un buen beneficio! He estado buscando un Asesor Experto durante mucho tiempo.

Hay un par de comentarios: 1. Se tarda demasiado tiempo para dibujar, toda la lógica está en OnTick, no es un tick, puede utilizar CBarDetector con período M1 o M5. Yo lo hice con M5 - es mucho más divertido de trabajar. 2. Me gustaría tener min.-max. ancho de canal en la dinámica en función de la volatilidad actual del mercado.

 
Rashit Ibatullin:

¡Los autores son buenos! Buen trabajo, logró el objetivo - Asesor Experto plana rentable. Ahora lo probé en nuestro mercado, en particular en Si-12.18, ¡da un buen beneficio! He estado buscando un Asesor Experto durante mucho tiempo.

Hay un par de comentarios: 1. Se tarda demasiado tiempo para dibujar, toda la lógica está en OnTick, no es basada en ticks, puede utilizar CBarDetector con período M1 o M5. Yo lo hice con M5 - es mucho más divertido de trabajar. 2. Me gustaría tener un ancho de canal mín.-máx. en dinámica dependiendo de la volatilidad actual del mercado.

Para probar rápidamente en el modo visual, es necesario desactivar la salida de comentarios en el código:

/*   Comment("\nСоветник "+__FILE__+" весь в работе:  ",TimeControl(),
           "\nДень:  ",Dayof(STimeCurrent),
           "\nТорговый счёт:  ",m_account.Login(),
           "\nCompany:  ",m_account.Company(),
           "\nEquity:  ",m_account.Equity(),
           "\nВремя по GMT:  "+TimeToString(TimeGMT(),TIME_DATE|TIME_SECONDS),
           "\nSpread:  ",m_symbol.Spread(),
           "\nStopLevel:  ",m_symbol.StopsLevel(),
           "\nПлечо:  ",m_account.Leverage()
           );*/
//--- trabajamos sólo en el momento del nacimiento de nuevo bar
 

¡Gracias a los que implementaron este EA!

Estoy desmontando este EA línea por línea para adaptarlo a moex (está diseñado para forex después de todo), así que tengo una pregunta sobre el código.

//--- FreezeLevel -> para orden pendiente y modificación

   double freeze_level=m_symbol.FreezeLevel()*m_symbol.Point();
   if(freeze_level==0.0)
      freeze_level=(m_symbol.Ask()-m_symbol.Bid())*3.0;
   freeze_level*=1.1;
   
   
   
   
//--- StopsLevel -> para TakeProfit y StopLoss
   double stop_level=m_symbol.StopsLevel()*m_symbol.Point();
   if(stop_level==0.0)
      stop_level=(m_symbol.Ask()-m_symbol.Bid())*3.0;
   stop_level*=1.1;
   

¿por qué hay multiplicación, exactamente por 3 y luego por 1,1?

 
refounder83:

¡Gracias a los que implementaron este EA!

Estoy tomando esta EA aparte línea por línea con el fin de adaptarlo a moex (que está diseñado para la divisa después de todo), así que tengo una pregunta sobre el código.

¿por qué hay multiplicación, exactamente por 3 y luego por 1,1?

Se forex, se bolsa. Pero no sé qué demonios es moex.

 
Usted mismo creó ayer un tema llamado ---- Expert Advisor for moex. Obtener el precio ?
 
Sólo quiero entender la lógica del código y adaptarlo a la bolsa.
 
refounder83:
Sólo quiero entender la lógica del código y adaptarlo a la bolsa de valores

1.Atención: si respondo a alguien, utilizo el botón "Responder".

2.Para escribir el código con precisión, primero averigua todo sobre los niveles SYMBOL_TRADE_STOPS_LEVEL y SYMBOL_TRADE_FREEZE_LEVEL con el soporte técnico del broker: ¿son estos niveles cero en todos los símbolos? ¿Qué significa "cero" - es un nivel flotante o realmente no hay nivel.

 
Vladimir Karputov:

1- Atención: si estoy respondiendo a alguien, utilizo el botón "Responder".

2.Para escribir el código con precisión, primero averigua todo sobre los niveles SYMBOL_TRADE_STOPS_LEVEL y SYMBOL_TRADE_FREEZE_LEVEL con el soporte técnico del broker: ¿son estos niveles cero en todos los símbolos? ¿Qué significa "cero" - es un nivel flotante o realmente no hay nivel?

Escribí al soporte técnico del broker que estos niveles no se emiten.

 
refounder83:

Escribí al soporte técnico del broker que estos niveles no se emiten.

Entonces simplemente ignorarlos (temporalmente comentar las líneas donde se aprenden estos niveles).

 
Vladimir Karputov:

Entonces simplemente ignórelos (comente temporalmente las líneas donde se aprenden esos niveles).

¿Puede decirme si el control de tiempo no funciona en este EA? Hay líneas en el procedimiento TimeControl.

  if(!InpTimeControl)
      return(true);

Es decir, ¿si el valor de InpTimeControl es falso, sigue devolviendo true al procedimiento TimeControl?

bool TimeControl(void)
  {
   if(!InpTimeControl)
      return(true);
      
   MqlDateTime STimeCurrent;
   datetime time_current=TimeCurrent();
   if(time_current==D'1970.01.01 00:00')
      return(false);
   TimeToStruct(time_current,STimeCurrent);
   if(InpStartHour<InpEndHour) // intervalo intradiario
     {

      if(STimeCurrent.hour>=InpStartHour && STimeCurrent.hour<InpEndHour)
         return(true);
     }
   else if(InpStartHour>InpEndHour) // intervalo de tiempo con la transición en un día
     {

      if(STimeCurrent.hour>=InpStartHour || STimeCurrent.hour<InpEndHour)
         return(true);
     }
   else
      return(false);
//---
   return(false);
  }