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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 如何在条件A下限制开仓次数?

   

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


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

主题:如何在条件A下限制开仓次数?

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/1/16 10:20:53    Post IP:180.169.30.6[显示全部帖子]

确认下:
1.你这里的开仓条件其实应该是 ma5>ma60 and 条件A  对吧?因为如果用cross的判断,cross成立本身就只在第一次ma5>ma60时满足。
2.在死叉之前 能且只能开仓一次。即使死叉之前平仓了也只开仓一次?


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/1/16 11:14:53    Post IP:180.169.30.6[显示全部帖子]

 这样做:

ma5:ma(c,5);
ma60:ma(c,60);
条件A:C>O+5*MINDIFF;
cd:ma5>ma60 and 条件A;
cd1:BARSLAST(cross(ma5,ma60));//从0开始 所以下面count统计时候加1

cd2:count(cd,cd1+1)=1 and  cd;//当前满足开仓条件且是金叉以来的第一次


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/1/16 13:29:33    Post IP:180.169.30.6[显示全部帖子]

 你用到了type这类函数。这里函数参与第一次开仓时候都会有点问题。因为前面肯定是没有开平之类的。count(cc,n1)=1 这个条件就有问题了。所以如果是其他不依赖开平信号的条件可以,但是刚好你这里用了 就不行。



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/1/16 14:10:56    Post IP:180.169.30.6[显示全部帖子]

考虑下用全局变量处理吧。
VARIABLE:mark1:=0;
mac:ma(c,5);

ee:=barslast(type(1)=2)<=15 or barslast(type(1)=4)<=15;
cc:=(type(1)=2 or TYPE(1)=0) and c>mac and ee=0;

if cc and all(c>mac,6)=1 and mark1=0 then
begin
buy(1,1,market);
mark1:=1;
end

if c<mac then mark1:=0;//c<mac的时候重置下这个变量  接触对开仓的限制




命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/1/17 8:43:00    Post IP:180.169.30.6[显示全部帖子]

 是的。你先用多头测试下是否符合需求。


命数如织,当如磐石。
 回到顶部