import pandas as pd
import talib
import backtrader as bt
from insight_python.com.insight import common
from insight_python.com.insight.query import *
from insight_python.com.insight.market_service import market_service
from datetime import datetime
import calendar
import numpy as np
# ************************************用户登录************************************
# 登陆
# user 用户名
# password 密码
def login():
# 登陆前 初始化,没有密码可以访问进行自动化注册
#https://findata-insight.htsc.com:9151/terminalWeb/#/signup
user = "自己的账号"
password = "自己的密码"
common.login(market_service, user, password)
def data_loader():
login()
stock_list = get_all_stocks_info(listing_state="上市交易")['htsc_code']
time_start_date = "2019-05-02 15:10:11"
time_end_date = "2020-07-29 11:20:50"
time_start_date = datetime.strptime(time_start_date, '%Y-%m-%d %H:%M:%S')
time_end_date = datetime.strptime(time_end_date, '%Y-%m-%d %H:%M:%S')
result = get_kline(htsc_code=stock_list.values.tolist(), time=[time_start_date, time_end_date],
frequency="daily", fq="pre")
result.to_csv("all_stock_daily_kline_long.csv")
# 获取沪深300的一年收益率
benchmark = get_kline(htsc_code="399300.SZ", time=[time_start_date, time_end_date],
frequency="daily", fq="pre")
benchmark.to_csv("benchmark.csv")
def trend_analyzer(close_all, high_all, low_all, volume_all, benchmark_ann_ret):
"""实现MM选股模型的逻辑,评估单只股票是否满足筛选条件
Args:
close(pd.Series): 股票收盘价,默认时间序列索引
high_all:最高价
low_all:最低价
volume_all:成交量
benchmark_ann_ret(float): 基准指数1年收益率,用于计算相对强弱
"""
out_list = []
for close_index, high_index, low_index, volume_index in zip(close_all.columns, high_all.columns, low_all.columns, volume_all.columns):
close = close_all[close_index]
high = high_all[high_index]
low = low_all[low_index]
volume = volume_all[volume_index]
# 计算50,150,200日均线
ema_50 = talib.EMA(close, 50).iloc[-1]
ema_150 = talib.EMA(close, 150).iloc[-1]
ema_200 = talib.EMA(close, 200).iloc[-1]
# 收盘价的52周高点和52周低点
high_52week = close.rolling(52 * 5).max().iloc[-1]
low_52week = close.rolling(52 * 5).min().iloc[-1]
# 短期指标,ROC 价格震荡百分比指数,小于0适合建仓
roc = talib.ROC(close, 10).iloc[-1]
# RSI - Relative Strength Index 相对强弱指数,50-80为推荐买入
rsi
【backtrader保姆级教学】趋势选股策略
最新推荐文章于 2024-08-03 19:27:22 发布