在遗传编程选项中的进化控制中,我们会根据种群策略在历史数据的样本内数据(验证部分)的表现来决定进化过程是否继续还是重新生成初始种群开始。这里可以用到不同的数据集,样本内(全部),样本内(训练部分),样本外(验证部分)。
数据分段设置,是减少策略过拟合风险一项必要的基本设置。
Data 数据及回测引擎设置
回测引擎,目前支持MT4、MT5、TS、MC。
测试品种数据,设定交易品种Symbol。策略运行的周期Timeframe,如果导入的是1分钟周期,可以自定义使用像10分钟、20分钟这类非常规的周期。并通过Start day 和 End day 来指定数据范围。
测试参数设置测试精度Precision,直接使用策略运行的周期框架,也可以使用较为精细的1分钟周期数据。手续费Commision设置,主要针对期货和股票,有每手固定金额和每手合约价值%两种方式,注意手续费是进场和出场两边合并一起计算的。价差成本Spread,主要针对外汇交易而言。滑点设置Slippage是多少个最小一跳。Min. distance主要针对外汇平台,可能会对开平仓最小价差间距有要求而设定的。
数据分段设置现在支持分成样本内IS,样本外OSS,No Trade部分,其中样本内又分成训练集IST和验证集ISV,以适应机器学习算法。
- 样本内 - 初始的策略首先在IS数据部分来进行测试,根据设定条件是保留下来还是放弃掉该策略。
- 样本外 - 对于Strategyquant生成或进化策略时,这部分数据是不可见的。
- IST - 训练数据集,遗传进化根据策略在IST的表现(fitness)来对种群中的策略进行排序,来进行相应的操作。
- ISV - 验证数据集,根据机器学习的方式,用来检验IST集上生成合格的策略在ISV上的表现。典型的应用是如果策略在ISV上的表现(fitness值)不能继续提升时就重启新一轮的策略生成和进化。
- No Trade - 不交易部分。
IS/OSS比例设置个人经验是一般7:3或6:4。此外,StrategyQuant在Most used configs里提供了5种数据分割的模板,包括较为复杂的滚动分割方式。
Trading options 交易选项
- Exit at End of Day - 收盘前平仓
- End of Day Exit Time - 收盘前平仓时间
- Exit On Friday - 周五平仓
- Friday Exit Time - 周五收盘前平仓时间
- Limit Time Range - 限定允许交易的时间段
- Time Range From - 允许交易时间段的开始时间
- Time Range to - 允许交易时间段的结束时间
- Exit at End of Range - 在允许交易时间段最后时间平仓
- Maximum Trades Per Day - 每天允许的最大交易数量
- Minimum SL - 最小止损跳数
- Maximum SL - 最大止损跳数
- Minimum PT - 最小止盈跳数
- Maximum PT - 最大止盈跳数
- Store Chart Data - 存储价格图表,初始生成策略不建议打开该选项,因为会占用更多资源降低生成效率
每天允许交易的最大次数和止损、止盈的范围设定,为0时表示没有限制。
Building Blocks 构建块
这里是设定构成策略的基本元素,包括Signals信号(即预设的指标条件)、Indicators构建多空条件的指标、Stop/Limit entry blocks开仓时用到的指标价位和波动率类指标、Order types开仓订单类型、Exit types平仓类型。
最新版本在左侧指标类区域下方,还有一个Calibrate indicators按扭,用于控制一些震荡类指标和波动率类指标的区间大小、检索计算的最小变动量等。新手最好保持默认。
Order types
- Enter at Market 满足条件后用当前价格买入
- Enter/Reverse at Market 与上面类似,区别在于如果多空条件发生了变化,本类型将会立即反转仓位,但Enter at Market 会等当前持仓如果没有被出场方式触发平仓,不会理会反向开仓条件
- Enter at Stop 突破入场单,满足多空条件后不会立即入场,多头条件下要在向上突破某价位时入场,空头条件下要在向下突破某价时入场
- Enter at Limit 限价单入场,与Stop入场单相反。如多头条件时,价格要低于某个价位水平才会买入
Exit types
- Exit after bars 进场后经过多少根K线后平仓
- Move SL 2 BE 移动止损到保本价
- SL 2 BE and Pips 成本价外多少点止损
- Profit Target 目标位止盈
- Stop Loss 初始止损
- Trailing Stop 跟踪止损
- Trailing Activation 盈利多少点数后启用跟踪止损
- ExitRule 用指标条件或信号平仓
Money management 资金管理
这里的资金管理主要是仓位管理。Choose initial capital 初始资金大小,这里主要影响利润率绩效。
Money management method 资金管理方法。
- Fixed size 固定手数
- Risk fixed % blance 根据资金一定比例的冒险资金计算动态仓位(资金=初始资金+已平仓盈亏)
- Risk fxied % of accout 根据权益一定比例的冒险资金计算动态仓位 (权益=初始资金+已平仓盈亏+持仓盈亏)
- Fixed ammout 固定金额计算手数
- Crypto size by price 用于数字货币的仓位管理
- Stocks size by price 用于股票交易的仓位管理
Cross checks(robustness) 健壮测试
Ranking 设定