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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 对阿火后台模型的问题

   

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


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

主题:对阿火后台模型的问题

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


加好友 发短信
等级:新手上路 帖子:50 积分:0 威望:0 精华:0 注册:2015/1/17 10:10:07
对阿火后台模型的问题  发帖心情 Post By:2017/2/5 16:40:57    Post IP:113.81.151.61[只看该作者]

首先感谢阿火的模板,感谢管理员的解答。


问题已用红色标出,见注释的【1】~【3】。


runmode:0;
Globalvariable:hold=drawnull;
……//这里添加上你自己的模型

……//这里添加上你自己的模型

cc800988:=holding;//这句放在信号稳定的地方
drawtextex(1,1,800,0,'虚拟持仓为:'+numtostr(cc800988,0));//在图表上输入虚拟持仓以便监控
if not(islastbar) or workmode<>1 then exit;
xiadan800988:=cc800988-hold;
if xiadan800988>0.5 then begin
 cang:=min(xiadan800988,abs(hold)); //【1】在cang的计算中,为什么要与hold进行某种形式的比较?xiadan800988本来就是虚拟持仓的变化量了。
 if hold<0 then begin
  tsellshort(1,cang,mkt,0,0,'800988'),allowrepeat;
  debugfile('D:\800988.txt',numtostr(hold,0)+' '+numtostr(cc800988,0)+' 平空 %.0f',cang);
 end
 cang:=xiadan800988+min(hold,0); //【2】min(hold,0)恒等于0,这句的用途是?
 if cang>0 then begin
  tbuy(1,cang,mkt,0,0,'800988'),allowrepeat;
  debugfile('D:\800988.txt',numtostr(hold,0)+' '+numtostr(cc800988,0)+' 开多 %.0f',cang);
 end
end
if xiadan800988<-0.5 then begin
 cang:=min(abs(xiadan800988),abs(hold));
 if hold>0 then begin
  tsell(1,cang,mkt,0,0,'800988'),allowrepeat; //【3】allowrepeat的意义是?什么情况下会进行重复发单?
  debugfile('D:\800988.txt',numtostr(hold,0)+' '+numtostr(cc800988,0)+' 平多 %.0f',cang);
 end
 cang:=abs(xiadan800988)-max(hold,0);
 if cang>0 then begin
  tbuyshort(1,cang,mkt,0,0,'800988'),allowrepeat;
  debugfile('D:\800988.txt',numtostr(hold,0)+' '+numtostr(cc800988,0)+' 开空 %.0f',cang);
 end
end
hold:=cc800988;




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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2017/2/6 9:05:37    Post IP:180.173.41.99[只看该作者]

这段代码的目的是什么?
[此贴子已经被作者于2017-2-6 9:05:44编辑过]


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:50 积分:0 威望:0 精华:0 注册:2015/1/17 10:10:07
  发帖心情 Post By:2017/2/6 9:29:23    Post IP:59.37.33.10[只看该作者]

利用图表的虚拟持仓的变化进行后台程序化操作。
http://www.weistock.com/bbs/dispbbs.asp?BoardID=10&replyID=39654&ID=9112&skin=1

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2017/2/6 10:34:27    Post IP:180.173.193.42[只看该作者]

1.hold为上次交易后的持仓结果,cc800988为这次交易后的持仓结果。

在反手交易的情况下,hold为负数,cc800988为正数,那么xiadan800988的结果可能是一个比abs(hold)要大,那么平仓时则要平掉全部空仓,那么平仓手数为abs(hold),用min是为了获取abs(hold)。

比如:上次交易为5手开空,当前交易为10手开多。则hold为-5 ,cc800988为10,xiadan800988为15。要平仓手数为5手,所以要用min来求出5这个数

 

2.并不是恒等于0,在上面基础上,min(0,hold)的结果为-5,平仓之后反手开仓,那么要求出反手开仓的数量:10手。

那么cang:=xiadan800988+min(0,hold)就是 15+(-5),即开多10手

 

3.防止一根k线内信号反复变化,用allowrepeat使得一根k线内能反复下单,信号变化时也能接着执行下单,让实际交易和信号保持一致

 

 



金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:50 积分:0 威望:0 精华:0 注册:2015/1/17 10:10:07
  发帖心情 Post By:2017/2/6 10:36:14    Post IP:59.37.33.10[只看该作者]

感谢,如果我用K线走完模式的话,就没有必要用allowrepeat了吧?

 回到顶部