欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 金字塔2.934测试版发布,欢迎大家积极下载测试

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有15214人关注过本帖树形打印复制链接

主题:金字塔2.934测试版发布,欢迎大家积极下载测试

帅哥哟,离线,有人找我吗?
admin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
金字塔2.934测试版发布,欢迎大家积极下载测试  发帖心情 Post By:2012/11/3 23:29:00 [只看该作者]

[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数组数据个数

 

[此贴子已经被作者于2012-11-24 13:59:31编辑过]


查看使用道具详细信息
 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2012/11/3 23:54:26 [只看该作者]

范例3:

 

想达到的效果是:计算每一笔成交量大于200的成交价的10(个单位)的平均值。
意思如下:Input:N(10),V1(200);     定义参数,10和成交量200.
variables:Price(0),MA1(0);     定义变量,价格和平均价。
if Ticks>=V1 then begin
   Price=Close;
   end;    表示条件当成交量>=200时,取收盘价为变量中的价格。
MA1=Average(price,N);    表示变量的含义,即求价格的10日平均值。
plot1(MA1,"MA");   表示画线函数。把这个结果用线表示出来。
 
以上是MC的代码,在旧版金字塔中只能通过VBA自定义函数来协助解决
 

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);

[此贴子已经被作者于2012-11-3 23:55:11编辑过]


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
[本帖被加为精华]
 回到顶部
帅哥哟,离线,有人找我吗?
看透风景
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:20 积分:10 威望:0 精华:0 注册:2012/3/3 14:30:59
  发帖心情 Post By:2012/11/4 9:49:07 [只看该作者]

这个可以有!!!

 回到顶部
帅哥哟,离线,有人找我吗?
系统使用者
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:808 积分:667 威望:0 精华:0 注册:2011/4/9 16:17:57
  发帖心情 Post By:2012/11/4 10:00:15 [只看该作者]

欢迎,支持不断进步!

希望运转速度占资源越来越少。这点是最头痛的


 回到顶部
帅哥哟,离线,有人找我吗?
系统使用者
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:808 积分:667 威望:0 精华:0 注册:2011/4/9 16:17:57
挂单超过N秒重新挂单问题  发帖心情 Post By:2012/11/4 11:03:26 [只看该作者]

公式出现以下问题:

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错误


 回到顶部
帅哥哟,离线,有人找我吗?
系统使用者
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:808 积分:667 威望:0 精华:0 注册:2011/4/9 16:17:57
  发帖心情 Post By:2012/11/4 11:05:33 [只看该作者]

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使用不正常


 回到顶部
帅哥哟,离线,有人找我吗?
3dian
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:416 积分:2483 威望:0 精华:0 注册:2012/5/17 9:23:48
  发帖心情 Post By:2012/11/4 13:08:03 [只看该作者]

晕,编译都出问题了,IF语句缺少THEN...........

 回到顶部
帅哥哟,离线,有人找我吗?
admin
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2012/11/4 17:07:41 [只看该作者]

非产感谢大家提交该问题,由于本次对编译系统做了重大升级改进,因此出现BUG在所难免,目前楼上几位报告的问题在2.932版已经解决,欢迎大家继续下载测试

 回到顶部
帅哥哟,离线,有人找我吗?
五竹叔
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:135 威望:0 精华:0 注册:2012/8/6 21:09:13
  发帖心情 Post By:2012/11/4 19:52:03 [只看该作者]

完善了对Shift+Q公式变量查看器的支持

以前 帖子里说可以自定义查看变量 这个现在要怎么用?


 回到顶部
帅哥哟,离线,有人找我吗?
系统使用者
  10楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:808 积分:667 威望:0 精华:0 注册:2011/4/9 16:17:57
  发帖心情 Post By:2012/11/5 14:00:45 [只看该作者]

最新价与上面的买1卖1不能及时更新。

 回到顶部
总数 31 1 2 3 4 下一页