如何为振荡器输入代码

 
我有一个具体的问题,当我在我的EA中设置随机指数时,当这些线被交叉时,它当然会工作,但问题是,我不知道如何让它只在超卖(20)时买入,在超买(80)时卖出。弗拉基米尔请帮助我 - 我需要在哪里以及如何为这个函数设置数据...我将对你表示感谢!!。
 
financion.comission:
我的问题是--看,当我在EA中设置随机指数并设定其参数时,它当然会在线条交叉时触发,但问题是,我不知道如何让它只在超卖区(20)买入,在超买区(80)卖出。弗拉基米尔请帮助我 - 我需要在哪里以及如何为这个函数设置数据...我将对你表示感谢!!。

示例代码。RSI内部交易简单

RSI intrazone trading Simple
RSI intrazone trading Simple
  • www.mql5.com
Торговля только внутри зон индикатора iRSI (Relative Strength Index, RSI)
 
如果当前/前一栏的rsi值大于80,则卖出。同样地购买
 
Vladimir Karputov:

示例代码。RSI内部交易简单

请告诉我这些参数是否可以在EA中设置""生成""。

提前感谢你......!

 
financion.comission:

告诉我这些参数是否可以在EA中设置""生成""或者我应该把它们写成EA""模式""中的代码。

提前感谢你......!

这是一个现成的专家顾问。不存在 "生成 "或 "模板"。

负责生成交易信号的模块是SearchTradingSignals 函数。

在这里,我们从最后三个条形图中获得指标数据,并比较指标处于什么区域

//+------------------------------------------------------------------+
//| 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:
我有一个具体的问题--看,当我在我的EA中设置随机指数并设定其参数时,它当然会在线条交叉时触发,但问题是,我不知道如何让它只在超卖区(20)买入,在超买区(80)卖出......弗拉基米尔请帮助我 - 我需要在哪里以及如何为这个函数设置数据...我将对你表示感谢!!。

这里有一个来自终端的专家顾问--你可以用它来实验。

你可以在这里改变指标

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

在这里,你可以用随机的

//--- 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))

在这里,你可以在测试器中试用它

附加的文件:
0001.mq5  23 kb
 

先生们,谢谢你们的回答,我真的很感激......。但不幸的是,没有任何工作...我也会把我的代码发给你--你告诉我需要纠正什么以获得正确的范围......。

***

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

这里有一个来自终端的专家顾问--你可以用它来实验。

你可以在这里改变指标

在这里,你可以用随机的

在这里,你可以在测试器中试用它

先生们,谢谢你们的回答,我真的很感激......。但不幸的是,没有任何工作...我也会把我的代码发给你--告诉我你需要调整什么以获得正确的范围

***

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

先生们,谢谢你们的回答,我真的很感激......。但不幸的是,没有任何工作...我也会把我的代码发给你--你告诉我需要纠正什么以获得正确的范围......。

***

请使用按钮编码 ,插入你的代码(按下按钮,然后在出现的窗口中插入你的代码)或使用按钮附上文件 ,附上代码。

 
Vladimir Karputov:

请使用按钮插入代码(按下按钮,在出现的窗口中插入代码)或使用按钮附加代码。

谢谢你的反馈......我按你说的做了,从你的代码中得到了54个错误和8个警告......真糟糕我们该怎么做??

我将把我的代码发给你...也许你可以调整范围...

***

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • 2021.04.21
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
 
我们只需要调整范围!!!"。