MetaTrader 5(MT5)新手 _Orz 求救! OnCalculate() 與 OnTick() 不能同時使用????

 

各位先進大大好 :

OnCalculate() 與 OnTick() 不能同時使用????

目前我有自行研究出了 #property indicator_chart_window  可以繪出2條不同週期的AMA,
目前想要用計算出的最新的 AMA週期9的與週期12的進行交叉比對再OnTick() 判斷線型趨勢再開單,
但是 我只要用了 OnCalculate() 再執行時候都會變成 這個模式(只有顯示自訂指標)只有指標顯示無法進行演算法交易???
再而不是這個 模式可以同時顯示跟交易,請問大大有甚麼樣的解決方式???

 
在你的EA使用iCustom調用你設計的指標就可以的
 
Hung Wen Lin #:
在你的EA使用iCustom調用你設計的指標就可以的

Hung Wen Lin 大大 您好:

我在MT5原廠的Help文件上看到 iCustom 這個指令 也是有用  OnCalculate(),看完文件敘述他的返回值是MA_handle 而不是當見算出來的值。

煩請大大給我提點提點一下。

#property indicator_separate_window

//+------------------------------------------------------------------+
//| 自定义指标重复函数                                                  |
//+------------------------------------------------------------------+
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 copy=CopyBuffer(MA_handle,0,0,rates_total,Label1Buffer);
   Print("copy = ",copy,"    rates_total = ",rates_total);
//--- 如果尝试失败-这里报道
   if(copy<=0)
      Print("An attempt to get the values if Custom Moving Average has failed");
//--- 为下次调用返回prev_calculated值
   return(rates_total);
  }
//+------------------------------------------------------------------+

 
Hung Wen Lin #:
在你的EA使用iCustom調用你設計的指標就可以的
handle_AMA14=iCustom(NULL,0,"Examples\\Custom Moving Average",
                     period,
                     m_iama_shift,
                     MA_Method,
                     PRICE_CLOSE // using the close prices
                     );

      Print("handle_AMA14 = ",handle_AMA14,"  error = ",GetLastError());

2023.11.01 03:39:16.838 AMA_AutoTrading_v1 (XAUUSD,H1) handle_AMA14 = 10  error = 4902

Error 4902 = 

ERR_WRONG_INTERNAL_PARAMETER

4002

客户端函数内部调用的错误参数


請問大大這是甚麼問題??

我是先測試原廠給的範例程式。

 
Hung Wen Lin #:
用你設計的指標就可以的

請問要怎麼調用我設計的指標?

"Examples\\Custom Moving Average", -->請問是這個路徑換掉嗎??? 換成?指標檔案的名稱嗎??

 

MT5調用指標需要幾個步驟

1/. 宣告指定處理的指標 int handle=icustom()

2/. 將需要處理的指標數據複製到暫存器 CopyArray(handle,.....,buffer) ==> 這部分還區要確定指標顯示有幾個數據 要讀取哪一個數據 

3/. 調用暫存器的數據 buffer[i]

你可能需要先了解一下正確的使用方法 才能順利調用你的自訂義指標

建議你找一下網上其他的範例 參考一下指標調用的順序跟方法 

幫助文件的範例是運用在指標的設計 並不是運用在EA的設計

原因: