[转载]通过设置提高金字塔软件的运行效率(Z)

标签:
转载 |
分类: 转帖 |
金字塔公式系统工作模式简介
公式系统工作模式的特点
控制语句在两种不同模式下的运行特点
两种运行模式的公式范例
//用于序列模式下运行的公式:
INPUT:N(5,2,500);
VARIABLE:I=0,S=0;//变量申明
VAR1:=C;
FOR J=1 TO DATACOUNT DO BEGIN
END;
上述公式使用序列模式运行,但是如果在逐K线模式下运行上述公式就会变得异常缓慢,由于金字塔逐K线模式在每个周期上都要执行一遍这样的循环,效率自然就变得非常低了。鉴于金字塔的特点,如果将上述公式改进一下,则可以高效的在序列和逐K线模式同时高效运行,公式如下:
INPUT:N(5,2,500);
VARIABLE:I=0,S=0;
VAR1:=C; //金字塔下放在这里的变量为序列赋值
//为了加快运算速度,只有最后一个周期时才循环计算
IF NOT(ISLASTBAR) THEN EXIT;
FOR J=1 TO DATACOUNT DO BEGIN
END;
上述公式中增加了 IF NOT(ISLASTBAR)
判断是否最后一个周期的指令,在逐K线模式下,由于是判断到最后一个周期才执行的下面循环,故效率是非常高的。对于序列模式,由于同样使用了ISLASTBAR控制,故符合控制语句取最后一个数据的特点,所以该公式同时可以在两种模式下得到正确执行。
为了更能说明逐K线的运行特点,计算移动平均线的公式还可以这样写
INPUT:N(5,2,500);
IF BARPOS <= N THEN //从计算周期开始计算
MA1:C;
FOR J=1 TO N-1 DO
MA1:=MA1/N;
这样的公式即保证了效率,也可以使编写公式的复杂程度大大降低,提高了公式的可读性。
关于模型运行时这两种模式的选择
建义如下:在普通技术指标,选股指标,简单的图表程式化交易,以及公式中涉及到BACKSET、REFX等未来函数调用等,推荐使用序列模式;用户需要精细控制K线周期的操作时例如资金头寸管理、止损操作等,推荐使用逐K线模式。简单一句话,如果是指标交易,那么使用序列模式,算法交易,使用逐K线模式。