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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]怎样控制日内多品种交易总次数

   

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


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

主题:[求助]怎样控制日内多品种交易总次数

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


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


这个帖子下面 2.2条。有代码范例的。


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


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

 我简单加载了下代码

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看
看图表信号的话,这个应该是满足当日只开平一次的需求的啊。你说的测试是回测还是说实际模拟交易的情况呢?


买入平仓后再开仓,代码怎么写?”这个什么意思?是指空仓情况下才允许开仓吗?这个图表上应该也是已经控制过了得啊。


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


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

那你看下

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

这里是不是勾了。


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


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

 你这个交易一次是开多平多算一次,开空平空也算一次是吗?

variable:num=0;// 全局变量,来控制当天交易次数
cs:=1;//限定一天最多交易1次
ma5:=ma(close,5);
ma20:=ma(close,20);
cond1:=cross(ma5,ma20);
cond2:=cross(ma20,ma5);
if cond1 and holding<0 then begin
   sellshort(1,1,market);
   num:=0;
   end
     
if cond1 and holding=0 and num<cs  then
  begin
  buy(1,1,market);
  num:=num+1;
  end

if cond2 and holding>0 then begin 
  sell(1,1,market);
  num:=0;
  end
if cond2 and holding=0 and num<cs  then
  begin
  buyshort(1,1,market);
  num:=num+1;
  end

abb:=(time0-timetot0(dynainfo(207))<=60) or not(islastbar);//提前60s下单
if abb and time=150000 then BEGIN 
    收盘平多:sell(1,1,LIMITR,C-mindiff);
    收盘平空:sellshort(1,1,LIMITR,C+mindiff);
    NUM:=0;
end

上面代码我调整了下把num重置只放在最后一个K。你看下是否满足需求。还有6楼那个我意思是不要打钩。


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


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

我知道怎么回事了。

variable:num=0;// 全局变量,来控制当天交易次数

if  TODAYBAR=1 or BARPOS=1 then num:=0;
cs:=1;//限定一天最多交易1次
ma5:=ma(close,5);
ma20:=ma(close,20);
cond1:=cross(ma5,ma20);
cond2:=cross(ma20,ma5);
if cond1 and holding<0 then begin
   sellshort(1,1,market);
   end
    
if cond1 and holding=0 and num<cs  then
  begin
  buy(1,1,market);
  num:=num+1;
  end

if cond2 and holding>0 then begin
  sell(1,1,market);
  end
if cond2 and holding=0 and num<cs  then
  begin
  buyshort(1,1,market);
  num:=num+1;
  end
abb:(time0-timetot0(dynainfo(207))<=60) or not(islastbar);//提前60s下单
if abb and time=150000 then BEGIN
收盘平多:sell(1,1,LIMITR,C-mindiff);
收盘平空:sellshort(1,1,LIMITR,C+mindiff);
end

num的重置放在当天第一个K最合理。
[此贴子已经被作者于2019/1/2 15:50:58编辑过]


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


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

 不用发了,我试了  10楼的那个已经可以了。


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


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

 多品种肯定不能相互限制了啊。这个只能按照单个品种去看了。


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