柒拾贰- tushare 模拟策略交易 (三)

书接上两回

柒拾- tushare 模拟策略交易 (一)

柒拾壹- tushare 模拟策略交易 (二)


开始

终于我们可以可以来进行模拟了

复杂 的我不会,所以就写个最简单的策略吧:

  • 买入条件
  1. 比两年前是上升的
  2. 比一年前是上升的
  3. 比一个月前上升更下降的区间在 ± 0.38% 内
  4. 比昨天上涨 0.1% 以上 0.5% 以下
  • 卖出条件
  1. 如果当前下跌 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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值