超短线打板共振策略
1. 策略概述
该策略结合了超短线打板交易的核心逻辑,旨在捕捉市场中首次涨停且具备共振效应的股票,旨在捕捉短期内首次涨停且具备上升趋势的股票。通过快速买入并持有,策略试图在短期内实现超额收益。策略的核心逻辑是:筛选出首次涨停、具备技术面与资金面共振的股票,并在达到特定盈利或持有时间后卖出。
2. 策略逻辑
- 基准设定:策略以沪深300指数(000300.XSHG)作为基准,用于衡量策略的表现。
- 选股逻辑:
- 交易逻辑:
3. 风险控制
- 手续费设定:买入时佣金为万分之三,卖出时佣金为万分之三加千分之一印花税,每笔交易佣金最低为5元。
- 持仓限制:策略最多持有1只股票,集中投资。
- 动态止损:通过设定盈利目标和持有时间,有效控制风险。
4. 适用场景
该策略适用于市场波动较大、短期内有明显涨停趋势的股票。策略的优势在于能够快速捕捉涨停股的短期趋势,适合短线投机。
策略代码
# 策略标题:追涨大师(超额142)
# 导入函数库
from jqdata import *
import math
## 初始化函数,设定要操作的股票、基准等等
def initialize(context):
# 设定沪深300作为基准
set_benchmark('000300.XSHG')
# True为开启动态复权模式,使用真实价格交易
set_option('use_real_price', True)
# 设定成交量比例
set_option('order_volume_ratio', 1)
# 股票类交易手续费是:买入时佣金万分之三,卖出时佣金万分之三加千分之一印花税, 每笔交易佣金最低扣5块钱
set_order_cost(OrderCost(open_tax=0, close_tax=0.001, \
open_commission=0.0003, close_commission=0.0003,\
close_today_commission=0, min_commission=5), type='stock')
# 持仓数量
g.stocknum = 1
# 购买时的价格
g.buy_price = 0
# 记录持股时间
g.day ={}
# run_daily(check_stocks, time='7:00', reference_security='000300.XSHG')
run_daily(trade, time='9:50', reference_security='000300.XSHG')
# 用于拟合线性回归
def fit_linear(context,count,security1):
'''
count:拟合天数
'''
from sklearn.linear_model import LinearRegression
security = security1
df = history(count=count, unit='1d', field='close', security_list=security, df=True, skip_paused=False, fq='pre')
df.drop(index=[context.previous_date])
model = LinearRegression()
x_train = np.arange(0,len(df[security])).reshape(-1,1)
y_train = df[security].values.reshape(-1,1)
model.fit(x_train,y_train)
# # 计算出拟合的最小二乘法方程
# # y = mx + c
c = model.intercept_
m = model.coef_
c1 = round(float(c),2)
m1 = round(float(m),2)
# print("最小二乘法方程 : y = {} + {}x".format(c1,m1))
return m1
# 筛选出主板良性股
def filter_paused_stock(context,stock_list):
curr_data = get_current_data()
stock_list = [stock for stock in stock_list if not curr_data[stock].is_st]
stock_list = [stock for stock in stock_list if not curr_data[stock].paused]
stock_list = [stock for stock in stock_list if '退' not in curr_data[stock].name]
stock_list = [stock for stock in stock_list if (context.current_dt.date()-get_security_info(stock).start_date).days>360]
stock_list=[stock for stock in stock_list if stock[0:2] != '68']
stock_list=[stock for stock in stock_list if stock[0:3] != '300']
return stock_list
# 开盘时的交易函数
def trade(context):
# 获取购买列表
stock_list = check_stocks(context)
# 获取持仓列表
sell_list = list(context.portfolio.positions.keys())
count = len(sell_list)
# 准备卖出
if count > 0 :
for stock in sell_list:
g.day[stock] +=1
stock_name = str(stock)
open_price = get_current_data()[stock_name].day_open
now_price = get_current_data()[stock_name].last_price
# 如果从购买到现在涨了5%,卖出
if now_price > 1.05*g.buy_price:
order_target_value(stock,0)
continue
# 如果股票持有19日,卖出
if g.day[stock] == 19:
order_target_value(stock,0)
continue
rate = (open_price-now_price)/now_price
# 如果股票今日到现在涨了4%。卖出
if rate>0.04:
order_target_value(stock,0)
# 分配资金
if len(context.portfolio.positions) < g.stocknum :
Num = g.stocknum - len(context.portfolio.positions)
Cash = context.portfolio.cash/Num
else:
Cash = 0
# 到点买来
if not context.portfolio.positions.keys():
if len(stock_list)!=0:
# 买入股票
for stock in stock_list:
stock_name = str(stock)
g.buy_price = get_current_data()[stock_name].last_price
order_value(stock, Cash)
g.day[stock] = 0
关键函数check_stocks的实现:
def check_stocks(context):
超短线打板共振策略优化总结
5. 策略优化建议
- 参数优化:可以调整涨停幅度、涨幅限制、持有时间等参数,以适应不同的市场环境。
- 多因子结合:可以在涨停的基础上加入其他技术指标或基本面因子,进一步提升策略的稳定性。
策略关键词:
- 涨停股、上升趋势、满仓持有、择时卖出、短线投机
策略特点:
- 简单易行:策略逻辑清晰,易于理解和实现。
- 集中投资:通过集中持有1只股票,最大化收益。
- 风险可控:通过设定明确的买入和卖出信号,有效控制风险。
策略风险:
- 市场风险:策略依赖于市场短期波动,若市场整体表现不佳,策略可能无法实现预期收益。
- 流动性风险:涨停股可能存在流动性不足的风险,导致无法及时买入或卖出。
- 回撤风险:集中投资可能导致较大的回撤,投资者需具备较高的风险承受能力。
策略总结:
追涨大师策略通过捕捉首次涨停且具备上升趋势的股票,满仓持有并在特定条件下卖出,旨在实现超额收益。策略适合短线投机者,但需注意流动性风险。通过参数优化和多因子结合,可以进一步提升策略的稳定性和收益。
2025-02-21
