请问如何获取某个时段内成交量最大那根k线收盘价

 
例如6:00-18:00,成交量最大那根k线的收盘价,谢谢
 

沒有自帶的指令

需要另外自定義一個函數塊做計算

 
 
Hung Wen Lin #:

沒有自帶的指令

需要另外自定義一個函數塊做計算

不是很懂mt的编程,很麻烦么
 
olispa #:
不是很懂mt的编程,很麻烦么

https://www.mql5.com/zh/docs/series

如2楼所述,MT5没有专门函数定位到最大成交量的K线。

一方面,外汇交易没有统一交易所,所以没法提供真实成交量;

另一方面,一段区间里成交量最大的K线通常是最高价或最低价。可以用ihighest或ilowest获得。

那么收盘价的公式就是:

iClose(NULL,PERIOD_CURRENT,iHighest(NULL,0,MODE_CLOSE,count,start))
MQL5文档: 时间序列和指标访问
MQL5文档: 时间序列和指标访问
  • www.mql5.com
时间序列和指标访问 - MQL5参考 - 参考MetaTrader 5的算法/自动交易语言
 
olispa #:
不是很懂mt的编程,很麻烦么
不麻煩 但是編程不熟還是有點困難
1./ 先定位鎖定時間的Bar 
2./ 將交易量儲存到數組
3./ 抓出數組最大數的位置
4./ 抓出位置的收盤價
 
我知道你想要什么,可以实现,私信我
 
Hung Wen Lin #:
不麻煩 但是編程不熟還是有點困難
1./ 先定位鎖定時間的Bar 
2./ 將交易量儲存到數組
3./ 抓出數組最大數的位置
4./ 抓出位置的收盤價

以下使用chatgtp查询的,但载入mt5有几处错误,不知道您是否可以看一下问题出在哪里,如何改一下?

// 获取18:00到21:00之间成交量最大的K线

datetime start = StrToTime("18:00"), end = StrToTime("21:00"); int max_volume_bar = iBarShift(_Symbol, PERIOD_M1, end); int max_volume = -1; for (int i = max_volume_bar; i >= 0; i--) { int volume = (int) iVolume(_Symbol, PERIOD_M1, i); datetime time = iTime(_Symbol, PERIOD_M1, i); if (volume > max_volume && time >= start) { max_volume = volume; max_volume_bar = i; } }

// 绘制水平线 double price = iClose(_Symbol, PERIOD_M1, max_volume_bar); ObjectCreate("Max Volume Line", OBJ_HLINE, 0, Time[max_volume_bar], price); ObjectSet("Max Volume Line", OBJPROP_COLOR, Red); ObjectSet("Max Volume Line", OBJPROP_STYLE, STYLE_DASH);


我载入后,提示

 
olispa #:

以下使用chatgtp查询的,但载入mt5有几处错误,不知道您是否可以看一下问题出在哪里,如何改一下?

// 获取18:00到21:00之间成交量最大的K线

datetime start = StrToTime("18:00"), end = StrToTime("21:00"); int max_volume_bar = iBarShift(_Symbol, PERIOD_M1, end); int max_volume = -1; for (int i = max_volume_bar; i >= 0; i--) { int volume = (int) iVolume(_Symbol, PERIOD_M1, i); datetime time = iTime(_Symbol, PERIOD_M1, i); if (volume > max_volume && time >= start) { max_volume = volume; max_volume_bar = i; } }

// 绘制水平线 double price = iClose(_Symbol, PERIOD_M1, max_volume_bar); ObjectCreate("Max Volume Line", OBJ_HLINE, 0, Time[max_volume_bar], price); ObjectSet("Max Volume Line", OBJPROP_COLOR, Red); ObjectSet("Max Volume Line", OBJPROP_STYLE, STYLE_DASH);


我载入后,提示

ChatGPT對C++或是python可以給到比較準確的代碼 MQL會問題比較多

未經過訓練 很難一次就給出正確的代碼的 

目視你提供的代碼 邏輯上應該不會錯太多 但是指令錯誤 需要修改