假设我定义了5个波形。分别代表公式A,B,C,D,E。判断波形有没有发生的话就调用'A.signal'拿到结果。现在我想做的事情是,我定义了5个周期,1分钟,5分钟,15分钟,30分钟,60分钟。如果1分钟周期上最近20个周期内发生过某个波形且任何一个大周期20个周期内也发生过某个波形。就作为一个买入信号。5分钟,15分钟同理。请教应该如果实现。好像有点复杂。
我希望公式能够尽量通用,以后改个周期,加个波形都不需要有太多修改
用stkindi 函数跨周期跨品种调用指标,具体用法您可以看下函数说明
这个我知道,但是我想知道大概的程序逻辑。我用传统的编程语言思维发现差距比较大。循环,数组,在逐K线模式下我没有彻底的理解。所以想请教一下大师,能不能给我大概写个框架,应该不需要太多代码。
count计算多少周期内符合条件的数量,这个A.sinnal是你自己的指标是吧
你在a公式里去统计count(sinnal,20),如果这大于1就是符合条件了
然后用3楼那个函数去跨周期调用就行了
这个我知道。但是因为涉及到很多周期,很多波形。难道必须一个个写出来吗?这样以后修修改改就比较麻烦了,能不能用循环语句比如?
最笨的办法我知道,比如:
signalA_1分钟:=STKINDI('','A.signal',0,1),NOAXIS,NODRAW;
signalB_1分钟:=STKINDI('','B.signal',0,1),NOAXIS,NODRAW;
signalC_1分钟:=STKINDI('','C.signal',0,1),NOAXIS,NODRAW;
signalD_1分钟:=STKINDI('','D.signal',0,1),NOAXIS,NODRAW;
signalE_1分钟:=STKINDI('','E.signal',0,1),NOAXIS,NODRAW;
signalA_5分钟:=STKINDI('','A.signal',0,2),NOAXIS,NODRAW;
signalB_5分钟:=STKINDI('','B.signal',0,2),NOAXIS,NODRAW;
signalC_5分钟:=STKINDI('','C.signal',0,2),NOAXIS,NODRAW;
signalD_5分钟:=STKINDI('','D.signal',0,2),NOAXIS,NODRAW;
signalE_5分钟:=STKINDI('','E.signal',0,2),NOAXIS,NODRAW;
...
signal_1分钟 = count(signalA_1分钟,20) > 0 || count(signalB_1分钟,20) > 0 || count(signalC_1分钟,20) > 0 || count(signalD_1分钟,20) > 0 || count(signalE_1分钟,20) > 0;
signal_5分钟 = count(signalA_5分钟,20) > 0 || count(signalB_5分钟,20) > 0 || count(signalC_5分钟,20) > 0 || count(signalD_5分钟,20) > 0 || count(signalE_5分钟,20) > 0;
signal_15分钟 = count(signalA_15分钟,20) > 0 || count(signalB_15分钟,20) > 0 || count(signalC_15分钟,20) > 0 || count(signalD_15分钟,20) > 0 || count(signalE_15分钟,20) > 0;
signal_30分钟 = count(signalA_30分钟,20) > 0 || count(signalB_30分钟,20) > 0 || count(signalC_30分钟,20) > 0 || count(signalD_30分钟,20) > 0 || count(signalE_30分钟,20) > 0;
signal_60分钟 = count(signalA_60分钟,20) > 0 || count(signalB_60分钟,20) > 0 || count(signalC_60分钟,20) > 0 || count(signalD_60分钟,20) > 0 || count(signalE_60分钟,20) > 0;
if signal_1分钟 then begin
if signal_5分钟 || signal_15分钟 || signal_30分钟 || signal_60分钟 then begin
buy...
end
end
这样的代码我实在是受不了T_T,而且我的判断逻辑比这个还要复杂。这么写的话改起来就要崩溃了。
那这个公式就不能用到5分钟上了,因为我希望5分钟也可以跑起来,15分钟也可以跑起来等等。
另外我的波形可能是有方向的,做多或者做空,只有同方向的话才去下单。这些条件再加上去,那么这样代码实在臃肿不堪。
有没有比较灵活的办法?比如能不能用个循环减少代码量?
[此贴子已经被作者于2016/3/7 16:21:28编辑过]