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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 按开多资金量下单,无法测试

   

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


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

主题:按开多资金量下单,无法测试

帅哥,在线噢!
wenarm
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2015/12/2 17:34:06    Post IP:58.246.57.26[显示全部帖子]

 

开多3:BUY(KD3 AND HOLDING=0,20%,MARKETR);       

红色部分会限制多投,当你买入多头1手后,这个时候HOLDING=0就不成立了   



编程无捷径,技巧靠积累。
 回到顶部
帅哥,在线噢!
wenarm
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2015/12/2 20:31:38    Post IP:116.216.30.60[显示全部帖子]

你理解的不对。HOLDING是图表的持仓情况。
开多3:BUY(KD3 AND HOLDING=0,20%,MARKETR); 
当你开仓位以后比如开了100手(20%的资金开的)。这个HOLDING=100了,那么KD3 AND HOLDING=0,就不成立了。所以就不会再去开仓了
可以把HOLDING=0的条件去了就好。
开多3:BUY(KD3,20%,MARKETR); 


[此贴子已经被作者于2015/12/2 20:32:05编辑过]


编程无捷径,技巧靠积累。
 回到顶部
帅哥,在线噢!
wenarm
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2015/12/2 22:21:50    Post IP:116.216.30.60[显示全部帖子]

你是要第一次按照资金的20%进行开仓,以后再次触发条件每次只开1手?
使用全局变量控制即可
Variable:flag=0;
if flag=0 then begin
    开多3:BUY(KD3 AND HOLDING=0,20%,MARKETR); 
    flag:=1;
end

if KD3 and flag=1 then begin
   buy(1,1,MARKETR);
 end
[此贴子已经被作者于2015/12/2 23:04:22编辑过]


编程无捷径,技巧靠积累。
 回到顶部
帅哥,在线噢!
wenarm
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2015/12/3 8:41:53    Post IP:58.246.57.26[显示全部帖子]

Variable:flag=0;
if flag=0 then begin
    开多:BUY( 开多条件1 and holding=0,20%,MARKETR);
    开空:buyshort(开空条件1 and holding=0,20%,MARKETR);
    flag:=1;
end


if  flag=1 then begin
    开多:BUY( 开多条件2 and holding>0,30%,MARKETR);
    开空:buyshort(开空条件2  and holding<0,30%,MARKETR);
   FLAG:=2;
 end
 
 if  flag=3 then begin
    开多:BUY( 开多条件3 and holding>0,10%,MARKETR);
    开空:buyshort(开空条件3 and holding<0,10%,MARKETR);
   FLAG:=4;
 end
 
  if  flag=4 then begin
    平多:sell( 平多条件 and  holding>0,holding,MARKETR);
    平空:sellshort(平空条件 and holding<0,holding,MARKETR);
    FLAG:=0;
  end

[此贴子已经被作者于2015/12/3 8:43:14编辑过]


编程无捷径,技巧靠积累。
 回到顶部
帅哥,在线噢!
wenarm
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2015/12/3 13:31:55    Post IP:58.246.57.26[显示全部帖子]

上面是一个思路,条件是需要你自己修改的。开多,开空两个变量会重复。名称改成开多1,开空1.....开多3,开空3.


编程无捷径,技巧靠积累。
 回到顶部
帅哥,在线噢!
wenarm
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2015/12/3 13:43:57    Post IP:58.246.57.26[显示全部帖子]

你把你的整段代码贴出来


编程无捷径,技巧靠积累。
 回到顶部
帅哥,在线噢!
wenarm
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2015/12/3 14:14:40    Post IP:58.246.57.26[显示全部帖子]

Variable:flag=0;
if flag=0 then begin
    开多1:BUY( kd1 and holding=0,20%,MARKETR); 
    开空1:buyshort(kk1 and holding=0,-20%,MARKETR);
    flag:=1;
end

if  flag=1 then begin
    开多2:BUY( kd2 and holding=20%,30%,MARKETR); 
    开空2:buyshort(kk2  and holding=-20%,-30%,MARKETR);
   FLAG:=2;
 end
 
 if  flag=3 then begin
    开多3:BUY( kd3 and holding=50%,10%,MARKETR); 
    开空3:buyshort(kk3 and holding=-50%,-10%,MARKETR);
   FLAG:=4;
 end
 
  if  flag=4 then begin
    平多:SELL(PD1,100%,THISCLOSE);   //100%=1那就是一手
    平空:sellshort(pk1,100%,MARKETR);
    FLAG:=0;
  end
你先仔细看下buy等函数的用法。
holding的意思在前面已经和你说了,不能这么用,这样用,你条件肯定不成立。它是一个整数。代表的是你图表的持仓情况。
holding=50%是什么意思?持仓为1/2手?
holding就3个状态,为零,为负,为正。
 
你自己分别使用buy,sell语句,开一手仓位,将holding打印出来看一下。
建议你到官网中下载金子的初级教程系统的学习一下,这样更有利于用户更快的使用金字塔


编程无捷径,技巧靠积累。
 回到顶部
帅哥,在线噢!
wenarm
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2015/12/3 17:06:23    Post IP:58.246.57.26[显示全部帖子]

你可以参考上面代码自行学习,尝试进行修改,用户关于策略的问题主要还是需要自己动手才能进行理解消化



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