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


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

   

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


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

主题:请帮忙写个代码

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


加好友 发短信
等级:超级版主 帖子:4994 积分:0 威望:0 精华:0 注册:2016/9/1 10:46:51
  发帖心情 Post By:2021/5/25 15:31:21    Post IP:101.228.98.51[显示全部帖子]

你要理解这个参数为15的含义kd:all(c>ema21,15);//这个15是表示连续15分钟上面都满足条件c>ema15,这里不能改为21的。我们要改的是在EXPMA指标中修改P1的默认参数为21就可以。详细修改如下:
1:修改系统自带的expma指标,如下图:

此主题相关图片如下:121.png
按此在新窗口浏览图片

2:A公式
A公式:
ema21:(2*C+(21-1)*"EXPMA.M1##DAY")/(21+1);    //就是这个地方不能传递参数,把21这个参数去除,因为已经在expma中指定了默认参数为21了,不需要传递了。
t:=timetot0(CLOSETIME(0))-time0;//距离收盘K的跨度(秒)

kd:all(c>ema21,15);//是否连续60周期满足
pd:c<ema21;//c<emaN


kk:all(c<ema21,15);//是否连续60周期满足
pk:c>ema21;//c>emaN

3、交易系统
交易系统:
INPUT:N(21,1,100,1),ss(1,1,100,1);
kd:c>ema(c,21) and "A.kd#MIN1";     //这里压根没必要填参数21啊
pd:"A.pd#MIN1";                              //同上

kk:c<ema(c,21) and "A.kK#MIN1";     //同上
pk:"A.pk#MIN1";                               //同上


if kd or pk then
begin
sellshort(1,holding,market);
buy(holding=0,ss,market);    
END

if kk or pd then
begin
sell(1,holding,market);
buyshort(holding=0,ss,market);
END

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


加好友 发短信
等级:超级版主 帖子:4994 积分:0 威望:0 精华:0 注册:2016/9/1 10:46:51
  发帖心情 Post By:2021/5/25 16:04:08    Post IP:180.169.30.6[显示全部帖子]

加载了你的策略,就是5月19日上面有开空信号啊,你的1分钟数据和日线是不是补充完整了啊。

图片点击可在新窗口打开查看此主题相关图片如下:11.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:超级版主 帖子:4994 积分:0 威望:0 精华:0 注册:2016/9/1 10:46:51
  发帖心情 Post By:2021/5/25 16:27:42    Post IP:180.169.30.6[显示全部帖子]

加工作人员QQ:2862096385,远程看下。

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


加好友 发短信
等级:超级版主 帖子:4994 积分:0 威望:0 精华:0 注册:2016/9/1 10:46:51
  发帖心情 Post By:2021/5/25 16:29:57    Post IP:180.169.30.6[显示全部帖子]

你最重要的EXPMA指标的截图没有给啊,我们想看下那个指标中你用的参数是多少。

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


加好友 发短信
等级:超级版主 帖子:4994 积分:0 威望:0 精华:0 注册:2016/9/1 10:46:51
  发帖心情 Post By:2021/5/26 9:27:38    Post IP:180.169.30.6[显示全部帖子]

你代码中并没有控制延迟15分钟下单的语句啊,只是在日线引用1分钟的KD:ALL(c>ema21,15);表示在1分钟周期上,连续15根K线满足条件,日线上引用到满足条件时就会出信号,所以在日线上有信号时,表示在1分钟已经连续15分钟满足条件了。在加载的交易系统公式中,并没有控制出现信号延时15分钟下单的代码啊,你要明白代码的逻辑含义的。

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


加好友 发短信
等级:超级版主 帖子:4994 积分:0 威望:0 精华:0 注册:2016/9/1 10:46:51
  发帖心情 Post By:2021/5/26 10:04:59    Post IP:180.169.30.6[显示全部帖子]

1、代码中没有任何控制语句,所以压根不会有控制延时等动作的。
2、你这个15分钟判断,又不是只判断当天的15分钟,昨天的1分钟也会包括在内啊,所以开盘9分钟,也是可以满足all(c>ema21,15);这个条件的啊。

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


加好友 发短信
等级:超级版主 帖子:4994 积分:0 威望:0 精华:0 注册:2016/9/1 10:46:51
  发帖心情 Post By:2021/5/26 10:40:30    Post IP:180.169.30.6[显示全部帖子]

策略的执行和模拟盘还是实盘没有关系的,如果你认为是不应该满足条件触发下单的,那只能输出你的开仓条件,看输出的值是不是和你肉眼看见的是否一致了。程序触发信号,肯定是计算出满足了开仓条件才会触发的。
另外你看下你交易系统中的开平仓条件,KD or pk 满足,则触发平空开多,你用的是OR或,就是说只要其中的PK满足的时候,也会触发开多,而你平多PK的条件只是在1分钟周期上,最新的一根满足c>ema21就成立了,并没有说连续15根1分钟K线需要满足。
[此贴子已经被作者于2021/5/26 11:09:58编辑过]

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


加好友 发短信
等级:超级版主 帖子:4994 积分:0 威望:0 精华:0 注册:2016/9/1 10:46:51
  发帖心情 Post By:2021/5/26 13:25:10    Post IP:180.169.30.6[显示全部帖子]

我们只是提供范例编写,用户那还是需要能够理解并能调试代码,看是否是自己需要的啊。交易公式中,KD其实包含了PK的条件的,就是说KD满足的话,PK一定满足,但是PK满足,KD则不一定满足;所以你需要把or改为and,或者直接把PK的条件去掉都可以,例如:
if kd and PK then                //PK去掉都可以,因为KD满足的话,PK一定是满足的。
begin
sellshort(1,holding,market);
buy(holding=0,ss,market);    
END

 回到顶部