书接上两回
开始
终于我们可以可以来进行模拟了
复杂 的我不会,所以就写个最简单的策略吧:
- 买入条件
- 比两年前是上升的
- 比一年前是上升的
- 比一个月前上升更下降的区间在 ± 0.38% 内
- 比昨天上涨 0.1% 以上 0.5% 以下
- 卖出条件
- 如果当前下跌 5% 则全卖出
进行模拟
设计模拟时间
先进行模拟时间,即回测多少天
strStartDate = '20230101'
strEndDate = '20240407'
就是从 2023年的1月1日开始进行策略,2024年4月7日结束
选股范围
strIndustry = "'银行'"
只选择银行股进行回测
中间计算
因为需要计算 2年、1年、半年等时间窗口各股票的涨跌,用 Python 比较麻烦,于是使用 SQL 进行计算
完整代码
'''
Descripttion: 就简单回测
Version: 1.0
Author: BerryBC
Date: 2024-02-18 12:09:31
LastEditors: BerryBC
LastEditTime: 2024-04-07 11:07:43
'''
import datetime
from Lib.DBConn import claDBConn
from Lib.BackTestingDailyDeal import claBackTestingDailyDeal
btDaily = claBackTestingDailyDeal('研究银行股', '根据时间窗口看追涨', 100000)
dbConn = claDBConn()
strStartDate = '20240101'
strEndDate = '20240407'
strStock = '601988.SH'
strMaxDate = ''
# 时间序列
strSQLTime = "SELECT * FROM tb_calendar WHERE trade_date >=" + \
strStartDate+" AND trade_date <= "+strEndDate+" ORDER BY trade_date "
listCal = dbConn.ReturnSQLData(strSQLTime)
# 打印快照
btDaily.AssetSnapshot(listCal[0][0])
# 循环验证
for tubDay in listCal:
# 计算日期
strNowDate = tubDay[0]
strMaxDate=strNowDate
'''
.::::.
.::::::::.
:::::::::::
..:::::::::::'
'::::::::::::'
.::::::::::
'::::::::::::::..
..::::::::::::.
``::::::::::::::::
::::``:::::::::' .:::.
::::' ':::::' .::::::::.
.::::' :::: .:::::::'::::.
.:::' ::::: .:::::::::' ':::::.
.::' :::::.:::::::::' ':::::.
.::' ::::::::::::::' ``::::.
...::: ::::::::::::' ``::.
````':. ':::::::::' ::::..
'.:::::' ':'````..
'''
# 追涨杀跌
# # 每日数据
# strSQLQuote = "SELECT * FROM tb_daily_stock_quote WHERE trade_date=" + \
# strNowDate+" AND ts_code = '"+strStock+"'"
# listQuote = dbConn.ReturnSQLData(strSQLQuote)
# if listQuote[0][8] > 0.2:
# btDaily.BuyStock(strNowDate, strStock, 500,'追涨')
# elif listQuote[0][8] < -0.1:
# strSQLSell = "SELECT * FROM tb_bt_daily_tmp_my_stock_pool WHERE stock_code='" + strStock+"' AND bt_ind = '"+str(btDaily.intInd

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



