哈喽,大家好,我是木头左!
日内回转策略是一种短线交易策略,其核心思想是在一天内通过买入和卖出股票来实现利润。这种策略的主要优点是可以在短期内获取较高的收益,同时风险相对较小。日内回转策略主要适用于个股波动较大、流动性较好的股票。本文将详细介绍日内回转策略的基本原理和操作方法,并结合实例进行解析,帮助投资者更好地理解和运用这一策略。
日内回转策略的原理
日内回转策略的原理是利用股票价格的短期波动来获取收益。具体来说,投资者首先买入一定数量的股票,然后根据60秒的数据来计算MACD(12,26,9)线。当MACD>0且MACD_pre<0时,买入100股;当MACD<0且MACD_pre>0时,卖出100股。但每日操作的股票数不超过原有仓位,并于收盘前把仓位调整至开盘前的仓位。本策略需在个股分钟线下运行。
日内回转策略的操作步骤
第一步:选择股票
在选择股票时,投资者需要关注以下几个方面:
- 股票的流动性:选择流动性较好的股票,以便在需要时能够快速买入和卖出。
- 股票的波动性:选择波动较大的股票,以便在短期内获取较高的收益。
- 股票的业绩:选择业绩较好的股票,没有退市风险的,以便降低投资风险。
第二步:设定仓位
在进行日内回转交易之前,投资者需要设定一个合理的仓位。仓位的大小应根据投资者的风险承受能力、资金规模以及市场情况来确定。一般来说,仓位不宜过大,以免在市场出现不利变化时造成较大的损失。
第三步:买入股票
在确定了股票和仓位之后,投资者可以开始买入股票。买入时,投资者需要关注股票的价格走势,选择合适的时机进行买入。一般来说,当股票价格出现上涨趋势时,投资者可以选择买入;当股票价格出现下跌趋势时,投资者可以选择观望。
第四步:计算MACD指标
在买入股票之后,投资者需要根据60秒的数据来计算MACD(12,26,9)线。当MACD>0且MACD_pre<0时,表示股票价格可能出现上涨趋势;当MACD<0且MACD_pre>0时,表示股票价格可能出现下跌趋势。
# 计算MACD线
if ContextInfo.total >= 0:
recent_date = np.array(df.iloc[-35:, 0])
macd = talib.MACD(recent_date)[0][-1]
macd_pre = talib.MACD(recent_date)[0][-2]
第五步:买入和卖出股票
根据计算得到的MACD指标,投资者可以决定是否进行买入或卖出操作。当MACD>0且MACD_pre<0时,投资者可以买入100股;当MACD<0且MACD_pre>0时,投资者可以卖出100股。但每日操作的股票数不超过原有仓位,并于收盘前把仓位调整至开盘前的仓位。
# 根据MACD>0则开仓,小于0则平仓
if date[-8:-3] != '14:55':
if macd > 0 and macd_pre < 0:
# 根据MACD>0则开仓,小于0则平仓
if avaliable > df.iloc[-1, 0] * ContextInfo.Lots * 100:
order_shares(ContextInfo.get_universe()[0], ContextInfo.Lots, 'fix', df.iloc[-1, 0], ContextInfo,
ContextInfo.accountID)
flage = True
singleemited = True
ContextInfo.MarketPosition[ContextInfo.get_universe()[0]] += ContextInfo.Lots
print (ContextInfo.get_universe()[0], 'open position at market price', ContextInfo.Lots, '股')
elif macd < 0 and macd_pre > 0 and holding[ContextInfo.get_universe()[0]] >= ContextInfo.Lots:
order_shares(ContextInfo.get_universe()[0], -ContextInfo.Lots, 'fix', df.iloc[-1, 0], ContextInfo,
ContextInfo.accountID)
flage = False
singleemited = True
print(ContextInfo.get_universe()[0], 'close position at market price', ContextInfo.Lots, '股')
ContextInfo.MarketPosition[ContextInfo.get_universe()[0]] -= ContextInfo.Lots
第六步:收盘前调整仓位
在交易日结束前,投资者需要将手中的股票数量调整至开盘前的仓位。这样可以避免因为持仓过重而导致的风险。
if ContextInfo.MarketPosition[ContextInfo.get_universe()[0]] > ContextInfo.total:
order_shares(ContextInfo.get_universe()[0],
-(ContextInfo.MarketPosition[ContextInfo.get_universe()[0]] - ContextInfo.total), 'fix',
df.iloc[-1, 0], ContextInfo, ContextInfo.accountID)
flage = False
singleemited = True
ContextInfo.MarketPosition[ContextInfo.get_universe()[0]] = ContextInfo.total
if ContextInfo.MarketPosition[ContextInfo.get_universe()[0]] < ContextInfo.total:
order_shares(ContextInfo.get_universe()[0],
(ContextInfo.total - ContextInfo.MarketPosition[ContextInfo.get_universe()[0]]), 'fix',
df.iloc[-1, 0], ContextInfo, ContextInfo.accountID)
flage = True
singleemited = True
ContextInfo.MarketPosition[ContextInfo.get_universe()[0]] = ContextInfo.total
总结
1. 底仓
日内回转策略是一种短线交易策略,其主要优点是可以在短期内获取较高的收益,但是最大缺点就是需要底仓。由于该策略依赖于股票价格的短期波动,如果市场出现单边行情时,投资者也可能会遭受重大损失。
2. 高频率交易
日内回转策略需要频繁地进行买卖操作,这会增加交易成本,包括佣金和印花税等。此外,频繁的交易也可能导致投资者过度关注短期的市场波动,而忽视了长期的投资目标。
可以通过以下几种方式来优化该策略。
1. 设定止损点
为了降低风险,可以设定一个止损点。一旦股票价格跌破这个点,就立即卖出股票,以防止进一步的损失。
2. 选择合适的交易时间
可以选择在市场波动较小的时候进行交易,以降低交易成本和风险。此外,还可以通过技术分析来确定最佳的交易时间。
3. 控制交易频率
可以通过设定交易次数的限制来控制交易频率。例如,可以规定每天最多进行若干次交易,或者每次交易的股票数量不超过总仓位的一定比例。
我是木头左,感谢各位童鞋的点赞、收藏,我们下期更精彩!