一行代码策略回测-问财自然语言回测 简单方便

用户头像神盾局量子研究部
2023-03-15 发布

一行选股代码完整的回测示例

因为一个完整的回测策略是需要包含买卖逻辑的。很多股友对问财的语句选股比较了解,但对买卖的代码不了解,本文就是帮助大家写了一个常规的买卖逻辑框架。并可以自己修改一些参数 进行按需调整。 一行代码的意思是只需要改动一行就可以按照自己的意思去选股回测。

本代码的核心逻辑:

  • 问财语句命中开仓。
  • 可以控制持仓数量。
  • 达到持仓时间,或者止盈止损条件会卖出。

注意:

  • 本文回测代码是日级别的回测。
  • 资金设定在100w。
  • 可以自己修改手续费、滑点。

可以自己修改手续费、滑点

建议设定手续费 滑点,接近实盘的交易情况。

# 设定手续费 滑点,接近实盘的交易情况
    #设置可变滑点2%,表示买入价为实际价格乘101%,卖出价为实际价格乘99%
    set_slippage(PriceSlippage(0.005))
    set_commission(PerShare(type='stock',cost=0.0001,min_trade_cost=5.0))# 手续费万1 不免5

可以自己修改问财问句。

不知道问财是什么的朋友可以百度问财。

简单而言问财就是 通过简单的一句话去选股。 比如,你可以写:

  • 简单语句:连续3年roe>30%,非st,非停牌
  • 简单语句:macd金叉;kdj金叉
  • 复杂语句:macd金叉;kdj金叉;cci底背离;大单净流入;市值大于10亿;价升量涨;历史最高价比20日均价高2倍;量比大于2;换手率大于1%小于5%;30日内有2个交易日涨幅大于4%

你组织好你的问财语句之后替换掉代码里的问财语句:

    # ==================================================
    #    问句/想要选出的股票,初学回测修改这里即可。
    buy_stocks = '小市值,低估价值股'
    # ==================================================

你还可以修改一些参数。

  • 持仓天数:days
  • 止盈条件:context.T_up 0.15 是盈利15% 的意思
  • 止损条件:context.T_down - 0.3 是亏损30% 的意思
  • 最大持股数:Max_count 1就是最大持有股票 数量1
balck_stocks = 'st或停牌或上市20天内'     # 黑名单股票
    sell_stocks = '无'                        # 卖出股票股票
    days = 10                                 # 持仓天数
    Max_count = 1                             # 最大持股数
    is_hold_one = False
    context.T_up = 0.15
    context.T_down = - 0.3                    # 止盈止损 是否开启


    get_iwencai(buy_stocks,'want_stocks')     # 问句/想要选出的股票
    get_iwencai(balck_stocks,'black_stocks')  # 黑名单股票
    get_iwencai(sell_stocks,'sell_stocks')    # 卖出股票特征
    context.days = days                       # 持仓天数
    context.Max_count = Max_count             # 最大持股数
    context.is_hold_one = is_hold_one         # 止盈止损 是否开启

想要和更多的大神交流,请扫码加微信群:

注意:扫码后需长按二维码进入:

下面为本文的回测代码示例,直接点击右侧的复制按钮复制到自己的账号内。

收益&风险
源码

评论

用户头像
2023-05-08 15:24:03

context.sell_stocks = [] # 卖出股票股票

第33行这里是填写问叵还是填写股票代码 希望能给个说明。

评论
用户头像
2023-12-13 21:55:10

context.sell_stocks = [] # 卖出股票股票

第33行这里是填写问叵还是填写股票代码 希望能给个说明。

评论
用户头像
mo_****044euf回复:封清羊
2024-03-07 02:08:01

context.sell_stocks = [] # 卖出股票股票

第33行这里是填写问叵还是填写股票代码 希望能给个说明。

评论