欢迎光临
我们一直在努力

期货程序化模组运行机制是什么意思?赢智wh8期货

模组运行机制说明

模组状态列表新增信号手数、下单手数、理论持仓以及可用资金,并完善了最后信号、子账户持仓、初始权益以及当前权益的相关机制,更加清晰的反应模组的实际运行情况。

最后信号:模组运行过程中最后确认、下单的信号(包括信号消失),不显示没有确认的可能变化的信号。

信号手数:最后信号用户设置或模型写入的手数。

下单手数:模组运行过程中实际的下单手数。

理论持仓:BKVOL=根据信号下单手数计算的理论持仓,完全根据信号计算,不受手动干预影响。

初始权益:模组本次运行开始时实际资金曲线的权益值。

当前权益:模组运行过程中实际资金曲线的权益值。

可用资金:根据实际资金曲线计算的实际的可用资金,可实时查看模组的实际可用资金情况。

实际资金曲线:(初始权益–初始权益包含的浮动盈亏)+平仓盈亏(累计值)+当前浮动盈亏–手续费(累计值)。

以上机制的修改目的是:为了保证模型回测与模型实盘运行信号的一致性,并且能够更好的观察以及统计模组的实际运行,模组的使用方法可能会与之前略有不同,具体见以下几个里程的描述:

新建模组

将模型第一次加载到模组,实际并未实盘运行过模组,根据回测结果计算的理论值进行模组的开始,不再受实际账户持仓情况以及其他模组的影响。

1、子账户持仓为0(最后信号为开仓信号,且实际账户中有相应持仓,也不再带入到子账户持仓中)

新建模组没有实际运行过,模组不应该有实际持仓,避免平掉其他模组或其他操作产生的持仓。

8.2.260的原有机制:最后信号为开仓信号,并且实际账户中有相应持仓,会根据理论持仓带入相应持仓,那么出现平仓信号时可能会平掉其他模组的持仓。

2、理论持仓(BKVOL/SKVOL)

根据信号下单手数计算,不受初始化持仓的影响。

(1)模型的开平仓条件,包含BKVOL取值,最后信号为BK信号;

例如:

——历史回测BKVOL=5,SPK信号条件为:BKVOL>0&&C>O,SPK;

子账户持仓不影响BKVOL的取值,会根据信号下单手数计算理论持仓(BKVOL=5),SPK可以照常执行。

8.2.260的原机制,子账户持仓会影响BKVOL的取值(BKVOL=0),导致SPK不满足条件,无法执行。

——历史回测BKVOL=5,且开仓条件为BKVOL=0&&C>O,BK(5);

子账户持仓不影响BKVOL的取值,BKVOL=5,BK信号不会再被重复执行。

8.2.260的原机制,子账户持仓会影响BKVOL的取值(BKVOL=0),后续信号满足开仓条件,会再次出现BK信号。

(2)模型中使用了MONEYTOT函数,理论资金曲线(MONEYTOT)。

理论资金曲线=K线上的理论可用资金+持仓保证金+浮动盈亏;

持仓占用的保证金=理论开仓价格*理论持仓*保证金比例*交易单位;

理论持仓不受子账户持仓影响,理论资金曲线不会有明显跳空,MONEYTOT的值是连续的(即用户不手动调整权益值,理论资金曲线完全根据信号的理论持仓以及理论开、平仓价格进行计算)。

8.2.260的原机制,子账户持仓会影响BKVOL的取值(BKVOL=0)理论资金曲线会有一个跳空,即MONEYTOT有个突然的下降。

3、实际资金曲线

=理论资金曲线(MONEYREAL=MONEYTOT);

以理论资金作为起点,在模组实际运行的开始时刻与理论资金为同一起点,可以更好的体现模组运行实际交易过程中产生的滑点、实际委托成交情况以及手动干预对理论资金的影响。

8.2.260的原机制:=起始资金。

打开之前运行的模组

****如果期间没有出现新的信号,会自动记录下之前运行的结果,做为本次运行新的起点;

1、子账户持仓

=上次退出模组时记录的子账户持仓,不再与实际账户持仓比较;

即使打开模组时未登陆交易,也可以直接读取之前记录的子账户持仓,登陆交易后可直接进行交易。

8.2.260的原机制:如果实际账户持仓不足,或打开模组时未登陆交易,不能保证模组的连续性,会根据实际账户持仓带入持仓。

2、理论持仓(BKVOL/SKVOL)

根据信号下单手数计算,不受子账户持仓的影响;

机制同新建模组,重新打开模组不会影响信号的发出、执行,同连续运行模组信号保存一致。

8.2.260的原机制:账户的实际持仓会影响BKVOL的取值,从而影响信号条件。

3、实际资金曲线

=上次退出时的实际资金曲线的权益值;

退出期间模组没有实际运行,所以实际资金曲线取值不变。

4、当前权益=初始权益

=上次退出时的实际资金曲线的权益值。

8.2.260的原机制:=打开时理论曲线的权益值,不能连续的反应模组的实际运行情况。

5、可用资金

=关闭时的可用资金。

****如果期间出现了新的信号,忽略之前的实际运行,同新建模组。

模组自动运行、手动干预模组运行

模组实际运行过程中,理论值不受干扰,即理论持仓、理论资金曲线不受手动干预的影响;子账户持仓、实际资金曲线,会受到手动干预的影响。

1、账户同步

理论持仓(BKVOL/SKVOL),取值不变,保证回测与实盘运行信号一致;

子账户持仓=用户填入值,实际执行时可以根据用户设置进行执行(即使实际账户资金不足,也可以带入相应持仓);

理论资金曲线=实际资金曲线=用户填入的权益值。

注:填入持仓<=理论资金范围计算最大可开手数并且填入持仓<=理论持仓。

2、手动调仓

理论持仓(BKVOL/SKVOL)、理论资金曲线,取值不变,手动调仓不再影响信号出现,保证回测与实盘运行信号一致。

8.2.260的原机制:手动加仓,BKVOL取值增加;手动减仓,BKVOL取值减少,信号根据手动调仓结果执行,回测会与实盘运行信号不一致。

子账户持仓=手动调仓后的持仓(不能超过理论持仓),真正实现在分配资金范围内的程序化交易。

模组运行方式为每次重新初始化、盘中手数重新初始化

历史信号清空,从加载时刻开始运行,所以不再受理论值的限制;

理论持仓=子账户持仓=用户填入的持仓;

理论资金曲线=实际资金曲线=用户填入的权益值。

注:填入持仓<=理论资金范围计算最大可开手数。

运行过程中您可能会遇到的问题

1、为什么有时监控K线图中看到的最后信号与列表中最后的信号不符?

(1)最后信号显示SP信号,监控K线图上最后的信号为BK信号;

(信号执行方式为K线走完确认信号下单;出信号N秒/分下单;K线走完前N秒/分下单)

BK信号还未确认发出(即未达到信号确认时间时)。

(2)最后信号显示BK消失,监控K线图上最后的信号为SP信号;

(信号执行方式为出现信号N秒/分进行复核;K线走完前N秒/分复核)

BK信号出现并确认执行,达到复核时间时,BK信号消失,执行信号消失处理,所以最后执行的信号为BK消失。

2、复核状态为什么显示为–

(显示为–,表示最后信号不需要复核。

注:K线走完确认信号下单/不进行信号复核的信号执行方式,为不需要复核的信号。

3、为什么下单手数与信号手数不一致?

(1)最后信号为开仓信号;

信号手数<模组理论资金曲线计算可开手数:下单手数=信号手数;

信号手数>模组理论资金曲线计算可开手数:下单手数=可开手数。

例:信号手数为10,下单手数却只有5手。

——根据模组分配资金计算,最大可开手为5手,所以即使信号手数为10,实际下单只可以下5手。

(2)最后信号为平仓信号;

信号手数>子账户持仓:下单手数=子账户持仓;

信号手数<子账户持仓:下单手数=信号手数。

例:信号手数为10,下单手数却只有5手。

——理论持仓为5手,即开仓信号时只开了5手,所以平仓只执行5手;

——理论持仓为10手,但是子账户持仓为5手(未初始化进来持仓/手动调仓至5手/账号同步至5手),所以平仓只执行5手。

赞(0) 打赏
未经允许不得转载:文华财经文华财经 » 期货程序化模组运行机制是什么意思?赢智wh8期货
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

文华财经交易软件 更专业 更方便

常见问题软件下载

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏