cómo poner los códigos de los osciladores

 
Tengo una pregunta concreta, cuando pongo el estocástico en mi EA, funciona por supuesto cuando se cruzan las líneas, pero el problema es que no sé cómo hacer que compre sólo cuando está sobrevendido ( 20 ) y venda cuando está sobrecomprado ( 80 ). Vladimir, por favor, ayúdame - dónde y cómo tengo que establecer los datos para esta función ... ¡¡¡Le estaré muy agradecido !!!
 
financion.comission:
Mi pregunta es - mira, cuando configuro el estocástico en el EA y establezco sus parámetros, por supuesto se dispara cuando se cruzan las líneas, pero el problema es que no sé cómo hacer que compre sólo en la zona de sobreventa ( 20 ) y venda en la zona de sobrecompra ( 80 ) . Vladimir, por favor, ayúdame - dónde y cómo tengo que establecer los datos para esta función ... ¡¡¡Le estaré muy agradecido!!!

Ejemplo de código: RSI intrazona trading Simple.

RSI intrazone trading Simple
RSI intrazone trading Simple
  • www.mql5.com
Торговля только внутри зон индикатора iRSI (Relative Strength Index, RSI)
 
Si el rsi de la barra actual/anterior es mayor que 80, vende. Del mismo modo comprar
 
Vladimir Karputov:

Ejemplo de código: RSI intrazona trading Simple.

Por favor, dígame si estos parámetros se pueden establecer en el EA "" generar ""

¡gracias de antemano ...!

 
financion.comission:

Dime si estos parámetros se pueden establecer en el EA "" generar "" o debo escribirlos como códigos en el patrón EA ""

Gracias de antemano...

Este es un Asesor Experto ya hecho. No hay "generación" ni "plantilla".

El bloque que se encarga de generar una señal de trading es la funciónSearchTradingSignals.

Aquí obtenemos los datos del indicador de las tres últimas barras y comparamos en qué zona se encuentra el indicador.

//+------------------------------------------------------------------+
//| Search trading signals                                           |
//+------------------------------------------------------------------+
bool SearchTradingSignals(void)
  {
   if(m_prev_bars==m_last_deal_in) // on one bar - only one deal
      return(true);
   double rsi[];
   ArraySetAsSeries(rsi,true);
   int start_pos=0,count=3;
   if(!iGetArray(handle_iRSI,0,start_pos,count,rsi))
      return(false);
   int size_need_position=ArraySize(SPosition);
//--- BUY Signal
   if(rsi[m_bar_current]>Inp_RSI_Level_Up)
     {
      if(!InpReverse)
        {
         ArrayResize(SPosition,size_need_position+1);
         SPosition[size_need_position].pos_type=POSITION_TYPE_BUY;
         if(InpPrintLog)
            Print(__FILE__," ",__FUNCTION__,", OK: ","Signal BUY");
         return(true);
        }
      else
        {
         ArrayResize(SPosition,size_need_position+1);
         SPosition[size_need_position].pos_type=POSITION_TYPE_SELL;
         if(InpPrintLog)
            Print(__FILE__," ",__FUNCTION__,", OK: ","Signal SELL");
         return(true);
        }
     }
//--- SELL Signal
   if(rsi[m_bar_current]<Inp_RSI_Level_Down)
     {
      if(!InpReverse)
        {
         ArrayResize(SPosition,size_need_position+1);
         SPosition[size_need_position].pos_type=POSITION_TYPE_SELL;
         if(InpPrintLog)
            Print(__FILE__," ",__FUNCTION__,", OK: ","Signal SELL");
         return(true);
        }
      else
        {
         ArrayResize(SPosition,size_need_position+1);
         SPosition[size_need_position].pos_type=POSITION_TYPE_BUY;
         if(InpPrintLog)
            Print(__FILE__," ",__FUNCTION__,", OK: ","Signal BUY");
         return(true);
        }
     }
//---
   return(true);
  }
 
financion.comission:
Tengo una pregunta concreta, mira, cuando pongo el estocástico en mi EA y configuro sus parámetros, por supuesto se dispara cuando se cruzan las líneas, pero el problema es que no sé cómo hacer que compre sólo en zona de sobreventa ( 20 ) y venda en zona de sobrecompra ( 80) ... Vladimir, por favor, ayúdame - dónde y cómo tengo que establecer los datos para esta función ... ¡¡¡Les agradecería mucho!!!

Aquí hay un Asesor Experto de la terminal - con el que puede experimentar.

puede cambiar el indicador aquí

//+------------------------------------------------------------------+
//| Initialization of the indicators                                 |
//+------------------------------------------------------------------+
bool CSampleExpert::InitIndicators(void)
  {
//--- create MACD indicator
   if(m_handle_macd==INVALID_HANDLE)
      if((m_handle_macd=iStochastic(NULL,0,5,3,3,MODE_SMA,STO_LOWHIGH))==INVALID_HANDLE)
        {
         printf("Error creating MACD indicator");
         return(false);
        }
//--- succeed
   return(true);
  }
//+------------------------------------------------------------------+

aquí se puede hacer con el estocástico

//--- check for long position (BUY) possibility
   if(m_macd_current<20)
      if(m_macd_current>m_signal_current && m_macd_previous<m_signal_previous)
         if(MathAbs(m_macd_current)>(m_macd_open_level))
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//--- check for short position (SELL) possibility
   if(m_macd_current>80)
      if(m_macd_current<m_signal_current && m_macd_previous>m_signal_previous)
         if(m_macd_current>(m_macd_open_level))

y aquí puedes probarlo en el probador

Archivos adjuntos:
0001.mq5  23 kb
 

Señores, gracias por contestar se lo agradezco mucho... pero lamentablemente nada funciona... ¿Por qué crees que es así? Te enviaré los códigos del mío también - me dices lo que hay que corregir para obtener el rango correcto ...

***

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • 2021.04.21
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
 
SanAlex:

Aquí hay un Asesor Experto de la terminal - con el que puede experimentar.

puede cambiar el indicador aquí

aquí se puede hacer con el estocástico

y aquí puedes probarlo en el probador

Señores, gracias por contestar se lo agradezco mucho... pero lamentablemente nada funciona... ¿Por qué crees que es así? Te enviaré los códigos del mío también - dime lo que tienes que ajustar para conseguir el rango correcto

***

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • 2021.04.21
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
 
financion.comission:

Señores, gracias por contestar se lo agradezco mucho... pero lamentablemente nada funciona... ¿Por qué crees que es así? Te enviaré los códigos del mío también - me dices lo que hay que corregir para obtener el rango correcto ...

***

Por favor, utilice el botón Código para insertar su código (pulse el botón y luego inserte su código en la ventana que aparece) o utilice el botón Adjuntar archivo para adjuntar el código.

 
Vladimir Karputov:

Por favor, inserte el código usando el botón (presionado el botón, se inserta el código en la ventana que aparece) o adjunte el código usando el botón.

Gracias por tus comentarios ... Lo hice como dijiste y obtuve 54 errores y 8 advertencias de tus códigos ... es una pena... ¿qué hacemos? ?

Te enviaré mis códigos ... tal vez usted puede ajustar el rango ...

***

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • 2021.04.21
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
 
¡¡¡solo hay que ajustar el rango !!!