如何在mt5上获取跨周期的数据

 

如何在mt5上实现下面的策略:

分别获取15分钟和60分钟的macd数据,并且在60分钟macd金叉的前提下,在15分钟macd金叉时买进,15分钟macd死叉时卖出?

下面是用CHATGPT写出的代码,不知道是不是正确?

//+------------------------------------------------------------------------+  
//| Custom indicator initialization function             |  
//+----------------------------------------------------------+  
int OnInit()  
{  
   // 初始化代码  
   return(INIT_SUCCEEDED);  
}  
  
//+----------------------------------------------------------+  
//| Custom indicator iteration function                  |  
//+----------------------------------------------------------+  
int OnCalculate(const int rates_total,  
                 const int prev_calculated,  
                 const datetime &time[],  
                 const double &open[],  
                 const double &high[],  
                 const double &low[],  
                 const double &close[],  
                 const long &tick_volume[],  
                 const long &volume[],  
                 const int &spread[])  
{  
   // 输入参数  
   int FastEMA_15m = 12;  
   int SlowEMA_15m = 26;  
   int SignalSMA_15m = 9;  
   int FastEMA_60m = 12;  
   int SlowEMA_60m = 26;  
   int SignalSMA_60m = 9;  
  
   // 变量  
   double MACD_Hist_15m, MACD_Signal_15m;  
   double MACD_Hist_60m_Buffer[500]; // 假设60分钟数据不会超过500个bar  
   double MACD_Signal_60m_Buffer[500];  
   int copied_bars_60m;  
  
   // 计算当前时间周期的MACD  
   MACD_Hist_15m = iMACD(NULL, 0, FastEMA_15m, SlowEMA_15m, SignalSMA_15m, PRICE_CLOSE, MODE_HIST);  
   MACD_Signal_15m = iMACD(NULL, 0, FastEMA_15m, SlowEMA_15m, SignalSMA_15m, PRICE_CLOSE, MODE_SIGNAL);  
  
   // 从60分钟周期复制历史数据  
   copied_bars_60m = CopyBuffer(_Symbol, PERIOD_H6, 0, 0, 0, MACD_Hist_60m_Buffer, sizeof(MACD_Hist_60m_Buffer));  
   
 
目視知道是錯誤的
原因: