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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 模型编写问题

   

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


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

主题:模型编写问题

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


加好友 发短信
等级:论坛游侠 帖子:505 积分:0 威望:0 精华:0 注册:2014/10/15 13:12:08
模型编写问题  发帖心情 Post By:2017/10/21 21:53:49    Post IP:114.244.55.127[只看该作者]

跨周期编写
以15分钟周期的MACD红绿柱为基础,
1分钟K线图,设置一条60均线,
开多条件:当15分钟周期出现红柱,1分钟K线在60均线之上开多,
平多条件,15分钟周期出现绿柱. 
开空条件:15分钟周期出现绿柱,1分钟K线在60均线之下开空,
平空条件,15分钟周期出现红柱

这个应该怎么编?是编写在15分钟上还,还是1分钟上好?

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


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2017/10/22 20:15:58    Post IP:114.84.189.92[只看该作者]

当前用于什么周期是你自己的策略思想决定的。
如果你当前用于1分钟周期,你直接引用macd的值进行判断,使用stkindi函数实现。
如果当前用于15分钟周期,那就直接饮用1分钟周期上的ma(c,60)<close的结果。


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
zengxing
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:505 积分:0 威望:0 精华:0 注册:2014/10/15 13:12:08
  发帖心情 Post By:2017/10/23 11:26:21    Post IP:114.244.55.127[只看该作者]

那就用 15分钟周期吧,应该怎么编写?


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


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2017/10/23 13:37:43    Post IP:180.169.30.6[只看该作者]

公式1:

ma_cond:c>ma(close,60);

 

当前公式。空头方向的参考该方式自行实现

DIFF :=EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  :=EMA(DIFF,M);
MACD :=2*(DIFF-DEA);


开多:=CROSS(MACD,0) and stkindi('','公式1.ma_cond',0,1) ;
平多:=CROSS(0,MACD);
buy(开多,1,MARKET);
sell(平多,1,MARKET);



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
zengxing
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:505 积分:0 威望:0 精华:0 注册:2014/10/15 13:12:08
  发帖心情 Post By:2017/10/23 23:07:41    Post IP:114.244.55.127[只看该作者]

两个问题,第一,引用的公式,为什么一定要: 不要:=

但是用:  整个K线就变形了。这个怎么解决?

还有,为什么都是

DIFF :=EMA(CLOSE,12) - EMA(CLOSE,26);
DEA  :=EMA(DIFF,9);
MACD :=2*(DIFF-DEA);

开多:CROSS(MACD,0) and stkindi('','公式1.ma_cond',0,1) ;
平多:=CROSS(0,MACD);
sell(平多,1,MARKET);
buy(开多,1,MARKET);



开空:CROSS(0,MACD) and stkindi('','公式1.ma_cond2',0,1) ;
平空:=CROSS(MACD,0);
SELLSHORT(平空,1,MARKET);
BUYSHORT(开空,1,MARKET);

我补全后,为什么只有开空,没有开多?

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


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2017/10/24 8:13:30    Post IP:180.169.30.6[只看该作者]

1,:=代表中间变量,被引用时的变量只能是:

2.顺序不对,图表要遵循先平后开的原则

开多:CROSS(MACD,0) and stkindi('','Formula33.ma_cond',0,1) ;
开空:CROSS(0,MACD) and stkindi('','Formula33.ma_cond2',0,1) ;
平多:=CROSS(0,MACD);
平空:=CROSS(MACD,0);
sell(平多,1,MARKET);
SELLSHORT(平空,1,MARKET);
buy(开多,1,MARKET);
BUYSHORT(开空,1,MARKET);

 



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
zengxing
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:505 积分:0 威望:0 精华:0 注册:2014/10/15 13:12:08
  发帖心情 Post By:2017/10/24 9:32:50    Post IP:114.244.55.127[只看该作者]

按照您新发的源码,就全部变成了正反手交易,没有单独的开平了?怎么回事?

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


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2017/10/24 9:36:41    Post IP:180.169.30.6[只看该作者]

你自己看下你的条件。开多条件成立的情况下,平空条件肯定也是成立的。


编程无捷径,技巧靠积累。
 回到顶部