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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 开平仓语句顺序问题

   

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


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

主题:开平仓语句顺序问题

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


加好友 发短信
等级:论坛游侠 帖子:293 积分:0 威望:0 精华:0 注册:2015/8/12 16:11:54
开平仓语句顺序问题  发帖心情 Post By:2016/12/29 13:18:52    Post IP:111.203.152.106[只看该作者]



我按照初级教程给的开平仓顺序——

1,平空

2,开多

3,平多

4,开空


这样来写的,是逐K线计算

但是今天实盘图表交易的时候,某根K线开盘时用OPEN开了空(代码在位置4),开空就设定开盘价之上20点止损线,在位置1执行CROSS(HIGH,OPEN+20点止损)平空止损,但是本根打了止损没执行,下一根才性质,导致亏损很多


位置1的平空语句中,有条件要求必须位置4开空后才能执行平空,我想就是这个原因导致本根止损没平,但我的问题是,实盘过程中,如果第一秒位置4的开空执行了,第10秒价格达到止损了,之后如果有100秒时间走完这根K线,那这100秒时间中,位置4的开空已执行这个条件不会被刷新吗?(我理解回测时每根K线只计算一遍,但实盘时候呢?)



有什么方法能补救这个问题吗?

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


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

1是本根打了止损没执行,下一根才性质,导致亏损很多
设置为固定时间间隔模式,不要用走完k线下单,

2顺序也很重要,但不是一定是顺序的问题,如果不是同一根k线开平仓,那么顺序影响的可能性就小了



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

客户服务部

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

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

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


加好友 发短信
等级:论坛游侠 帖子:293 积分:0 威望:0 精华:0 注册:2015/8/12 16:11:54
  发帖心情 Post By:2016/12/29 14:09:27    Post IP:111.203.152.106[只看该作者]

 谢谢回答,可是:
1,程序化交易运行模式,我就是使用的固定时间间隔,设置的1秒

2,我觉得很有可能是顺序问题,因为我下一根才执行平仓,触发的是另外一个平空语句(开盘价大于止损线时以开盘价平仓)(这语句也写在位置1,先是CROSS止损,之后防止万一开盘价超过止损,这两句前后挨着)。
同时我的开多和平多止损就不会出现这个问题,当根K线就会平仓,两种写法的开平仓只是方向不一样其他都一样,因为我觉得是开多和平多顺序顺序正确,而开空要在下一遍执行才能触发


3,假设我把位置1的平空原封不动复制一遍放在位置4后面,能解决这问题吗?会不会带来其他不好的结果?

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/12/29 14:29:11    Post IP:180.169.30.6[只看该作者]

把你写的发一下,看看实际的代码是什么样的


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

客户服务部

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

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

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


加好友 发短信
等级:论坛游侠 帖子:293 积分:0 威望:0 精华:0 注册:2015/8/12 16:11:54
  发帖心情 Post By:2016/12/29 17:02:19    Post IP:111.203.152.106[只看该作者]

 请看,螺纹钢连续,15分钟K线图
2016年12月28号01:15这根是多单止损,没问题
2016年12月29号02:45这根是空单止损,只能第二根平

求解决方法



VARIABLE:空单止损=0,空单入场标记=0,多单止损=0,多单入场标记=0;


向上均线:=REF(MA(CLOSE,30),5)<REF(MA(CLOSE,30),4) AND REF(MA(CLOSE,30),4)<REF(MA(CLOSE,30),3) AND REF(MA(CLOSE,30),3)<REF(MA(CLOSE,30),2) AND REF(MA(CLOSE,30),2)<REF(MA(CLOSE,30),1),NOAXIS;
向上成交量:=REF(VOL,5)>REF(VOL,4) AND REF(VOL,4)>REF(VOL,3) AND REF(VOL,3)>REF(VOL,2) AND REF(VOL,2)>REF(VOL,1),NOAXIS;

向下均线:=REF(MA(CLOSE,30),5)>REF(MA(CLOSE,30),4) AND REF(MA(CLOSE,30),4)>REF(MA(CLOSE,30),3) AND REF(MA(CLOSE,30),3)>REF(MA(CLOSE,30),2) AND REF(MA(CLOSE,30),2)>REF(MA(CLOSE,30),1),NOAXIS;
向下成交量:=REF(VOL,5)>REF(VOL,4) AND REF(VOL,4)>REF(VOL,3) AND REF(VOL,3)>REF(VOL,2) AND REF(VOL,2)>REF(VOL,1),NOAXIS;





//位置1——平空
//平空1
IF CROSS(HIGH,空单止损) AND OPEN<=空单止损 AND HOLDING<0 AND 空单入场标记=1 THEN
BEGIN
SELLSHORT(1,1,LIMITR,空单止损);
DRAWTEXT(1,LOW*0.995,'    止损'+NUMTOSTR(空单止损,0)),COLORWHITE;
空单止损:=99999;
空单入场标记:=0;
END

//平空2
IF OPEN>空单止损 AND HOLDING<0 AND 空单入场标记=1 THEN
BEGIN
SELLSHORT(1,1,LIMITR,OPEN);
DRAWTEXT(1,LOW*0.995,'    开盘平'+NUMTOSTR(OPEN,0)),COLORWHITE;
空单止损:=99999;
空单入场标记:=0;
END




//位置2——开多
//开多:
IF REF(向上均线,1) AND CROSS(MA(CLOSE,10),MA(CLOSE,60)) AND HOLDING=0 THEN
BEGIN
BUY(1,1,LIMITR,OPEN);
多单止损:=ENTERPRICE-20;
多单入场标记:=1;
END




//位置3——平多
//平多1
IF CROSS(多单止损,LOW) AND OPEN>=多单止损 AND HOLDING>0 AND 多单入场标记=1 THEN
BEGIN
SELL(1,1,LIMITR,多单止损);
DRAWTEXT(1,HIGH*1.005,'    止损'+NUMTOSTR(多单止损,0)),COLORWHITE;
多单止损:=0;
多单入场标记:=0;
END

//平多2
IF OPEN<多单止损 AND HOLDING>0 AND 多单入场标记=1 THEN
BEGIN
SELL(1,1,LIMITR,OPEN);
DRAWTEXT(1,HIGH*1.005,'    开盘平'+NUMTOSTR(OPEN,0)),COLORWHITE;
多单止损:=0;
多单入场标记:=0;
END




//位置4——开空
//开空:
IF REF(向下均线,1) AND CROSS(MA(CLOSE,60),MA(CLOSE,10)) AND REF(向下成交量,1) AND HOLDING=0  THEN
BEGIN
BUYSHORT(1,1,LIMITR,OPEN);
空单止损:=ENTERPRICE+20;
空单入场标记:=1;
END

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/12/29 17:06:56    Post IP:180.169.30.6[只看该作者]

看了下代码,有用到enterprice这类要获取开仓价以及enterbars获取开仓周期的函数做平仓条件的,那么平仓语句一定要写在开仓语句后面



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

客户服务部

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

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

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


加好友 发短信
等级:论坛游侠 帖子:293 积分:0 威望:0 精华:0 注册:2015/8/12 16:11:54
  发帖心情 Post By:2016/12/29 17:19:26    Post IP:111.203.152.106[只看该作者]

 请教一个不会出错的保险解决办法,比如把位置一的平仓语句再复制到位置4之后,这样同时存在两个平仓语句会不会出问题?两个相同的平仓语句在不同通位置,官方推荐这么写么?(毕竟再上实盘测试还是得赔钱才能看出来,所以直接问版主)


或者准确开仓价的获取,能否用其他方式?这样能维持原来的代码顺序不变?

非常感谢
[此贴子已经被作者于2016-12-29 17:21:12编辑过]

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/12/29 17:25:04    Post IP:180.169.30.6[只看该作者]

就如之前所言,这些是没有固定的路数的,看你具体的需求的。用enterprice和enterbars时做为平仓条件判断时,一定要在开仓语句后面,不然是不能正确的获取值的:获取值时会延迟一根k线,开仓当根k线获取不到,要开仓下一根k线才行


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

客户服务部

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

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

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


加好友 发短信
等级:论坛游侠 帖子:293 积分:0 威望:0 精华:0 注册:2015/8/12 16:11:54
  发帖心情 Post By:2016/12/30 16:10:36    Post IP:111.203.152.106[只看该作者]

版主,这个问题我早上又测试了一下,我修改了代码(注释掉了ENTERPRICE,改为OPEN),也测试了在位置4后面多复制一个位置1的平仓,但是我看历史数据图形还是一样的第二根开
我想确认一下,这样上实盘,OPEN价入场后到收线这段时间是不是一定会当根止损,我担心下一次出现这情况不知道什么时候亏笔大的。


螺纹钢连续,15分钟K线图
2016年12月28号01:15这根是多单止损,没问题
2016年12月29号02:45这根是空单止损,只能第二根平


 

VARIABLE:空单止损=0,空单入场标记=0,多单止损=0,多单入场标记=0;


向上均线:=REF(MA(CLOSE,30),5)<REF(MA(CLOSE,30),4) AND REF(MA(CLOSE,30),4)<REF(MA(CLOSE,30),3) AND REF(MA(CLOSE,30),3)<REF(MA(CLOSE,30),2) AND REF(MA(CLOSE,30),2)<REF(MA(CLOSE,30),1),NOAXIS;
向上成交量:=REF(VOL,5)>REF(VOL,4) AND REF(VOL,4)>REF(VOL,3) AND REF(VOL,3)>REF(VOL,2) AND REF(VOL,2)>REF(VOL,1),NOAXIS;

向下均线:=REF(MA(CLOSE,30),5)>REF(MA(CLOSE,30),4) AND REF(MA(CLOSE,30),4)>REF(MA(CLOSE,30),3) AND REF(MA(CLOSE,30),3)>REF(MA(CLOSE,30),2) AND REF(MA(CLOSE,30),2)>REF(MA(CLOSE,30),1),NOAXIS;
向下成交量:=REF(VOL,5)>REF(VOL,4) AND REF(VOL,4)>REF(VOL,3) AND REF(VOL,3)>REF(VOL,2) AND REF(VOL,2)>REF(VOL,1),NOAXIS;





//位置1——平空
//平空1
IF CROSS(HIGH,空单止损) AND OPEN<=空单止损 AND HOLDING<0 AND 空单入场标记=1 THEN
BEGIN
SELLSHORT(1,1,LIMITR,空单止损);
DRAWTEXT(1,LOW*0.995,'    止损'+NUMTOSTR(空单止损,0)),COLORWHITE;
空单止损:=99999;
空单入场标记:=0;
END

//平空2
IF OPEN>空单止损 AND HOLDING<0 AND 空单入场标记=1 THEN
BEGIN
SELLSHORT(1,1,LIMITR,OPEN);
DRAWTEXT(1,LOW*0.995,'    开盘平'+NUMTOSTR(OPEN,0)),COLORWHITE;
空单止损:=99999;
空单入场标记:=0;
END




//位置2——开多
//开多:
IF REF(向上均线,1) AND CROSS(MA(CLOSE,10),MA(CLOSE,60)) AND HOLDING=0 THEN
BEGIN
BUY(1,1,LIMITR,OPEN);
//多单止损:=ENTERPRICE-20;
多单止损:=OPEN-20;
多单入场标记:=1;
END




//位置3——平多
//平多1
IF CROSS(多单止损,LOW) AND OPEN>=多单止损 AND HOLDING>0 AND 多单入场标记=1 THEN
BEGIN
SELL(1,1,LIMITR,多单止损);
DRAWTEXT(1,HIGH*1.005,'    止损'+NUMTOSTR(多单止损,0)),COLORWHITE;
多单止损:=0;
多单入场标记:=0;
END

//平多2
IF OPEN<多单止损 AND HOLDING>0 AND 多单入场标记=1 THEN
BEGIN
SELL(1,1,LIMITR,OPEN);
DRAWTEXT(1,HIGH*1.005,'    开盘平'+NUMTOSTR(OPEN,0)),COLORWHITE;
多单止损:=0;
多单入场标记:=0;
END




//位置4——开空
//开空:
IF REF(向下均线,1) AND CROSS(MA(CLOSE,60),MA(CLOSE,10)) AND REF(向下成交量,1) AND HOLDING=0  THEN
BEGIN
BUYSHORT(1,1,LIMITR,OPEN);
//空单止损:=ENTERPRICE+20;
空单止损:=OPEN+20;
空单入场标记:=1;
END





{

//位置5——平空
//平空1
IF CROSS(HIGH,空单止损) AND OPEN<=空单止损 AND HOLDING<0 AND 空单入场标记=1 THEN
BEGIN
SELLSHORT(1,1,LIMITR,空单止损);
DRAWTEXT(1,LOW*0.995,'    止损'+NUMTOSTR(空单止损,0)),COLORWHITE;
空单止损:=99999;
空单入场标记:=0;
END

}
[此贴子已经被作者于2016-12-30 16:11:03编辑过]

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/12/30 16:17:02    Post IP:180.169.30.6[只看该作者]

一样的,平仓是开仓相关的条件,平仓语句都要写在开仓语句后面


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

客户服务部

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

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

 回到顶部
总数 16 1 2 下一页