[2012-11-24] V2.934 测试版
+PEL公式系统完善了对数组的支持
+完善了对Shift+Q公式变量查看器的支持
+盈透外盘接口增加对现货交易的支持
+增加公式导入导出的文件包格式,方便大批量公式导入导出操作
+增加主要针对分笔及秒周期数据量限定选项,可以提高刷新速度
+下单队列方式增加不成交撤销队列,方便后台交易策略执行套利交易
+增加若干函数
*修正了自定义数据的日线引用小周期的BUG,并完善了自定义数据的数据刷新功能
*修正了若干已知发现的BUG
下载地址 : http://sss.weistock.com/Setup2934.exe
请大家积极测试,发现问题及时在本帖中报告,争取正式版问题全部解决
由于测试版频繁更新,无法将所有安装包都交给360去安全认真,因此在安装使用时360会提示危险,属于误报,忽略他的提示即可。
2.934增加如下2个函数
TOPRANGE 当前值是近多少周期内的最大值.
LOWRANGE 当前值是近多少周期内的最小值.
增加2个交易控制符
MARKETR 本周期市价交易
NOATTACK 在后台程式化交易时,在设定系统自动追单选项后,允许该笔交易指令不进行追单撤单动作
本地的公式系统PEL语言主要对数组功能做了更加细致的支持,主要有下面几个地方:
1、支持数组的大小可以任意扩充。
旧版本金字塔的数组在使用VARIABLE定义好大小后使用后将无法改变其大小,新版增加SETUBOUND函数可以对其进行任意大小的动态变化。
2、MA,SUM等统计函数支持对VARIABLE支持的数组的运算
旧版本金字塔中下列公式将无法正常工作:
VARIABLE X[5]=0;
X[1]:=1;
X[2]:=2;
X[3]:=3;
X[4]:=4;
X[5]:=5;
S:MA(X,5);
因为旧版金字塔MA函数只支持传统的序列变量,无法支持VARIABLE定义的数组,这样对于很多用户要求较复杂的策略将无法编写,因此新版金字塔对此进行很好的支持,尤其对VARIABLE定义的数组延伸到了所有的统计函数中。
3、支持VARIABLE定义的数组与序列变量的自由转化。
例1:
RUNMODE:0;//逐K线模式运行
VARIABLE:X[]=0;//定义一个空的数组
A:=CLOSE;//定义收盘价序列变量
X:=A;//将序列变量赋值到数组X中,并自动扩充数组大小
B:HARMEAN(X,10); //计算数组的调和平均值,注意数组X在逐K线模式和序列模式下的不同计算结果,逐K线模式可以得到一个曲线结果,而序列模式只会得到最后一个值的结果,这是两种不通运行模式的结果。
例2:
分别计算阳线和阴线收盘价10个数字的平均价
这个要求在旧版本金字塔中只能通过VBA扩展实现,因为金字塔的序列变量只能与数据周期一一对应,无法做到非对齐模式的数据管理,但是新版金字塔我们完全可以通过建立一个空数组,然后在逐K线模式下动态去管理数据数据,然后再分别计算。
RUNMODE:0;
VARIABLE:DOWN[]=0;//定义一个空的数组,计算下跌的阳线收盘价
VARIABLE:UP[]=0;//定义一个空的数组,计算上涨阳线收盘价
IF CLOSE > OPEN THEN
UP:=CLOSE;
ELSE
DOWN:=CLOSE;
A:MA(UP,10);
B:MA(DOWN,10);
//下面2行调试代码
DD:UBOUND(UP),NODRAW; //显示输出UP数组数据个数
SS:UBOUND(DOWN),NODRAW; //显示输出DOWN数组数据个数
范例3:
VBA的代码如下:
Dim myar '创建一个变量
'创建Array外部对象,变量置为全局的,可以增加效率
Set myar = CreateObject("Stock.Array")
Function Average(Formula,PRICE,VOL,N)
'系统会在逐K线模式解释公式时的每个周期都会调用此函数一遍,因此设计时应该注重程序的执行效率,不要重复的执行一些没必要的代码
'第一个数据时清空数组
if Formula.IndexData = 0 then
myar.RemoveAll
end if
if vol >= 200 then
myar.AddBack price
end if
'超过10个的删除第一个
if myar.count > N then
myar.RemoveAt 0
end if
Average = myar.Average
End Function
金字塔PEL代码只要一句
RUNMODE:0;
MA1:AVERAGE(close,vol,10);
现在新版金字塔简单了
runmode : 0;
input: n(10), v1(200,1,2000,10);
VARIABLE: price[]=0; //声明一个空数组
if vol > v1 THEN
price := c;
ma1:ma(price,n);
欢迎,支持不断进步!
希望运转速度占资源越来越少。这点是最头痛的
公式出现以下问题:
Variable: aa=0,bb=0,cc=0,dd=0,ee=0,ff=0,gg=0,hh=0;
HI:=hhv(h,3); LO:=llv(l,3);
IF MA(C,2)<MA(C,5) then aa:=1;
if MA(C,2)>MA(C,5) then aa:=-1;
出现IF 缺乏THEN错误
Variable: aa=0,bb=0,cc=0,dd=0,ee=0,ff=0,gg=0,hh=0;
HI:=hhv(h,3); LO:=llv(l,3);
IF MA(C,2)<MA(C,5)then aa:=1;
if MA(C,2)>MA(C,5)then aa:=-1;
if C>MA(C,40) then bb:=1;
if C<MA(C,40) then bb:=-1;
if HHVBars(C,50)>LLVBars(C,50) then cc:=1;
if HHVBars(C,50)<LLVBars(C,50) then cc:=-1;
if ((high-low)<MA((high-low),10)) and C>C[1] or ((high-low)>MA((high-low),10)) and C<C[1] then dd:=1;
if ((high-low)<MA((high-low),10)) and C<C[1] or ((high-low)>MA((high-low),10)) and C>C[1] then dd:=-1;
if C>(MA(H,15)+MA(L,15))/2 then ee:=1;
if C<(MA(H,15)+MA(L,15))/2 then ee:=-1;
if C<O and C[1]<O[1] then ff=1; else ff:=0;
if C>O and C[1]>O[1] then ff:=-1;
if L>L[1] and L[1]<HI[2] and C>C[1] and C[1]<C[2]then gg:=1; else gg:=0;
if H<H[1] and H[1]>LO[2] and C<C[1] and C[1]>C[2]then gg:=-1;
2.93使用正常,2.931使用不正常
完善了对Shift+Q公式变量查看器的支持
以前 帖子里说可以自定义查看变量 这个现在要怎么用?