Loading ...

求助:如何获取一根k线的开盘价和收盘价

Author: 丧尸来来, Created: 2017-01-21 17:08:57, Updated:

求助

想请教一个问题。 我是一个最近才开始学着写策略的用户,有一些想要请教的问题,非常基础。可能会在论坛上有现成的答案,但我还没找到,如果有现成的答案的话,希望可以发个链接,万分感谢。

问题是这样的: 如何能够获得刚走完的那根K线以及它之前的那根K线的’Open’和’Close’的价格。

解释一下: 以1分钟K线为例,假设现在是13:30:01到13:30:59之间,那就是如何获得13:29:00-13:30:00这根K线;以及13:28:00-13:29:00这根K线的’Open’和’Close’的价格。

而当进入13:31:00之后,就整体往后推一分钟,即13:30:00-13:31:00和13:29:00-13:30:00这两根K线的’Open’和’Close’。

感觉有点伸手党。。。 但真的自己没有想出来该如何实现。

非常感谢


More

小小梦 - ### 代码 ``` import time def main(): perTime = 0; while True: LogStatus("现在时间:", _D(time.time())) records = exchange.GetRecords() if(not records or len(records) < 3): continue else: if(perTime != records[-1]["Time"]): Log("--------------------------------分割线-------------------------------------") Log("倒数第一BAR Time:", _D(records[-1]["Time"] / 1000), "open:", records[-1]["Open"], "close:", records[-1]["Close"]) Log("倒数第二BAR Time:", _D(records[-2]["Time"] / 1000), "open:", records[-2]["Open"], "close:", records[-2]["Close"]) perTime = records[-1]["Time"] Sleep(1000); ``` https://dn-filebox.qbox.me/0526171cd87660b623631c0e1230d728c54189df.png

丧尸来来 恩恩 改动以后应该是对的 我对比回测时的图表似乎没问题。 而且,新BAR产生时输出应该是时效性最好的

小小梦 哦 对的 ,是我写的有问题 , 我输出LOG 是在 新BAR 产生的时候输出的 ,这个时候确实是 OPEN 和 CLOSE 是一样的。 应该用 -2 和 -3 的索引 试试。

丧尸来来 https://dn-filebox.qbox.me/f26922644ef757f579ac683a5032c42d57ee2bcc.png

丧尸来来 感觉log产生的时刻,应该是[-1]那会,所以代码应该改成: Log("倒数第一BAR Time:", _D(records[-2]["Time"] / 1000), "open:", records[-2]["Open"], "close:", records[-2]["Close"]) Log("倒数第二BAR Time:", _D(records[-3]["Time"] / 1000), "open:", records[-3]["Open"], "close:", records[-3]["Close"])

丧尸来来 我忽然发现,倒数第一BAR的close数据有点问题,它的open和close永远是相同的,我对照以后发现,close的是不对的,但代码我没看出来有问题。。。