什么是日内交易?
日内交易(Day Trade)是一种交易模式。主要是指持仓时间短,不留过夜持仓的交易方式。日内交易捕捉入市后能够马上脱离入市成本的交易机会,入市之后如果不能马上获利,就准备迅速离场。因为这种交易方式在市时间短,所以承受的市场波动的风险较低。目前,全球范围内有一些操盘高手采用此交易方式取得稳定的盈利,获得了成功。
日内策略在中国市场可行吗?
与国外市场不同,我国股票市场现阶段施行“T+1”交易,在这个基础上的“T+0”操作,必须是有底仓的高抛低吸。
但凡在日内交易上经验丰富且有很高胜率的选手,在持股期,都会对日内交易拥有极高的兴趣,交易频次也会比较高。以上表述已经暗含了一个隐藏的前提:必须是当天不准备卖出者才能做T,否则会为了几个点的微小价差而得不偿失。
日内交易因为其快速了结和价差较小的特点,交易者盈利的首要条件即为一个交易来回的价差大于交易成本。按照当前券商普遍采用的佣金标准万三计算,一个完整交易轮回的摩擦成本略小于0.2%,从这点看,低佣金使得日内交易的盈利变得相对容易。根据我自身的交易经验,只要参与者对单次盈利预期合理且在介入时间点上不至太过偏离,均能在长久的做T生涯中获得不菲的正收益。
策略实现(基于掘金量化平台)
策略思想
-
本策略首先买入“SHSE.600000”股票10000股。
-
根据300s的数据来计算“MACD(12,26,9)”线。
-
“MACD”水下金叉,配合均线多头排列的时候买入1000股,“MACD”水上死叉,配合均线空头排列的时候卖出1000股。
-
每日操作的股票数不超过原有仓位,并于收盘前把仓位调整至开盘前的仓位。
策略主要步骤实现
订阅数据
subscribe(symbols=symbols, frequency='300s', count=35, wait_group=True)
(symbols=symbols, frequency='300s', count=35, wait_group=True)
订阅数据需要在定义init
函数里面设置,并调用subscribe
函数:
-
symbols
需要设置订阅的标的代码。 -
frequency
需设置订阅数据的周期级别,这里设置1d
表示以一天为周期。 -
count
需要设置获取的bar的数量
数据获取
recent_data = context.data(symbol=symbol, frequency='300s', count=35, fields='close')
= context.data(symbol=symbol, frequency='300s', count=35, fields='close')
订阅数据之后,需要获取已经订阅的数据来进行操作,这时需调用context.data
函数:
-
symbols
需要设置订阅的标的代码。 -
frequency
需设置订阅数据的周期级别,这里设置1d
表示以一天为周期。 -
count
需要设置获取的bar的数量 -
fields
需要设置返回值的种类
获取当前bar的时间
def on_bar(context, bars):
bar = bars[0]
day = bar.bob.strftime('%Y-%m-%d %H:%M:%S')
on_bar(context, bars):
bar = bars[0]
day = bar.bob.strftime('%Y-%m-%d %H:%M:%S')
在on_bar
函数里,需要判断当前bar
是否为当天交易的最后一根,以判断是否平仓,这里可直接过去传入bar
的信息。
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 | <