程序化交易之日内-

程序化交易之日内\
点及财经,股票期货专业投机者。

前言

"锁仓",也就是对锁。是指在不平掉仓位的前提下,建立反向仓位,常常用于期货交易中。例如,双均线交易系统中,金叉后建立多单。

等到死叉时,按逻辑我们是应该平掉多头仓位。但不是那样的,而是建立空头仓位。然后一直持有仓位,这就是"锁仓"。

一般情况下,在日内平今手续费较高的品种才采取"锁仓",下一个交易日平仓。

例如,股指期货:

因此,做股指期货交易日内交易或者避免当日平仓所造成的高额平今手续费的话,就得采用锁仓的模式。

作者将利用交易开拓者TBQuant,实现股指期货日内对锁,下一个交易日解锁这一功能。

股指期货对锁、解锁需要注意的几个问题

我们都知道,原策略开仓后你是不知道它会在当日平仓还是隔夜平。

另外,如果隔夜平,锁仓之后仍要根据第二个交易日策略的多空信号,到底平多单还是空单等等一系列问题。

需要理清以下思路:

以双均线交易系统,多头为例,并且一天最多交易一笔

1.首先,开仓后当日出现平仓信号怎么办?

不用说,直接当日开空仓,对锁。

2.其次,第二天如何解锁?

如果第二天遇到多头开仓信号,就把老空仓给平掉解锁,留一手多单。

3.最后,如果前一天没有锁仓,第二天又应当如何操作?

触发多头平仓信号后,直接平掉多仓。如果平多后又当日遇到开多信号,则开多仓。

一直循环往复!

这就是,多头锁仓的整个逻辑。

小结。

其中,作者认为是他们之间的开平及锁仓、解锁的顺序控制才是最重要的部分。因为,需要我们识别两个图层之间的开平仓及及解锁仓的状态。

下面作者,用代码详细的介绍如何实现股指期货锁仓功能。

“股指期货”锁仓功能代码实现

大致的思路是,在一个图表中叠加2个相同的合约,一个负责开仓、平仓,另一个负责锁仓和解锁。

1.计算均线及开平仓价格。

1)开仓条件如下:

当金叉发生时,突破当前最高价+N倍ATR。满足上述条件,开多。

2)平仓条件如下:

当均线死叉时,平多仓。

代码:

run:

上图中,白色线就是多头触发价格。

2.开仓、平仓,锁仓、解锁。

1)首先,开仓、解锁.

我们来说开仓。开仓是指开新仓,是指在空仓的状态下,触发多头开仓价格。

代码:

run:

注意:以下三个变量,初始值为0。

Entry这个开关,如果等于0,说明没有新开仓。大于0,说明当日有开新仓。Unlock这个开关,如果等于0,说明策略在当日没有解锁过,也就是当日没开仓。Lock,如果等于0,说明策略没有锁仓。既没有锁仓、也没有开仓。程序就会开新仓!

解锁。其实,就是开仓!

上一个交易日如果锁仓,那么在当日触发多头开仓信号时。策略不进行新开仓,而是空头解锁,也就是平掉空单留多单。间接实现多头开仓。

2)其次,平仓、锁仓。

开仓后,当日如果没有触发平仓。程序不进行锁仓,而是在第二个交易日,触发平仓时平掉多单。

开仓后,如果当日就触发了平仓信号。程序立即锁仓,等待下一个交易日进行解锁!

代码:

run:

3.最重要的一步!!!

我们的策略要求是一天最多开一次仓位,因此我们设置的控制开平、锁仓这些开关,必须在新的交易日进行初始化,也就是全部归零!

代码:

小结。

上述就是关于股指期货锁仓代码实现。仅仅适合股指,商品期货由于有夜盘,如果用date来识别日内区间的话,不准确的。

最后

由于股指平今手续费较高,所以只能通过锁仓的形式来避免。以及通过解锁的形式来进行间接开仓!如有不解,请在下方评论留言。

文章及策略代码仅供交流学习,切勿直接实盘!

相关