以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 在全局变量中存储的品种持仓不闪烁的情况下,公式b的开仓信号不断闪烁 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=171379) |
-- 作者:tsycd -- 发布时间:2019/7/31 15:22:51 -- 在全局变量中存储的品种持仓不闪烁的情况下,公式b的开仓信号不断闪烁 老师好, 在公示a中(工作在三分钟周期下),用以下语句将各品种持仓保存在全球全局变量中: WARNING_DISABLE:4; extgbdataSET(STKNAME(),HOLDING); 然后在公式b中(工作在120分钟周期下)用下面函数调取品种的持仓状况来决定是否开仓(只要公式a有相应品种的持仓,公式b就开仓): WARNING_DISABLE:4; KCYZ:=extgbdata(STKNAME())<>0; KDYZ:=extgbdata(STKNAME())>0; KKYZ:=extgbdata(STKNAME())<0; 现在发现在全局变量中存储的品种持仓不闪烁的情况下,公式b的开仓信号不断闪烁,请问老师这是什么原因?怎么解决? 谢谢老师
|
-- 作者:FireScript -- 发布时间:2019/7/31 15:42:53 -- 图表策略还是后台策略?如果是图表用这种超全局变量,信号闪烁几乎是不可避免的。只要历史上用到了全局变量参与策略计算,一定会闪烁。 |
-- 作者:tsycd -- 发布时间:2019/7/31 16:19:12 -- 因为牵扯到止盈止损操作,所以一直用图表程序化交易。如果用后台交易可以避免闪烁的话,相应的止盈止损操作可以用后台程序化实现吗?谢谢老师! |
-- 作者:tsycd -- 发布时间:2019/7/31 16:20:43 -- 如果不用全局变量,有没有别的办法达到我的目的? 谢谢老师
|
-- 作者:FireScript -- 发布时间:2019/7/31 16:25:28 -- 1.就全局变量这个问题, 后台因为不需要考虑历史信号问题。所以用全局变量问题不大。但是图表的整体思路转后台其实不一定保证行的通的。 2.我需要大致知道你的思路才能判断不用全局变量是否可行。
|
-- 作者:tsycd -- 发布时间:2019/7/31 16:39:28 -- 谢谢老师,我的大概思路如下, 公示a工作在三分钟周期下,负责决定在当前情况下是否开仓? 公式b工作在两小时周期下,负责决定该品种在一周时间内,是否有过大的涨幅或者跌幅; 如果已经有过较大的涨幅或者跌幅,则做出止盈操作,在一周之内不再二次开仓, 否则根据公式a的判断做出同向开仓 谢谢老师
|
-- 作者:tsycd -- 发布时间:2019/7/31 16:45:39 -- 如果在公式b中勾选只刷最后一根k线,会不会避免闪烁? |
-- 作者:FireScript -- 发布时间:2019/7/31 17:10:01 -- 你这个思路得话。比如小周期变化10次,每个K变化一次,单个小周期上可以说没闪烁。但是你如果大周期去调用小周期,因为按照时间对齐的原则,那相当于在一个K上变化10次。因为你这个120分钟周期肯定涵盖一个很大范围的小周期K。小周期K单个周期内不闪烁,但是对应到大周期几乎是不可避免的闪烁了。 大引小的闪烁还是很难避免的。周期越大越可能会这样。 |
-- 作者:tsycd -- 发布时间:2019/7/31 18:13:01 -- 用自定义数据来代替全局变量会不会好一些? |
-- 作者:FireScript -- 发布时间:2019/8/1 8:55:52 -- 无论是用自定义数据还是全局变量来处理。都只是引用数据的方式,不能根本解决问题,始终都是大周期调用小周期。 我建议从逻辑上做改变。比如小周期信号触发次数达到一定量,大周期再开仓。这样肯定稳定点。 |