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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请教:交易系统中IF语句的问题

   

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


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

主题:请教:交易系统中IF语句的问题

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


加好友 发短信
等级:新手上路 帖子:63 积分:465 威望:0 精华:0 注册:2009/12/8 10:49:21
请教:交易系统中IF语句的问题  发帖心情 Post By:2010/3/21 16:37:00    Post IP:116.25.220.67[只看该作者]

数据:上证指数

日期         收盘         8日均线
2010.3.8  3053.23  3059.772  

2010.3.9  3069.14  3060.837   (收盘上穿均线)
2010.3.10 3048.93  3060.461  (收盘下穿均线)

公式1:

ma1:ma(c,8);
if holding=0 and cross(c,ma1) then buy(1,100,thisclose);
else if holding>0 and cross(ma1,c) then sell(1,holding,thisclose);

 

问题:为什么2010.3.9 出现"开多"信号,3.10无"平多"信号,若把上面的公式1改为下面的公式2或公式3,则3.10会出现“平多”信号。

 

公式2:

ma1:ma(c,8);
if holding>0 and cross(ma1,c) then sell(1,holding,thisclose);
else if holding=0 and cross(c,ma1) then buy(1,100,thisclose);

 

公式3:

ma1:ma(c,8);
buy(holding=0 and cross(c,ma1),100,thisclose);
sell(holding>0 and cross(ma1,c),holding,thisclose);

 

 

 

 

PS:在大智慧下,上述公式1和公式2的结果是一样的:3.10出现平多信号.

 

DZH公式1:

ma1:ma(c,8);
if holding=0 and cross(c,ma1) then buy(100,thisclose);
else if holding>0 and cross(ma1,c) then sell(holding,thisclose);

 

DZH公式2:

ma1:ma(c,8);
if holding>0 and cross(ma1,c) then sell(holding,thisclose);
else if holding=0 and cross(c,ma1) then buy(100,thisclose);

 

 

 

先谢谢啊!

[此贴子已经被作者于2010-3-21 16:39:01编辑过]

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


加好友 发短信
等级:版主 帖子:99 积分:1844 威望:1000 精华:2 注册:2009/11/20 17:13:40
  发帖心情 Post By:2010/3/21 22:23:43    Post IP:220.248.19.50[只看该作者]

if holding=0 and cross(c,ma1) then buy(1,100,thisclose);
else if holding>0 and cross(ma1,c) then sell(1,holding,thisclose);

这里开多和平多应该是并列关系,因为是多条件,并非唯一的非此即彼的选择关系,试试下面的.

if holding=0 and cross(c,ma1) then buy(1,100,thisclose);
if holding>0 and cross(ma1,c) then sell(1,holding,thisclose);



程序化交易QQ聊天群:84283179(已满),建议加入程序化自动交易群24568607

QQ:351666425

http://blog.sina.com.cn/lunhuitrade
 回到顶部
帅哥哟,离线,有人找我吗?
drzwz168
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:63 积分:465 威望:0 精华:0 注册:2009/12/8 10:49:21
  发帖心情 Post By:2010/3/21 23:19:37    Post IP:116.25.220.67[只看该作者]

谢谢轮回大侠。你的公式能解决我上面的问题。这个问题实际上是我简化了的,我本来想要的是下面这种非此即彼的选择关系:

if A then

B

else if C then

D

即,如果条件A成立,则执行B,不再检查条件C是否成立;否则,若条件C成立,则执行D。

可是jzt似乎不是这么执行的。

 

[此贴子已经被作者于2010-3-21 23:20:59编辑过]

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


加好友 发短信
等级:版主 帖子:99 积分:1844 威望:1000 精华:2 注册:2009/11/20 17:13:40
  发帖心情 Post By:2010/3/21 23:41:34    Post IP:220.248.19.50[只看该作者]

如果你是楼上这样的想法,那你楼上的写法应该没问题,如果你觉得金字塔似乎不是这么执行的,请贴出你验证的实例出来我们共同分析.



程序化交易QQ聊天群:84283179(已满),建议加入程序化自动交易群24568607

QQ:351666425

http://blog.sina.com.cn/lunhuitrade
 回到顶部
帅哥哟,离线,有人找我吗?
admin
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2010/3/21 23:49:16    Post IP:220.248.19.50[只看该作者]

金字塔目前是不提供

if A then

B

else if C then

D

 

这种判断模式,只有

if A then

B

else

D


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


加好友 发短信
等级:新手上路 帖子:63 积分:465 威望:0 精华:0 注册:2009/12/8 10:49:21
  发帖心情 Post By:2010/3/22 0:02:38    Post IP:116.25.220.67[只看该作者]

明白了,我的实例包括了N个if ... then ... else if ... then ...  晕, 我自己再改一改,再次谢谢轮回和admin!


 回到顶部