以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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
--  
 无论是用自定义数据还是全局变量来处理。都只是引用数据的方式,不能根本解决问题,始终都是大周期调用小周期。 我建议从逻辑上做改变。比如小周期信号触发次数达到一定量,大周期再开仓。这样肯定稳定点。