开拓者期货期权程序化系统交易论坛

标题: 账户资金不够开仓手数如何处理? [打印本页]

作者: zhqh3960161    时间: 2019-2-28 17:37:03     标题: 账户资金不够开仓手数如何处理?

本帖最后由 zhqh3960161 于 2019-3-1 08:58 编辑

请教小米两个问题:
1.如果我总资金只够开10手单子,但我的程序要求开12手,开拓者会如何处理?不开仓还是开10手?
2.如果我的总资金只够开10手单子,程序允许连续开两次单子,开仓数量是每次8手,第一次开了8手,则第二次还是开8手的话,开拓者是开2手,还是把第一次开的8手平掉之后,再开8手?
再追加两个问题:
3.如果我程序规定开平仓都是10手,那么我手动平仓掉5手,那么剩下的5手,程序化交易在满足平仓条件时会平掉吗?
4.如果上一条不能平仓,那么我把平仓手数换成A_Buyposition或A_sellposition,在满足平仓条件时,TB会执行平仓吗?
作者: 小米    时间: 2019-3-1 09:27:52

1,程序下一笔12手的开仓委托单 ,柜台会因为你的帐户资金不足而直接拒绝该委托。

2,第二次还是发一笔8手的开仓委托单 ,但同样柜台会因为你的资金不足而直接拒绝掉该委托 。

3,如果是使用sell,buytocoverr平仓指令,当平仓指令10手的信号发出时,程序会下一笔10手的平仓委托 。柜台会判断可平持仓不足而直接拒绝该委托 。

4,如果整个公式全部使用帐户函数来编写,那么平仓时读取帐户持仓数做为平仓手数。那么是可以读出5手的持仓而直接下一笔5手的平仓单 的。
     但如果是使用sell,buycover的指令,但是下单手数的参数却是使用a_buyposition,a_sellpoisition等,是肯定不行的。buy,sell指令 与a_xxx,q_xxx等函数混用是会有问题,不建议这样做。
作者: zhqh3960161    时间: 2019-3-1 10:34:33

小米 发表于 2019-3-1 09:27
1,程序下一笔12手的开仓委托单 ,柜台会因为你的帐户资金不足而直接拒绝该委托。

2,第二次还是发一笔8手 ...


非常感谢小米的回复,我昨天的交易发生了下面的问题:
我的全局交易设置是可连续开仓2手,在第一次满足条件的时候,开了12手,第二次满足条件的时候,为啥要先平了我之前的持仓再开12手呢?在什么情况下会发生这种事情?

作者: 小米    时间: 2019-3-1 13:24:20

zhqh3960161 发表于 2019-3-1 10:34
非常感谢小米的回复,我昨天的交易发生了下面的问题:
我的全局交易设置是可连续开仓2手,在第一次满足条 ...

你的两个12手分别是买与卖,两个不同的方向呢。
这是一个平仓反手开仓的动作。
作者: zhqh3960161    时间: 2019-3-2 07:06:26

小米 发表于 2019-3-1 13:24
你的两个12手分别是买与卖,两个不同的方向呢。
这是一个平仓反手开仓的动作。 ...

谢谢小米回复,你再看一下我的单子,不是反手操作,开仓都是卖,平仓都是买的,没有反手操作!另外还有一个问题,就是昨天你建议尽量不要用A_Buyposition等函数在程序化里,可能产生一些问题,我能想到的是,在实际操作中,用A_position可能会把我手动开的仓和程序开的仓,一并在满足平仓条件时平掉,我的理解对吗?另外可能还会产生什么问题,请列举一二!
作者: 小米    时间: 2019-3-4 09:02:57

zhqh3960161 发表于 2019-3-2 07:06
谢谢小米回复,你再看一下我的单子,不是反手操作,开仓都是卖,平仓都是买的,没有反手操作!另外还有一 ...

同时卖开12手与买平12手这个是你的策略发出来的吗?请将策略委托日志发出来看一下。
如果确认是策略开的,且这个与您的交易思路不符,请检查并修改策略代码,直至符合自己的交易 需求。

前面并没有说a_buyPosition不能用在程序化里。而是说a_xxx这类的帐户函数不能与buy,sell等指令函数混用在一个公式里。
因为帐户函数的属性与图表函数不同,两者混会导致问题。比如说A函数只在最后一个K线上且启动了自动交易时有效。。用函数判断后的开平仓,是会导致有过交易,过后信号也会有消失的。

作者: zhqh3960161    时间: 2019-3-4 17:31:27

小米 发表于 2019-3-4 09:02
同时卖开12手与买平12手这个是你的策略发出来的吗?请将策略委托日志发出来看一下。
如果确认是策略开的 ...

从哪里看策略委托日志呢?好像过了一天都消失了?
作者: zhqh3960161    时间: 2019-3-4 22:12:50

本帖最后由 zhqh3960161 于 2019-3-5 06:45 编辑
小米 发表于 2019-3-4 09:02
同时卖开12手与买平12手这个是你的策略发出来的吗?请将策略委托日志发出来看一下。
如果确认是策略开的 ...


经过我的分析,我觉得我的单子发生上面的情况,在于开拓者交易策略进阶的举例部分,“If(High >= LowestAfterEntry[1] + TrailingStop2*MinPoint)”有问题,多了那个等号,将一种情况忽略了,就是光头阴线时,我在光头阴线的顶部建仓做空,如果当根k线的跌幅就达到了我设定止损值,那么当根K线结束时就会平掉这手单子,不知道我分析的对不对,应该把那个等号去掉!下面附上我今天又再次遇上同样的情况,我把信号截图下来了!
ps.1.我之前持有手动空单,我的交易系统随后进行空单入场交易,然后一入场就平仓,是不是与我之前持有手动空单有关?2.是不是一收盘之后,关了TB再重开,就看不到之前的历史数据了?只有在盘中才能查看历史数据?

作者: 小米    时间: 2019-3-5 09:08:23

zhqh3960161 发表于 2019-3-4 22:12
经过我的分析,我觉得我的单子发生上面的情况,在于开拓者交易策略进阶的举例部分,“If(High >= LowestA ...

1,日志在TB根目录下的,autotrade以及 sorder(或ctporder)文件夹内。

2,策略进阶里的写法并没有问题。

3,不建议在开仓bar上又平仓,除非是在这个bar的开盘时就开的仓。否则确实可能在遇到一个大柱子里,一个bar上是会同时满足多与空的不同方向。会导致问题。

4,空单入单然后一入场 就平仓,我们先查看日志,确认一下是什么模块的发的委托吧,然后才进一步判断。
     刚收盘后重启TB,是可以看到之前 的交易记录的。。但是结算后,肯定就看不到了。  盘中也一样看不到历史里往天的交易记录。
作者: zhqh3960161    时间: 2019-3-5 13:24:30

本帖最后由 zhqh3960161 于 2019-3-5 13:29 编辑
小米 发表于 2019-3-5 09:08
1,日志在TB根目录下的,autotrade以及 sorder(或ctporder)文件夹内。

2,策略进阶里的写法并没有问题。 ...


谢谢,小米回复,我的出场策略基本就是复制的策略进阶里的写法,我觉得有问题,比如
“else If(High >= MyEntryPrice + StopLossSet*MinPoint)//可以在这里写上初始的止损处理
        {
            MyExitPrice = MyEntryPrice + StopLossSet*MinPoint;
            If(Open > MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
            BuyToCover(0,MyExitPrice);

这个里面,如果是一个光头阴线触发入场做空条件,则完全有可能出现“High = MyEntryPrice + StopLossSet*MinPoint”的情况,那么进场之后,就会立刻触发止损,我觉得解决的办法:开仓点设在下根K线;

作者: 小米    时间: 2019-3-5 13:55:16

zhqh3960161 发表于 2019-3-5 13:24
谢谢,小米回复,我的出场策略基本就是复制的策略进阶里的写法,我觉得有问题,比如
“else If(High >= M ...

1,这一段止损平仓的策略逻辑本身是没有问题的;

2,您的止损点是设得有多小,才会导致一开仓就立马触发止损呢?

3,在这段代码例子的下方有注意事项,上面有说到这段代码的使用需要交易者自己处理一下开仓bar上不执行止损。以及为避免同一个bar上即满足止损又满足止赢的情况下,需自行决定是切换到更小周期或扩大止赢/止损幅度

作者: zhqh3960161    时间: 2019-3-5 14:55:52

小米 发表于 2019-3-5 13:55
1,这一段止损平仓的策略逻辑本身是没有问题的;

2,您的止损点是设得有多小,才会导致一开仓就立马触发 ...

非常感谢小米回复,那如何处理开仓bar上不执行止损呢?
作者: 小米    时间: 2019-3-5 15:00:23

zhqh3960161 发表于 2019-3-5 14:55
非常感谢小米回复,那如何处理开仓bar上不执行止损呢?

最简单的方法就是,在公式代码编辑时,将平仓语句写在开仓语句前。。
或者使用平仓条件加上barssinceentry>=1的条件等。
作者: zhqh3960161    时间: 2019-3-5 15:25:52

小米 发表于 2019-3-5 15:00
最简单的方法就是,在公式代码编辑时,将平仓语句写在开仓语句前。。
或者使用平仓条件加上barssinceentr ...

非常感谢,小米!
作者: 小米    时间: 2019-3-5 16:24:07

zhqh3960161 发表于 2019-3-5 15:25
非常感谢,小米!

不客气




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2