Loading ...

再请教个技术问题

Author: wsnrag, Created: 2016-05-06 09:47:57, Updated:

比如当下机器人是1分钟周期,如何算出这个1分所处的日线周期的MA(5)均线的值 用API这个 GetRecords(Period) 返回一个K线历史, K线周期在创建机器人时指定, Record数组结构 不加参数, 默认返回添加机器人时时指量的K线周期, 但也可以自定义K线周期 支持: PERIOD_M1 指1分钟, PERIOD_M5 指5分钟, PERIOD_M15 指15分钟, PERIOD_M30 指30分钟, PERIOD_H1 指1小时, PERIOD_D1 指一天 取过来的不正确,用了这个GetRecords(PERIOD_D1) 算MA(5)均线时,里面5个K线的值是按 循环取的当下1分钟级别的值,所以在1分钟下,取日线MA(5)就错了 不知道怎么实现,各位高手们,大神们,帮忙看看


More

逐浪蚊子 用R取的值做K线是截取的时间点,时间不到该K线的收盘就出不来,K线就算不出来,所以导致有一根K线的误差。你要算均线就会导致现在这个点的收盘价和实际不符,在越大的周期情况越严重。 既然你要使用均线,我建议整个均线组后退一组周期(时间周期关联的均线组)。 也可以直接使用一分钟的均线,24乘以60就是一天的,误差可以减小到一分钟以内。 R的参数是有规定的,你可以看看。在没有参数的时候才会默认机器人的周期。如果你带了参数按照参数走。

momox 说的有点绕,看不懂,要算日线MA就用GetRecords(PREIOD_D1)去算啊,跟你机器人是什么周期没关系

小小梦 不管用什么周期 records 这个对象数组最后一个 元素(K线最后一柱),都是 在变动的,除非这个周期完全走完,才确定,如果是日周期,今天不过完,最后的数值是不确定的。说的有点远,问下 题主你这是 回测的?还是机器人 模拟盘跑的? 回测的你在回测参数中指定K线周期后,不管在代码里 给 GetRecords加哪个参数都是无效的,只按照开始设定的周期获取。

wsnrag 我的意思是当下机器人是1分钟级别,用Sleep(1000)来循环,rec=GetRecords(PREIOD_D1)然后用 ma(rec,5) 来计算日线5均线, 实际上需要5个日K线才能算出来,而在1分钟级别下 取过来的数组是 在同一天Sleep(1000)后的值的。所以取出来的是错误的,不知道是我弄错了还是本身就取不到,理论上应该是可行的。