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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 标准版如何实现手动下单自动平仓

   

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


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

主题:标准版如何实现手动下单自动平仓

帅哥哟,离线,有人找我吗?
阿火
  11楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2011/3/22 21:29:11    Post IP:58.22.151.118[只看该作者]

可以的,以前不是有个帖子讨论过这个问题了

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


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2011/3/22 21:30:14    Post IP:58.22.151.118[只看该作者]

http://www.weistock.com/bbs/dispbbs.asp?BoardID=2&ID=5030&replyID=&skin=1

3,tholding、tholding2其实也可以在图表交易上使用,但要用得当。

注意:每次下平仓单,必须holding有持仓。如果前面的信号消失了,holding也就为0,即使tholding>0,但也不下单的。

比如我们想手动开仓,自动平仓,以下的例子并不会正确平仓:

    if tholding2>0 then sell(1,1,market);

 

示例:

假设某投资者是个半自动交易者,手动开仓,自动平仓。那我们如果做到使用tholding呢?

让holding=tholding!!就是让前面有开仓,OK,buy(barpos=datacount-1,实际持仓,market)。

可是在逐周期模式下,tholding只在最后一个周期有值,其余都=0,怎么办?用extgbdata。

 

完整代码如下:

aa:tholding,linethick0;
bb:=extgbdata('quanju');
if bb>0 then buy(barpos=datacount-1,bb,thisclose);
if aa>0 then
begin
 sell(1,0,market);
end
if islastbar then extgbdataset('quanju',aa);

  • //以上代码可实现 手动开仓,自动平仓。
[此贴子已经被作者于2011-3-22 22:26:46编辑过]

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


加好友 发短信
等级:新手上路 帖子:37 积分:189 威望:0 精华:0 注册:2010/12/24 12:56:02
  发帖心情 Post By:2011/3/23 9:40:33    Post IP:219.133.167.188[只看该作者]

楼上答案正解.谢谢!

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


加好友 发短信
等级:黑侠 帖子:649 积分:1359 威望:0 精华:0 注册:2009/10/24 1:57:01
  发帖心情 Post By:2012/10/15 22:24:48    Post IP:113.250.118.212[只看该作者]

火哥这个例子太好了,谢谢,由衷地感谢

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


加好友 发短信
等级:黑侠 帖子:649 积分:1359 威望:0 精华:0 注册:2009/10/24 1:57:01
  发帖心情 Post By:2012/10/15 23:44:01    Post IP:113.250.118.212[只看该作者]

以下是引用阿火在2011-3-22 21:30:14的发言:

http://www.weistock.com/bbs/dispbbs.asp?BoardID=2&ID=5030&replyID=&skin=1

3,tholding、tholding2其实也可以在图表交易上使用,但要用得当。

注意:每次下平仓单,必须holding有持仓。如果前面的信号消失了,holding也就为0,即使tholding>0,但也不下单的。

比如我们想手动开仓,自动平仓,以下的例子并不会正确平仓:

    if tholding2>0 then sell(1,1,market);

 

示例:

假设某投资者是个半自动交易者,手动开仓,自动平仓。那我们如果做到使用tholding呢?

让holding=tholding!!就是让前面有开仓,OK,buy(barpos=datacount-1,实际持仓,market)。

可是在逐周期模式下,tholding只在最后一个周期有值,其余都=0,怎么办?用extgbdata。

 

完整代码如下:

aa:tholding,linethick0;
bb:=extgbdata('quanju');
if bb>0 then buy(barpos=datacount-1,bb,thisclose);
if aa>0 then
begin
 sell(1,0,market);
end
if islastbar then extgbdataset('quanju',aa);

  • //以上代码可实现 手动开仓,自动平仓。
[此贴子已经被作者于2011-3-22 22:26:46编辑过]

火哥,在实际使用时,我是要引用aa还是bb呢,用buy(cond and aa,0,market);还是buy(cond and bb,0,market);????


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


加好友 发短信
等级:黑侠 帖子:649 积分:1359 威望:0 精华:0 注册:2009/10/24 1:57:01
  发帖心情 Post By:2012/10/16 0:49:58    Post IP:113.250.118.212[只看该作者]

火哥,请问在图表自动化条件下,想使用tholding函数来控制自动开平仓且要能自动执行,用你上面的代码来改写,是否只需要别外加一句

if bb<0 then sell(barpos=datacount-1,bb,thisclose);就行了?


完整代码如下:不知这样是否正确?

//图表自动化下,使用tholding来控制自动开平仓

aa:tholding,linethick0;
bb:=extgbdata('quanju');
if bb>0 then buy(barpos=datacount-1,bb,thisclose);

if bb<0 then sell(barpos=datacount-1,bb,thisclose);

if islastbar then extgbdataset('quanju',aa);

//自动平仓
if aa>0 then
begin
 sell(1,0,market);
end

//自动开仓

if aa<0  and 其它条件 then begin

buy(1,0,market);

end


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


加好友 发短信
等级:黑侠 帖子:791 积分:856 威望:0 精华:0 注册:2011/11/16 23:34:34
  发帖心情 Post By:2012/10/16 12:44:22    Post IP:221.179.30.111[只看该作者]

if bb>0 then buy(barpos=datacount-1,bb,thisclose);

if bb<0 then sell(barpos=datacount-1,bb,thisclose);

 

没明白这两句的作用是什么


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


加好友 发短信
等级:黑侠 帖子:649 积分:1359 威望:0 精华:0 注册:2009/10/24 1:57:01
  发帖心情 Post By:2012/10/16 13:02:25    Post IP:119.85.19.80[只看该作者]

以下是引用leonxu在2012-10-16 12:44:22的发言:
if bb>0 then buy(barpos=datacount-1,bb,thisclose);

if bb<0 then sell(barpos=datacount-1,bb,thisclose);

 

没明白这两句的作用是什么

这两句的意思是让前面有开仓和平仓信号,若前面没有对应的信号,其后的buy(tholding=0,0,market)或sell(tholding>0,0,market)就算tholding满足条件,它也不会执行


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


加好友 发短信
等级:超级版主 帖子:3534 积分:10003 威望:0 精华:5 注册:2012/5/25 0:00:01
  发帖心情 Post By:2012/10/16 13:35:13    Post IP:58.246.57.26[只看该作者]

lcgs005 你理解有误

你自己先用 阿火 的代码 手工下个单 然后用以下代码平仓

 

aa:tholding,linethick0;
bb:=extgbdata('quanju');
if bb>0 then buy(barpos=datacount-1,bb,thisclose);//让图表显示开仓信号
if aa>0 and currenttime>=101245 then  //红色时间自己定
begin
 sell(1,0,market);

end
if islastbar then extgbdataset('quanju',aa);

 

 

注意观察程序平仓以后,你看看图表上还有没有留下信号痕迹?

 

sell——需要有holding>0 有开仓才能平仓。

希望用

if bb<0 then sell(barpos=datacount-1,bb,thisclose);

弄出开仓信号不可行哦

 



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

产品部

-----------------------------------------------------------

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

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
lcgs005
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:649 积分:1359 威望:0 精华:0 注册:2009/10/24 1:57:01
  发帖心情 Post By:2012/10/16 14:24:22    Post IP:119.85.19.80[只看该作者]

谢谢版主及bing兄的帮助,我大概理解了信号的作用,收盘后写个公式来实测下,给二位爷敬个礼


 回到顶部
总数 27 上一页 1 2 3 下一页