como colocar códigos para os osciladores

 
Tenho uma pergunta específica. Quando ponho Stochastic no meu EA, ele funciona, claro, quando as linhas são cruzadas, mas o problema é que eu não sei como fazê-lo comprar somente quando é vendido em excesso ( 20 ) e vender quando é comprado em excesso ( 80 ). Vladimir, por favor, me ajude - onde e como eu preciso definir os dados para esta função ... Eu ficaria muito grato a você!!!
 
financion.comission:
Minha pergunta é - olha, quando eu coloco Stochastic na EA e defino seus parâmetros, é claro que ele aciona quando as linhas são cruzadas, mas o problema é que eu não sei como fazê-lo comprar apenas na área sobre-vendida ( 20 ) e vender na área sobre-comprada ( 80 ) . Vladimir, por favor, me ajude - onde e como eu preciso definir os dados para esta função ... Eu ficaria muito grato a você!!!

Exemplo de código: RSI intrazone trading Simples.

RSI intrazone trading Simple
RSI intrazone trading Simple
  • www.mql5.com
Торговля только внутри зон индикатора iRSI (Relative Strength Index, RSI)
 
Se o rsi da barra atual/anterior for maior que 80, vender. Da mesma forma, compre
 
Vladimir Karputov:

Exemplo de código: RSI intrazone trading Simples.

Favor me dizer se esses parâmetros podem ser definidos na EA "" geram "".

obrigado de antemão ...!

 
financion.comission:

Diga-me se esses parâmetros podem ser definidos na EA "" geram "". ou devo escrevê-los como códigos no padrão "" da EA """.

Obrigado de antemão ...!

Este é um Expert Advisor pronto para uso. Não há "gerar" ou "modelo".

O bloco responsável pela geração de um sinal comercial é a funçãoSearchTradingSignals.

Aqui obtemos dados indicadores das últimas três barras e comparamos em que zona o indicador está.

//+------------------------------------------------------------------+
//| 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:
Tenho uma pergunta específica - olha, quando eu coloco o estocástico em minha EA e defino seus parâmetros, é claro que ele aciona quando as linhas são cruzadas, mas o problema é que eu não sei como fazê-lo comprar apenas na área sobre-vendida ( 20 ) e vender na área sobre-comprada ( 80) ... Vladimir, por favor, me ajude - onde e como eu preciso definir os dados para esta função ... Eu ficaria muito grato a você!!!

Aqui está um Expert Advisor do terminal - com o qual você pode fazer experiências.

você pode mudar o indicador aqui

//+------------------------------------------------------------------+
//| 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);
  }
//+------------------------------------------------------------------+

aqui você pode fazer isso com o 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))

e aqui você pode experimentá-lo no testador

Arquivos anexados:
0001.mq5  23 kb
 

Cavalheiros, obrigado por responderem, agradeço muito ... mas infelizmente nada funciona ... Por que você acha que sim? Eu lhe enviarei os códigos do meu também - você me diz o que precisa ser corrigido para obter o intervalo certo ...

***

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

Aqui está um Expert Advisor do terminal - com o qual você pode fazer experiências.

você pode mudar o indicador aqui

aqui você pode fazer isso com o estocástico

e aqui você pode experimentá-lo no testador

Cavalheiros, obrigado por responderem, eu realmente agradeço. mas infelizmente nada funciona ... Por que você acha que sim? Eu lhe enviarei os códigos do meu também - diga-me o que você precisa ajustar para obter o alcance certo

***

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

Cavalheiros, obrigado por responderem, agradeço muito ... mas infelizmente nada funciona ... Por que você acha que sim? Eu lhe enviarei os códigos do meu também - você me diz o que precisa ser corrigido para obter o intervalo certo ...

***

Use o botão Código para inserir seu código (pressione o botão e depois insira seu código na janela que aparece) ou use o botão Anexar arquivo para anexar o código.

 
Vladimir Karputov:

Favor inserir código usando botão (botão pressionado, código inserido na janela exibida) ou anexar código usando botão.

Obrigado por seu feedback ... Fiz como você disse e recebi 54 erros e 8 avisos de seus códigos ... que é uma pena ... o que devemos fazer ? ?

Eu lhe enviarei meus códigos ... talvez você possa ajustar a faixa ...

***

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