黑道圣徒3迅雷下载:如何获得MT5指定时间周期的开盘价、收盘价、最高价、最低价?——梁大鹏 黄金分析师 外汇分...
来源:百度文库 编辑:九乡新闻网 时间:2024/05/07 12:40:06
如何获得MT5指定时间周期的开盘价、收盘价、最高价、最低价?(2011-02-04 16:45:33)标签:ea mt5分类:EA 如何获得MT5指定时间周期的开盘价、收盘价、最高价、最低价?
这个问题要是在MT4里,简直是基础的不能再基础的东西了,但是到了MT5里,却是异常的复杂。
要分两种情况:
1 在编写指标里:
是作为OnCalculate的参数带来的如下代码:
复制代码
1.
2. int _disibledevent=SymbolInfoDouble(Symbol(),SYMBOL_ASK);//得到当前的ask价格
7. close=SymbolInfoDouble(Symbol(),SYMBOL_BID);//得到当前的bid价格
8. low=SymbolInfoDouble(Symbol(),SYMBOL_BIDLOW);//注意这里没有时间段参数,这里得到的是一天的最低价。
9. high=SymbolInfoDouble(Symbol(),SYMBOL_BIDHIGH);//注意这里没有时间段参数,这里得到的是一天的最高价。
10. }
找了半天SymbolInfoDouble这个函数根本不能实现得到指定时间周期的open close low high 价格。
后来我终于找到了解决方法,如下:
如果系统没有提供如何获得指定周期的开盘,最低价,最低价,那么我只能自己写一个函数来获得了。
iOpen(string symbol,ENUM_TIMEFRAMES timeframe,int index)//此函数是我构造的,和MT4中系统自带的iOpen 一样用法。
iOpen(Symbol(),PERIOD_MN1,0);//表示获得最近一根月线的开盘价。
iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index)//此函数是我构造的,和MT4中系统自带的iLow 一样用法。
iLow(Symbol(),PERIOD_MN1,0);//表示获得最近一根月线的最低价。
iHigh(string symbol,ENUM_TIMEFRAMES timeframe,int index)//此函数是我构造的,和MT4中系统自带的iHigh 一样用法。
iHigh(Symbol(),PERIOD_MN1,0);//表示获得最近一根月线的最高价。
至于收盘价其实,和bid价格是一样的所以完全就可以用系统自带的SymbolInfoDouble(Symbol(),SYMBOL_BID)获得。
下面是完整的代码:
复制代码
1.
2. #property copyright "2009, MetaQuotes Software Corp."
3. #property link "http://www.mt5.net.cn"
4. #property version "1.00"
5. double Open[],High[],Low[];
6. int _disibledevent=iOpen(Symbol(),PERIOD_MN1,0); //表示获得最近一根月线的开盘价。
17. close=SymbolInfoDouble(Symbol(),SYMBOL_BID); //表示获得最近一根月线的收盘价。
18. low=iLow(Symbol(),PERIOD_MN1,0); //表示获得最近一根月线的最低价。
19. high=iHigh(Symbol(),PERIOD_MN1,0); //表示获得最近一根月线的最高价。
20. }
21. double iOpen(string symbol,ENUM_TIMEFRAMES timeframe,int index)
22. {
23. double pen=0;
24. ArraySetAsSeries(Open,true);
25. int copied=CopyOpen(symbol,timeframe,0,Bars(symbol,timeframe),Open); //将指定时间周期的开盘价格复制到指定数组。
26. if(copied>0 && index 27. return(open);
28. }
29. double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index)
30. {
31. double low=0;
32. ArraySetAsSeries(Low,true);
33. int copied=CopyLow(symbol,timeframe,0,Bars(symbol,timeframe),Low);
34. if(copied>0 && index 35. return(low);
36. }
37. double iHigh(string symbol,ENUM_TIMEFRAMES timeframe,int index)
38. {
39. double high=0;
40. ArraySetAsSeries(High,true);
41. int copied=CopyHigh(symbol,timeframe,0,Bars(symbol,timeframe),High);
42. if(copied>0 && index 43. return(high);
44. }
45. //+------------------------------------------------------------------+
这个问题要是在MT4里,简直是基础的不能再基础的东西了,但是到了MT5里,却是异常的复杂。
要分两种情况:
1 在编写指标里:
是作为OnCalculate的参数带来的如下代码:
复制代码
1.
2. int _disibledevent=SymbolInfoDouble(Symbol(),SYMBOL_ASK);//得到当前的ask价格
7. close=SymbolInfoDouble(Symbol(),SYMBOL_BID);//得到当前的bid价格
8. low=SymbolInfoDouble(Symbol(),SYMBOL_BIDLOW);//注意这里没有时间段参数,这里得到的是一天的最低价。
9. high=SymbolInfoDouble(Symbol(),SYMBOL_BIDHIGH);//注意这里没有时间段参数,这里得到的是一天的最高价。
10. }
找了半天SymbolInfoDouble这个函数根本不能实现得到指定时间周期的open close low high 价格。
后来我终于找到了解决方法,如下:
如果系统没有提供如何获得指定周期的开盘,最低价,最低价,那么我只能自己写一个函数来获得了。
iOpen(string symbol,ENUM_TIMEFRAMES timeframe,int index)//此函数是我构造的,和MT4中系统自带的iOpen 一样用法。
iOpen(Symbol(),PERIOD_MN1,0);//表示获得最近一根月线的开盘价。
iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index)//此函数是我构造的,和MT4中系统自带的iLow 一样用法。
iLow(Symbol(),PERIOD_MN1,0);//表示获得最近一根月线的最低价。
iHigh(string symbol,ENUM_TIMEFRAMES timeframe,int index)//此函数是我构造的,和MT4中系统自带的iHigh 一样用法。
iHigh(Symbol(),PERIOD_MN1,0);//表示获得最近一根月线的最高价。
至于收盘价其实,和bid价格是一样的所以完全就可以用系统自带的SymbolInfoDouble(Symbol(),SYMBOL_BID)获得。
下面是完整的代码:
复制代码
1.
2. #property copyright "2009, MetaQuotes Software Corp."
3. #property link "http://www.mt5.net.cn"
4. #property version "1.00"
5. double Open[],High[],Low[];
6. int _disibledevent=iOpen(Symbol(),PERIOD_MN1,0); //表示获得最近一根月线的开盘价。
17. close=SymbolInfoDouble(Symbol(),SYMBOL_BID); //表示获得最近一根月线的收盘价。
18. low=iLow(Symbol(),PERIOD_MN1,0); //表示获得最近一根月线的最低价。
19. high=iHigh(Symbol(),PERIOD_MN1,0); //表示获得最近一根月线的最高价。
20. }
21. double iOpen(string symbol,ENUM_TIMEFRAMES timeframe,int index)
22. {
23. double pen=0;
24. ArraySetAsSeries(Open,true);
25. int copied=CopyOpen(symbol,timeframe,0,Bars(symbol,timeframe),Open); //将指定时间周期的开盘价格复制到指定数组。
26. if(copied>0 && index
28. }
29. double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index)
30. {
31. double low=0;
32. ArraySetAsSeries(Low,true);
33. int copied=CopyLow(symbol,timeframe,0,Bars(symbol,timeframe),Low);
34. if(copied>0 && index
36. }
37. double iHigh(string symbol,ENUM_TIMEFRAMES timeframe,int index)
38. {
39. double high=0;
40. ArraySetAsSeries(High,true);
41. int copied=CopyHigh(symbol,timeframe,0,Bars(symbol,timeframe),High);
42. if(copied>0 && index
44. }
45. //+------------------------------------------------------------------+
如何获得MT5指定时间周期的开盘价、收盘价、最高价、最低价?——梁大鹏 黄金分析师 外汇分...
开盘价+收盘价-最低价+最低价(简凡理论) 立柱量法则_第5页-股票外汇信息网
如何选择合适的做单周期和指标——“三重滤网”_外汇黄金期货吧2010-11-12黄金期货实...
开盘价成为最高价意味着什么
python如何获取指定的系统时间串
投资外汇黄金、商品期货和股票的比较分析
谈谈技术分析中的“时间周期的选择”
MT5
k线的基础与运用,k线的画法和看法,开盘,最高价,最低价,收盘--红k线
如何利用收盘价的盘面反馈炒股
如何利用收盘价的盘面反馈炒股
如何利用收盘价的盘面反馈炒股
如何利用收盘价的盘面反馈炒股
占豪收评:反弹周期下跌 短线如何把握入场时机——黄金游戏-占豪的投资博客——东方财富网博客
获得指定窗口指针
关于时间周期的故事:
外汇的基本面分析:经济数据分析
时间周期
周期 短线 反弹 选股 持股 炒股 股价 2011-04-27收评:阶段调整基本到位 短线进入反弹周期—黄金游戏-占豪的投资博客
司法如何获得国民的信赖——评孙伟铭案判决
沙砾与黄金——(抓住时间的人
开盘价的三种形态——股虫——东方财富网博客
炒外汇黄金的五个阶段
外汇与黄金的密切关系