开拓者期货期权程序化系统交易论坛

标题: 怎么才能做到k线快走完才报警? [打印本页]

作者: jyqh00993553    时间: 2021-1-25 09:35:16     标题: 怎么才能做到k线快走完才报警?

具体来说:比如说,在小时K线系统里,10点的时候发出了买入信号,相应地也报警了,之后如果信号不消失,同时设置的是连续报警,则会一直保持报警直到11点。那有什么办法做到10点信号出现了不报警,到10:45后才开始连续报警呢?
作者: netlife    时间: 2021-1-25 10:26:00

CLOSE[1]
作者: jyqh00993553    时间: 2021-1-25 10:34:52

不对,你这个变成了下一个k线周期发信号与警报。我要的是本周期但前面不警报。
作者: Yuen_Lee    时间: 2021-1-25 15:48:13

利用CurrentTime和K线时间Time来判断。若选择的是5分钟K线,则CurrentTime在临近Time+0.0005时(自己决定还差多久报警)再报警。
作者: jyqh00993553    时间: 2021-1-26 14:00:18

CurrentTime我知道,Time+0.0005是什么意思呢?能写个短句示范一下吗?谢谢!

作者: Yuen_Lee    时间: 2021-1-27 09:03:31

jyqh00993553 发表于 2021-1-26 14:00
CurrentTime我知道,Time+0.0005是什么意思呢?能写个短句示范一下吗?谢谢!

Time是指当前K线的开始时间,如在五分钟K线上,开盘K线的Time==0.0900(早上9:00),当这根K线快走完时,如电脑时间9:04:55,这时CurrentTime==0.090455(<(Time+0.0005==0.0905))。这时可以出发条件报警。
If (CurrentTime >= Time+0.000455 and '满足其它条件')
    Alert("xxx");
作者: jyqh00993553    时间: 2021-1-28 10:46:07

真是聪明啊!非常谢谢!
作者: jyqh00993553    时间: 2021-1-28 14:05:15

根据你的思路,我写了以下的语句来尝试k线结束前若干分钟出买卖信号(小时k线)
timecondition=currenttime>time+0.0040 or (time==0.11 and currenttime>time+0.0010);
       
        If(CNbpk==true and CNbpk[1]==FALSE and timecondition==true)

发现部分信号发生的位置与原来没加时间语句的程序不一样。
所以这里就有个问题,如果把currettime放进去,在历史测试里它改变了什么?
作者: Yuen_Lee    时间: 2021-1-28 15:41:40

currenttime在历史测试上会出错,因为历史中的每根K线上的时间不能和现在的电脑时间做对比。只有在实时状态下,与最新K线的Time作比较才能正确地起作用。
作者: jyqh00993553    时间: 2021-1-28 23:23:26

谢谢!
作者: qinming6710    时间: 2021-3-12 21:10:27

加一个barstatus状态判断,如果是最后一根就是实盘,其他就是历史数据




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2