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


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

   

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


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

主题:请帮忙写个代码

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


加好友 发短信
等级:新手上路 帖子:67 积分:0 威望:0 精华:0 注册:2021/4/26 16:35:17
  发帖心情 Post By:2021/5/25 9:10:33    Post IP:59.41.163.27[只看该作者]

INPUT:N(21,1,100,1),ss(1,1,100,1);
kd:c>ema(c,21) and "A.kd#MIN1";
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

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


加好友 发短信
等级:新手上路 帖子:67 积分:0 威望:0 精华:0 注册:2021/4/26 16:35:17
  发帖心情 Post By:2021/5/25 9:12:48    Post IP:59.41.163.27[只看该作者]

这样对吗

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


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2021/5/25 9:46:08    Post IP:58.246.57.26[只看该作者]

A公式:
ema21:(2*C+(21-1)*"EXPMA.M1##DAY"(21))/(21+1);//A公式中这句引用传参才是关键。取消传递参数。自己引用默认值,需要调整时,直接在公式EXPMA中调整
t:=timetot0(CLOSETIME(0))-time0;//距离收盘K的跨度(秒)

kd:all(c>ema21,15);//是否连续60周期满足   //如果你希望此处在引用时周期参数是21,应该直接改成kd:all(c>ema21,21);
pd:c<ema21;//c<emaN


kk:all(c<ema21,15);//是否连续60周期满足    //如果你希望此处在引用时周期参数是21,应该直接改成kd:all(c<ema21,21);
pk:c>ema21;//c>emaN


交易系统:
INPUT:N(21,1,100,1),ss(1,1,100,1);
kd:c>ema(c,21) and "A.kd#MIN1"(21);    //去掉传参21
pd:"A.pd#MIN1"(21);                             //这个位置为什么要传参?被引用的PD变量中有参数吗?直接去掉啊。

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


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


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


加好友 发短信
等级:新手上路 帖子:67 积分:0 威望:0 精华:0 注册:2021/4/26 16:35:17
  发帖心情 Post By:2021/5/25 14:09:47    Post IP:59.41.163.27[只看该作者]

kd:all(c>ema21,15);//是否连续60周期满足   //如果你希望此处在引用时周期参数是21,应该直接改成kd:all(c>ema21,21);
pd:c<ema21;//c<emaN


kk:all(c<ema21,15);//是否连续60周期满足    //如果你希望此处在引用时周期参数是21,应该直接改成kd:all(c<ema21,21);
pk:c>ema21;//c>emaN


后面这个数字15是我要观察是否连续15分钟满足C>ema,改成21就不对了啊

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


加好友 发短信
等级:新手上路 帖子:67 积分:0 威望:0 精华:0 注册:2021/4/26 16:35:17
  发帖心情 Post By:2021/5/25 14:12:12    Post IP:59.41.163.27[只看该作者]

目前最大的问题是用了实盘版本后,价格一大于或小于EMA马上发单,根本没有观察15分钟。比如刚才的硅铁。

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


加好友 发短信
等级:新手上路 帖子:67 积分:0 威望:0 精华:0 注册:2021/4/26 16:35:17
  发帖心情 Post By:2021/5/25 14:23:32    Post IP:59.41.163.27[只看该作者]

另外按照刚才您73楼把所有(21)去除以后重新加载,发现信号不对了啊。

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


加好友 发短信
等级:新手上路 帖子:67 积分:0 威望:0 精华:0 注册:2021/4/26 16:35:17
  发帖心情 Post By:2021/5/25 14:25:00    Post IP:59.41.163.27[只看该作者]

信号完全是错的,和21EMA线对不上

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


加好友 发短信
等级:新手上路 帖子:67 积分:0 威望:0 精华:0 注册:2021/4/26 16:35:17
  发帖心情 Post By:2021/5/25 14:34:27    Post IP:59.41.163.27[只看该作者]

其实我现在已经不用收盘复核这个功能了。上面的代码还保留了这部分内容。我现在的策略是这样的:当价格大于日线的21EMA,并且连续15分钟都在日线的21EMA之上,平空开多。做空反之。这个策略能麻烦您去除引用参数重新给我写一个吗。我只接触金字塔很短时间,不排除我刚才改的时候改错了。

 回到顶部
帅哥哟,离线,有人找我吗?
gxx978
  79楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

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


加好友 发短信
等级:新手上路 帖子:67 积分:0 威望:0 精华:0 注册:2021/4/26 16:35:17
  发帖心情 Post By:2021/5/25 15:55:11    Post IP:59.41.163.27[只看该作者]


我刚才改动后的,和您上面的对了一下应该是一样的。可是加载上去信号都是错的啊。
按照您上面的加载上去,信号还是不对。和21EMA线对不上

 回到顶部
总数 105 1.. 上一页 2 3 4 5 6 7 8 9 10 11 下一页