策略分享

固定止盈止损功能

由crisvalentine创建,最终由qxiao 被浏览 278 用户

更新

本文内容对应旧版平台与旧版资源,其内容不再适合最新版平台,请查看新版平台的使用说明

新版量化开发IDE(AIStudio):

https://bigquant.com/wiki/doc/aistudio-aiide-NzAjgKapzW

新版模版策略:

https://bigquant.com/wiki/doc/demos-ecdRvuM1TU

新版数据平台:

https://bigquant.com/data/home

https://bigquant.com/wiki/doc/dai-PLSbc1SbZX

新版表达式算子:

https://bigquant.com/wiki/doc/dai-sql-Rceb2JQBdS

新版因子平台:

https://bigquant.com/wiki/doc/bigalpha-EOVmVtJMS5


版本v1.0

在开发策略时,经常使用个股的固定点位/百分比止盈止损功能。

本策略以赚3元止盈,亏10%止损为例,介绍功能实现步骤:

  1. 新建AI可视化模板策略

  2. 在回测/模拟模块m19的属性栏中进入“主函数”代码框,在函数体中最前面插入固定止盈止损的代码段,详见策略代码。

    本例中,止盈条件为固定点位止盈:赚3元就卖出,并使用 stopwin_stock 用来记录止盈的股票列表;

    本例中,止损条件为固定百分比止损:亏10%就卖出,并使用 stoploss_stock 用来记录止损的股票列表。

  3. 在回测/模拟模块m19的属性栏中进入“主函数”代码框,在函数体中找到“# 2. 生成卖出订单” 位置,修改此处的轮仓卖出逻辑:

    在前面初始化变量stock_sell用来记录卖出的股票,

    在卖出下单代码context.order_target(context.symbol(instrument), 0)前面加入判断语句,如果该股票已经止盈止损卖出过就不再换仓卖出;

    在卖出下单代码context.order_target(context.symbol(instrument), 0)后面加入 stock_sell.append(instrument) 用来记录轮仓卖出的股票:

  4. 在回测/模拟模块m19的属性栏中进入“主函数”代码框,在函数体中找到“# 3. 生成买入订单”位置,将原有的buy_instruments一行代码修改为如下:

    获取所有排序结果股票列表

    buy_list = list(ranker_prediction.instrument)

    保证买入的股票不在轮仓、止盈、止损代码中已经卖出的股票,以防止二次卖出出现空头

    buy_instruments = [i for i in buy_list if i not in stock_sell+stopwin_stock+stoploss_stock][:len(buy_cash_weights)]

https://bigquant.com/experimentshare/9470cd7fe4b34cf7a55fd51a424bae8f

\

文档

移动止损功能
{link}