哈喽,大家好,我是木头左!
本文将详细介绍日内网格交易策略的原理,并结合Python代码示例,展示如何在掘金平台上实现这一策略。
策略原理
日内网格交易策略的核心思想是在一天的交易时间内,通过设置多个买卖点(即网格),在价格达到这些点时自动执行交易。这种策略的优势在于能够充分利用市场的波动性,通过频繁的买卖操作来获取收益。同时,由于是在一天内完成买卖,因此避免了隔夜风险。
在金融和财经的角度看,日内网格交易策略是一种典型的技术分析方法,它依赖于对市场短期价格波动的观察和预测。这种策略适用于波动性较大的市场环境,因为只有当价格波动足够大时,网格交易才能捕捉到足够的交易机会。
在平台运行Python代码
在掘金平台上实现日内网格交易策略,主要分为三个核心步骤:选股、择时和策略交易。以下是这三个步骤的Python代码实现:
选股
选股是策略的第一步,需要选择适合网格交易的股票或可转债。在本策略中,选择了可转债作为交易对象,代码如下:
context.bond_symbol = 'SZSE.000001'
context.grid_size = 0.2 # 网格大小,即价格变动0.2元执行一次买卖
context.grid_count = 5 # 网格数量
context.upGridRate = 0.1/100 # 上涨0.1%卖出一格
context.downGridRate = 0.5/100 # 下跌0.5%买入一格
择时
择时是根据市场行情和价格波动来确定买卖时机。在本策略中,设置了网格大小、网格数量、上涨卖出率和下跌买入率等参数,代码如下:
# 获取当前可转债的最新价格curPrice = bars[0].closeif context.plan_completed:log.info('计划完成!')return #首次自动买入持仓if context.first_buy_flag == 1: # 首次买入股数 context.firstBuyAmount = context.oneGridAmount * context.firstBuyGridsorder_target_value(context.bond_symbol, context.firstBuyAmount,order_type=OrderType_Limit,position_side=PositionSide_Long) #下单买入log.info('首次买入股数:' + str(context.firstBuyAmount))context.basePrice = curPrice #下次对比的基准价格context.downPrice = curPrice * (1 - context.downGridRate * 1) #下限价格向下预留一格context.plan_position_amount = context.firstBuyAmountcontext.first_buy_flag = 0
策略交易
策略交易是根据择时的结果来执行买卖操作。在本策略中,通过计算当前价格与基准价格的增长率,来决定是否执行买卖操作。代码如下:
# 计算增长率curGainRate = (curPrice - context.basePrice)/context.basePricelog.info('当前增长率:' + str(round(curGainRate*100,2)) +'%')# 增长大于上涨粒度,卖出一份 if curGainRate >= context.upGridRate:order_target_value(context.bond_symbol, - context.oneGridAmount, order_type=OrderType_Limit,position_side=PositionSide_Long) #下单卖出一份log.info('卖出数量:' + str(context.oneGridAmount) + '/' + str(context.plan_position_amount))context.basePrice = curPricecontext.plan_position_amount = context.plan_position_amount - context.oneGridAmountif context.plan_position_amount <= 0: #持仓全部卖出,则计划完成context.plan_completed = Truelog.info('卖完了,数数去') # 跌幅大于下跌幅度,买入一份if curGainRate < -context.downGridRate: order_target_value(context.bond_symbol, context.oneGridAmount, order_type=OrderType_Limit,position_side=PositionSide_Long) #下单买入一份log.info('买入数量:' + str(context.oneGridAmount))context.basePrice = curPricecontext.plan_position_amount = context.plan_position_amount + context.oneGridAmount
回测效果
为了评估日内网格交易策略的效果,进行了回测。回测结果显示,策略在一段时间内取得了正收益,但收益波动较大。以下是回测效果图:
这表明日内网格交易策略的效果受市场波动性的影响较大。
策略的缺点
尽管日内网格交易策略具有一定的优势,但也存在一些缺点:
-
市场行情限制:该策略更适用于波动性较大的市场环境,而在波动性较小的市场环境下,可能难以获得理想的收益。
-
策略限制性:日内网格交易策略主要依赖于价格波动,对于其他市场因素(如公司基本面、宏观经济等)的考虑较少。
市场有风险,交易需谨慎。
感兴趣的朋友,可以在下方公号内回复:002,即可获取源码,共同交流!
我是木头左,感谢各位童鞋的点赞、收藏,我们下期更精彩!