设为首页收藏本站

 找回密码
 注册
查看: 1288|回复: 5
打印 上一主题 下一主题

真实持仓和系统持仓的问题 [复制链接]

Rank: 3Rank: 3

精华
0
UID
256790
积分
237
帖子
137
主题
90
阅读权限
40
注册时间
2017-9-15
最后登录
2022-1-4
跳转到指定楼层
1#
发表于 2020-3-17 11:54:11 |只看该作者 |倒序浏览
原来我做历史回测,用如下代码,没有问题。系统没多仓,并且符合开多条件,就开多仓。
If (marketposition<>1   AND KD[1])  Buy(0,O );
现在我想加入真实持仓条件判断,如下
If (marketposition<>1  AND A_BuyPosition==0  AND KD[1])  Buy(0,O );
再次历史回测,结果就完全变了。
这段代码应该怎么写,既能满足历史回测,又能在真实交易时加入考虑真实持仓的判断条件。如果系统持仓为0,并且真实持仓也为0,才交易。

Rank: 3Rank: 3

精华
0
UID
256790
积分
237
帖子
137
主题
90
阅读权限
40
注册时间
2017-9-15
最后登录
2022-1-4
2#
发表于 2020-3-17 14:12:42 |只看该作者
研究了一下以前的一些帖子,版主,请问,我这样写可以吗?,是否足够严谨?还需要补充吗?比如加上a _buyposition!=invalidnumeric的判断吗?我需求是判断真实持仓是空仓就交易,用A_BuyPosition==0足够了吧,不需要判断invalidnumeric,是吗?

If(BarStatus == 2) // 当前Bar为最后的一个Bar
        {
            If (marketposition<>1  AND A_BuyPosition==0  AND KD[1] )  Buy(0,O );
                If (marketposition<>-1 AND A_SellPosition==0 AND KK[1] )  SellShort(0,O );
        }else  // 回溯测试的其他Bar直接买入
        {
                If (marketposition<>1  AND KD[1] )  Buy(0,O );
                If (marketposition<>-1 AND KK[1] )  SellShort(0,O );
        }

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
256790
积分
237
帖子
137
主题
90
阅读权限
40
注册时间
2017-9-15
最后登录
2022-1-4
3#
发表于 2020-3-17 14:56:48 |只看该作者
If (marketposition<>1  AND A_BuyPosition==0  AND KD[1] )  Buy(0,O );
做了一下测试,不是做历史回测,而是在真实交易时,即便当时是持仓的,启动自动交易后,也仍然会执行交易。
这句里的A_BuyPosition==0 感觉并没有生效,我想通过这个条件去判断在持仓的情况下,不在继续交易。
请问版主,应该如何写才能在真实交易里在持仓的情况下,不在继续交易?

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
256790
积分
237
帖子
137
主题
90
阅读权限
40
注册时间
2017-9-15
最后登录
2022-1-4
4#
发表于 2020-3-17 15:05:55 |只看该作者
在符合开仓的条件下,每次启动自动交易,都会执行一次开仓交易。即便上次已经交易成功,真实账户已经持仓的情况下,点击自动交易后,仍然会执行开仓操作,而代码里我的思路是在判断持仓的情况下,不再继续交易。但是现在无论是系统持仓判断marketposition<>1  还是真实账户持仓判断 A_BuyPosition==0,都没有生效。请版主解释下原因,这个问题在真实账户里经常出现,比较着急,谢谢!

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
256790
积分
237
帖子
137
主题
90
阅读权限
40
注册时间
2017-9-15
最后登录
2022-1-4
5#
发表于 2020-3-17 15:56:01 |只看该作者
现在问题只是在交易触发后,在一个周期内,停止自动交易,然后重新启动自动交易后出现,其他都是正常的。是不是重新启动自动交易后,上述的条件都无效,需要重新判断呢?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
0
UID
119549
积分
3071
帖子
2946
主题
2
阅读权限
200
注册时间
2013-5-23
最后登录
2020-5-27
6#
发表于 2020-3-17 16:35:07 |只看该作者
jikey96 发表于 2020-3-17 15:56
现在问题只是在交易触发后,在一个周期内,停止自动交易,然后重新启动自动交易后出现,其他都是正常的。是 ...

marketposition判断的是图表持仓,不能跟a、q开头的函数混用,运行机制不同,所以您这个思路也就实现不了

当根k线上重启自动交易会重新委托这个是软件机制决定的,想要避免可以先将软件界面右下角的允许自动变成忽略自动,再去启动图表上的自动交易,之后再将忽略自动恢复成允许自动

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-3 22:44

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部