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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 此种手数情况如何编写?

   

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


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

主题:此种手数情况如何编写?

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


加好友 发短信
等级:论坛游侠 帖子:215 积分:0 威望:0 精华:0 注册:2016/6/12 14:31:00
此种手数情况如何编写?  发帖心情 Post By:2017/4/5 9:15:46    Post IP:113.105.163.236[只看该作者]

如下图:


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


请问该如何编写,才能使每次建仓的手数相同?



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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2017/4/5 9:20:40    Post IP:180.169.30.6[只看该作者]

buy(1,1,marketr)

这样就是1手


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


加好友 发短信
等级:论坛游侠 帖子:215 积分:0 威望:0 精华:0 注册:2016/6/12 14:31:00
  发帖心情 Post By:2017/4/5 10:18:21    Post IP:113.105.163.237[只看该作者]

不是这样。我第一次建仓的手数是通过资金的2%/ATR倍数得出来的,比如算出来手数是a1,我可以做到让第二次建仓的手数也是a1,即ref(a1,enterbars); ,但是第二次开仓之后的手数却不是固定为a1,而是变化的。我想把我随后所有的加仓的手数都固定为第一次开仓的手数,就像上图那样,该如何编写?

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


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

你这种算法处理,每次开仓是时都会根据当前的资金去计算手数、

你如果只想在第一次计算时计算手数,后面统一按这个数量开仓,用全局变量标记计算

VARIABLE:flag=0;

 

if flag= 0 then  begin

  2%/ATR;

  flag:= 1;

end



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


加好友 发短信
等级:论坛游侠 帖子:215 积分:0 威望:0 精华:0 注册:2016/6/12 14:31:00
  发帖心情 Post By:2017/4/5 13:30:45    Post IP:113.105.163.237[只看该作者]

我知道以下这样写应该是错的,按照你的意思,应该怎样写呢?

a1:0.01*valuewhen(barpos=1,asset);        //初始资金的1%
a2:floor(a1/(2*atr));                         //开仓手数

//第一次建仓
if cond1 
then begin 
buy(1,a2,marketr);

//第n次建仓
b1:ref(a2,enterbars);
variable:n=0; flag=0;
if cond2
then begin
buy(1,b1,marketr);
n:=n+1;
flag:=1;
end

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2017/4/5 13:33:39    Post IP:180.169.30.6[只看该作者]

if holding=0 and cond then

begin

n:=你计算出的手术;

buy();

end

 

用n记录第一次空仓开仓的数量就可以了


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


加好友 发短信
等级:论坛游侠 帖子:215 积分:0 威望:0 精华:0 注册:2016/6/12 14:31:00
  发帖心情 Post By:2017/4/5 15:04:49    Post IP:113.105.163.236[只看该作者]

真的可以了,谢谢!

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


加好友 发短信
等级:论坛游侠 帖子:215 积分:0 威望:0 精华:0 注册:2016/6/12 14:31:00
  发帖心情 Post By:2017/4/5 15:21:10    Post IP:113.105.163.236[只看该作者]

再请问一下,如何编写 “保证金占用不超过总资金的50%”?

 回到顶部
帅哥哟,离线,有人找我吗?
qq代人发帖
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:18691 积分:0 威望:0 精华:0 注册:2013/7/15 9:22:16
  发帖心情 Post By:2017/4/5 15:23:20    Post IP:180.169.30.6[只看该作者]

保证金占用:TACCOUNT(28)

总资金:tasset


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


加好友 发短信
等级:论坛游侠 帖子:215 积分:0 威望:0 精华:0 注册:2016/6/12 14:31:00
  发帖心情 Post By:2017/4/5 15:35:31    Post IP:113.105.163.237[只看该作者]

好的,谢谢

 回到顶部