金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 4088|回复: 9

新手请教一个问题

[复制链接]

11

主题

24

帖子

34

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
发表于 2021-10-11 21:26 | 显示全部楼层 |阅读模式
假定有如下一个简单模型:
以过去两根K线的高点为上轨,过去两个K线的低点为下轨,当盘中价格突破上轨时,平空开多,反之,平多开空,该模型始终持有仓位,我编写的开平仓条件如下(A1H和A1L分别为上下轨):

KD:=HIGH>=A1H;          //开多条件
PD:=LOW<=A1L;          //平多条件
KK:=LOW<=A1L;          //开空条件
PK:=HIGH>=A1H;          //平空条件


模型用图形程序化,轮询方式,日线,试运行时其他情况都正常,但如果当前K线既突破上轨又突破下轨时出现错误:
假定到昨日收盘,系统持有的是空单,今日盘中先突破了下轨(此时系统判断已有空单,所以不发空单),然后上涨突破上轨,此时系统先执行平空动作,平空后持仓为0,
此时系统判断既符合开多条件又符合开空条件(当前K线的HIGH和LOW都突破了上下轨道),所以下了一份多单和一份空单。而如果将开平仓条件中的HIGH和LOW都换成
CLOSE的话,当盘中有突破开仓但收盘时价格回到轨道内,会出现信号消失,影响后续K线对HOLDING的判断,造成重复下单等问题,请教老师如何解决?

回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-10-12 08:33 | 显示全部楼层
“此时系统判断既符合开多条件又符合开空条件(当前K线的HIGH和LOW都突破了上下轨道),所以下了一份多单和一份空单。” 你如果是图表模型的话,不会同时下多单和空单的。因为图表单个模型内部是不能锁仓的。 虽然当前2个方向条件都满足,但是代码执行也有个顺序的呀。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

11

主题

24

帖子

34

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-10-12 10:56 | 显示全部楼层
按照代码执行顺序的确是不会出现这种情况的,今天用1手在短周期上面试验了很多遍,这种情况还是出现。
1.png
2.png
我的开平仓代码是这样的:
平空:SELLSHORT(PK,1,MARKET);                  //平空信号
开多:BUY(BUYS=1 AND KD AND HOLDING=0,1,MARKET);          //开多信号
平多:SELL(PD,1,MARKET);                       //平多信号
开空:BUYSHORT(SELLS=1 AND KK AND HOLDING=0,1,MARKET);     //开空信号

麻烦帮我检查一下错误。
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-10-12 10:58 | 显示全部楼层
有没有交易日志。这几个单子的交易日志你找下发上来看下。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

11

主题

24

帖子

34

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-10-12 11:31 | 显示全部楼层
出现上面棕榈油两边下单情况时的交易日志我截取了一下,发现是跟其他正常下的不一样:
微信截图_20211012113010.png
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-10-12 13:14 | 显示全部楼层
日志里记录的下单顺序,其实是对的。的确是符合逻辑的,因为你多空开平的确是满足的。所以触发上肯定是会触发的。

但是你这里的问题是这样的,平多时候前面开多没来及成交。所以最后实际下单就变成了,平空,开多,又开空。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

11

主题

24

帖子

34

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-10-12 14:46 | 显示全部楼层
那有解决的办法吗?这个对于有上下轨的模型双向交易应该是都会碰到的问题吧。
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-10-12 14:50 | 显示全部楼层
你现在需求应该是要 开多后面的平多也顺序完成对吧。

这种可以使用ORDERQUEUE函数来处理。就是让这几个单子都顺序完成后继续后面的单子。实际上意思就是按照你代码顺序逐一完成每个下单。具体你可以看下函数说明。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

11

主题

24

帖子

34

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-10-12 23:21 | 显示全部楼层
不是这个意思,应该是想要开多以后不要执行后面的平多,平多不执行,那么再后面的开空也不会执行了。
结合行情走势来说明应该是这样的(按照日线周期):
昨天行情是下跌的,收盘后持有的是空单,今天开盘后继续下跌,虽然跌破了下轨,但是系统判断已有空单,
所以不重复下空单,然后行情开始上涨,到突破上轨后触发程序,此时正常应该是平掉空单,开多单,也就是
下单代码的第一句和第二句,但是现在因为开平仓条件里面用的是LOW,所以造成第三句平多也成立了,以前
用过文华,这里必须是用CLOSE的,也就是盘中的最新价,就不会出错,但是金字塔里用CLOSE的话就会造成
过去已走完的K线上的信号消失,整个持仓就乱掉了。

补充内容 (2021-10-12 23:46):
另外,既然图表不能锁仓,为什么会出现几乎同一个时间点既开多单又开空单?
回复

使用道具 举报

37

主题

9845

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2021-10-13 00:18 | 显示全部楼层
本帖最后由 技术006 于 2021-10-13 00:21 编辑

1. 在图表上要先平后开。你上面的代码,建议调整为:
[PEL] 复制代码
平空:SELLSHORT(PK,1,MARKET);                  //平空信号
平多:SELL(PD,1,MARKET);                       //平多信号
开多:BUY(BUYS=1 AND KD AND HOLDING=0,1,MARKET);          //开多信号
开空:BUYSHORT(SELLS=1 AND KK AND HOLDING=0,1,MARKET);     //开空信号


2.建议您排查下开多信号条件和平仓信号条件,是否相同或者存在条件交集。否者不会造成开多后再平多。存在交集的条件需要增加子条件进行限制才可以。

3.你是固定时间间隔模式运行?否者用close是不会存在信号条件发生变化的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-4-30 21:36 , Processed in 0.165475 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表