投资者咨询:【升级说明】WT8_Ver8.6.096版本的函数、信号机制调整说明 (文华财经)
来源:文华财经 日期:2024-6-18 16:40
一、新版模型的信号机制
本次大升级优化了编写的逻辑,过滤模型支持加仓减仓的编写,加仓减仓通过专用的信号指令来执行,信号遵循以下原则:
1、从开仓信号到平仓信号视为一个完整的交易过程;
2、开仓/平仓信号在一个交易过程中只能出现一次,加减仓信号可以出现N次;
3、模型必须写AUTOFILTER
具体机制说明详见链接:
例子:
//定义变量
MA5:MA(C,5);
MA10:MA(C,10);
MA20:MA(C,20);
//做多策略
MA5>MA10,BK;//5周期均线大于10周期均线,开多仓2手
MA5>MA20,ADD_LONG(1);//5周期均线大于20周期均线,加多仓1手
BARSBK>=10&&MA5<MA10,LOWER_LONG(1);//开仓10周期后,5周期均线小于10周期均线,减多仓1手
MA5<MA10&&MA10<MA20,SP;//均线空头排列,平多仓
C<=(LONG_AVPRICE-25*MINPRICE),SP;//止损,亏损25个最小变动价位全部平仓
//做空策略
MA5<MA10,SK;//5周期均线小于10周期均线,开空仓2手
MA5<MA20,ADD_SHORT(1);//5周期均线小于20周期均线,加空仓1手
BARSSK>=10&&MA5>MA10,LOWER_SHORT(1);//开仓10周期后,5周期均线大于10周期均线,减空仓1手
MA5>MA10&&MA5>MA20,BP;//均线多头排列,平空仓
C>=(SHORT_AVPRICE+25*MINPRICE),BP;//止损,亏损25个最小变动价位全部平仓
//设置
T_COMMAND(2); //设置首次开仓手数为2手
TRADE_AGAIN(2);//设置加减仓执行次数
AUTOFILTER;
二、指令调整
1、新增指令
Add_Long 多头加仓
Lower_Long 多头减仓
Add_Short 空头加仓
Lower_Short 空头减仓
2、删除指令
Closeout 清仓指令
STOP 止损指令
***新版统一用BP、SP指令来写止损、清仓。
三、函数调整
1、新增函数
①运行优化函数:
SIGCHECK
SIGCHECK_MIN(MODE,TIME)
②信号记录函数:
ADDLONG_PRICE
ADDLONG_VOL
ADDLONG_PLACE
ADDSHORT_PRICE
ADDSHORT_VOL
ADDSHORT_PLACE
LOWERLONG_PRICE
LOWERLONG_VOL
LOWERLONG_PLACE
LOWERSHORT_PRICE
LOWERSHORT_VOL
LOWERSHORT_PLACE
③头寸管理函数:
LONG_AVPRICE
SHORT_AVPRICE
T_COMMAND
④信号执行函数:
SETOTHERPRICE
2、删除函数
①运行优化函数:
CHECKSIG
CHECKSIG_MIN
CLOSEKLINE
MULTSIG
MULTSIG_MIN
②时间函数:
CURRENTDATE
CURRENTTIME
③计算控制函数: AUTOFINANCING
WEEKTRADE
WEEKTRADE1
MONTHTRADE
MONTHTRADE1
QUARTERTRADE
QUARTERTRADE1
YEARTRADE
YEARTRADE1
④信号记录函数:
KLINESIG
LASTSIG
ISLASTSTOP
ISLASTCLOSEOUT
SIGNUM/SIGVOL
ENTRYSIG_PLACE
ENTRYSIG_PRICE
ENTRYSIG_VOL
EXITSIG_PLACE
EXITSIG_PRICE
EXITSIG_VOL
REFSIG_PLACE
REFSIG_PRICE
REFSIG_PRICE1
REFSIG_PRICE2
REFSIG_VOL
BKPRICE1
SKPRICE1
⑤头寸管理函数:
BKPRICEAV1
SKPRICEAV1
T_PLUS
⑥信号执行函数:
SETSIGPRICE
3、修改函数
①T_MAX(TYPE,N) 改为 T_MAX(N)设置模型最大理论持仓为N手。N是变量,参与计算开仓信号的手数
②TRADE_AGAIN(N)只对加减仓指令有效
③BKPRICE、BARSBK、ISLASTBK、BKHIGH等信号记录函数,均为从BK信号开始计算,不统计加仓指令
④模型含有运行优化函数SIGCHECK/SIGCHECK_MIN(MODE,TIME) 时,BKPIRCE取信号当根的收盘价
⑤模型含有运行优化函数SIGCHECK/SIGCHECK_MIN(MODE,TIME) 时BKHIGHMONEYMONEYTOT均根据信号当根的收盘价计算或开始统计计算,不再支持从信号下单时刻开始统计计算
四、参数优化机制调整
参数优化是针对策略信号进行的优化,不再考虑写了运行优化函数的影响。
模型含有运行优化函数SIGCHECK/SIGCHECK_MIN(MODE,TIME) 时,参数优化和不写这二个函数结果是一样的
五、典型问题解答
(一)、语法检测不通过,可以从以下方面排查
解决方案:
(1)删除不支持的指令STOPCLOSEOUT,可使用SPBP指令替代
(1)时间函数: CURRENTDATE/CURRENTTIME
(2)计算控制函数: AUTOFINANCING/WEEKTRADE/WEEKTRADE1/MONTHTRADE/MONTHTRADE1/QUARTERTRADE/QUARTERTRADE1/YEARTRADE/YEARTRADE1
(3)信号记录函数: KLINESIG//LASTSIG/ISLASTSTOP/ISLASTCLOSEOUT/SIGNUM/SIGVOL/ENTRYSIG_PLACE/ENTRYSIG_PRICE/ENTRYSIG_VOL/EXITSIG_PLACE/EXITSIG_PRICE/EXITSIG_VOL/ REFSIG_PLACE/REFSIG_PRICE/REFSIG_PRICE1/REFSIG_PRICE2/REFSIG_VOL BKPRICE1/SKPRICE1
(1)T_MAX,根据函数说明,删除函数的第一个参数即可
(2)BKPRICEAV改为LONG_AVPRICE
(3)SKPRICEAV改为SHORT_AVPRICE
(4)T_PLUS改为T_COMMAND
删除CHECKSIG、CHECKSIG_MIN函数,使用新函数替代SIGCHECK、SIGCHECK_MIN(MODE,TIME)替代
例如:
sigcheck_min('A',1)出信号1分钟下单,k线走完复核,这个写法用1分钟数据计算,回测速度适中。
***品种加权合约加载模型,大于15分钟的周期只支持sigcheck_min
7、不支持CLOSEKLINE怎么解决?
删除不支持的函数CLOSEKLINE,使用新函数SIGCHECK、SIGCHECK_MIN(MODE,TIME)替代
例如:
老版本的closekine之所有回测速度快,是因为这个函数不参与回测计算的,优点是回测速度快,缺点是回测和实盘有效果不一致的情况。
***解决方案:
(2)对于一个信号及时下单的需求,新版不再支持了。
(二)、模组、盒子因为语法问题无法加载
修改模型后重新打开即可,模组单元会自动继承头寸,根据新模型继续运行
如果模型含SIGCHECK/SIGCHECK_MIN,主图回测报告用数据合约收盘价计算,报告增加二列新数据:运行优化收差、最终收益。
技术人员回复
日期:2024-6-18 16:41
请不要在此跟帖