Esempio n. 1
0
def bt_init(xlst, rdat, prjNam, money0=1000000):
    '''
    qt_init(qx,xlst,rdat):
        初始化zw量化参数,stk股票内存数据库等
    【输入】:
        xlst (list): 股票代码列表,例如:xlst=['aeti','egan','glng','simo'],xlst=['002739','300239']   
        rdat (str): 股票数据目录,可直接使用 zwDat的中美股票数据:\\zwdat\\cn\\Day\\,\\zwdat\\us\\Day\\,
        prjNam (str): 项目名称
        money0 (int): 启动资金,默认是:1000000(100w)
        
    【输出】:
        qx (zwQuantx): 程序化全局变量qx
        '''
    # qx=zw.zwQuantX('tur',1000000) #100w
    qx = zw.zwQuantX(prjNam, money0)  # 100w

    # ------设置各种价格模式:
    #    priceWrk,策略分析时,使用的股票价格,一般是:dprice,复权收盘价
    #    priceBuy,买入/卖出的股票价格,一般是:kprice,一般采用次日的复权开盘价
    #    priceCalc,最后结算使用的股票价格,一般是:adj close,复权收盘价
    qx.priceCalc = 'close'  # qx.priceCalc='adj close'
    qx.priceWrk = 'dprice'
    qx.priceBuy = 'kprice'
    # ----------设置绘图&数据输出格式
    mpl.style.use('seaborn-whitegrid')
    pd.set_option('display.width', 450)
    # -----设置数据源目录等场所,读取股票数据,stkLib
    qx.rdat = rdat
    zwx.stkLibRd(xlst, rdat)
    #
    # 大盘指数.设置
    # zw.stkInxLib=None  #全局变量,大盘指数,内存股票数据库
    qx.stkInxRDat = '\\zwdat\\cn\\xday\\'  # 大盘指数数据源路径
    qx.stkInxPriceName = 'close'  # 大盘指数数据列名称,默认是:close
    # 大盘指数代码,名称拼音,中文名称
    # qx.stkInxCode,qx.stkInxName,qx.stkInxCName='000001','sh001','上证指数'

    #  读取股票数据,
    xtim0 = parse('9999-01-01')
    xtim9 = parse('1000-01-01')
    zw.stkLibTim = {}  # 记录每只股票的交易起点时间和终点时间,终点作为清仓判断标志。
    for xcod in zw.stkLibCode:
        xt0, xt9 = zwx.stkLibGetTimX(xcod)
        xcod_tim0 = xt0.strftime('%Y-%m-%d')
        xcod_tim9 = xt9.strftime('%Y-%m-%d')
        zw.stkLibTim[xcod] = [xcod_tim0, xcod_tim9]
        if xtim0 > xt0: xtim0 = xt0
        if xtim9 < xt9: xtim9 = xt9

    xtim0 = xtim0.strftime('%Y-%m-%d')
    xtim9 = xtim9.strftime('%Y-%m-%d')
    qx.qxTimSet(xtim0, xtim9)

    if qx.debugMod > 0:
        print(xtim0, xtim9, '\nstkCode', zw.stkLibCode)  # zwx.stkLibPr()

    return qx
Esempio n. 2
0
def bt_init(xlst, rdat, prjNam, money0=1000000):
    '''
    qt_init(qx,xlst,rdat):
        初始化zw量化參數,stk股票記憶體中資料庫等
    【輸入】:
        xlst (list): 股票代碼列表,例如:xlst=['aeti','egan','glng','simo'],xlst=['002739','300239']   
        rdat (str): 股票資料目錄,可直接使用 zwDat的中美股票資料:\\zwdat\\cn\\Day\\,\\zwdat\\us\\Day\\,
        prjNam (str): 項目名稱
        money0 (int): 啟動資金,預設是:1000000(100w)
        
    【輸出】:
        qx (zwQuantx): 程式化全域變數qx
        '''
    # qx=zw.zwQuantX('tur',1000000) #100w
    qx = zw.zwQuantX(prjNam, money0)  # 100w

    # ------設定各種價格模式:
    #    priceWrk,策略分析時,使用的股票價格,一般是:dprice,複權收盤價
    #    priceBuy,買入/賣出的股票價格,一般是:kprice,一般採用次日的複權開盤價
    #    priceCalc,最後結算使用的股票價格,一般是:adj close,複權收盤價
    qx.priceCalc = 'close'  # qx.priceCalc='adj close'
    qx.priceWrk = 'dprice'
    qx.priceBuy = 'kprice'
    # ----------設定繪圖&資料輸出格式
    mpl.style.use('seaborn-whitegrid')
    pd.set_option('display.width', 450)
    # -----設定資料原始目錄等場所,讀取股票資料,stkLib
    qx.rdat = rdat
    zwx.stkLibRd(xlst, rdat)
    #
    # 大盤指數.設定
    # zw.stkInxLib=None  #全域變數,大盤指數,記憶體股票資料庫
    qx.stkInxRDat = '\\zwdat\\cn\\xday\\'  # 大盤指數資料來源路徑
    qx.stkInxPriceName = 'close'  # 大盤指數資料列名稱,預設是:close
    # 大盤指數代碼,名稱拼音,中文名稱
    # qx.stkInxCode,qx.stkInxName,qx.stkInxCName='000001','sh001','上證指數'

    #  讀取股票資料,
    xtim0 = parse('9999-01-01')
    xtim9 = parse('1000-01-01')
    zw.stkLibTim = {}  # 記錄每檔股票的交易起點時間和終點時間,終點作為清倉判斷標誌。
    for xcod in zw.stkLibCode:
        xt0, xt9 = zwx.stkLibGetTimX(xcod)
        xcod_tim0 = xt0.strftime('%Y-%m-%d')
        xcod_tim9 = xt9.strftime('%Y-%m-%d')
        zw.stkLibTim[xcod] = [xcod_tim0, xcod_tim9]
        if xtim0 > xt0: xtim0 = xt0
        if xtim9 < xt9: xtim9 = xt9

    xtim0 = xtim0.strftime('%Y-%m-%d')
    xtim9 = xtim9.strftime('%Y-%m-%d')
    qx.qxTimSet(xtim0, xtim9)

    if qx.debugMod > 0:
        print(xtim0, xtim9, '\nstkCode', zw.stkLibCode)  # zwx.stkLibPr()

    return qx
# -*- coding: utf-8 -*-
import numpy as np
import pandas as pd

import zwSys as zw         #zw.zwQuant
from .from .import zwTools as zwt
import zwQTBox as zwx

#======================
    

xlst=['aeti','egan','glng','simo']   
zwx.stkLibRd(xlst,'dat\\');
print(zw.stkLibCode)


xcod='aeti';xtim='2011-01-03'
x1=zwx.xbarGet8Tim(xcod,xtim);
print('x1\n',x1)

xcod='aeti';xtim='2012-01-03'
x2=zwx.xbarGet8Tim(xcod,xtim);
print('x2\n',x2)

#def xbarGet8Tim(xcod,xtim):
#def xbarGet8TimExt(xcod,xtim):
x2,df2=zwx.xbarGet8TimExt(xcod,xtim);
print('x2\n',x2)

print('df')
print(df2.head())
Esempio n. 4
0
# -*- coding: utf-8 -*-
import numpy as np
import pandas as pd

import zwSys as zw         #zw.zwQuant
from .from .import zwTools as zwt
import zwQTBox as zwx

#======================


xlst=['aeti','egan','glng','simo']   
zwx.stkLibRd(xlst,'dat\\');
print(zw.stkLibCode);
xcod=zw.stkLibCode[0]
d2=zw.stkLib[xcod]
print('\nd2',xcod)
print(d2.head())

#
print('')
xlst=['@inx\\inx_code.csv']   
zwx.stkLibRd(xlst,'\\zwDat\\cn\\xday\\');
print(zw.stkLibCode);
xcod=zw.stkLibCode[0]
d2=zw.stkLib[xcod]
print('\nd2',xcod)
print(d2.head())

Esempio n. 5
0
注意, kmidlst 数据源为: stkLib[xcod],包含预处理扩充的数据列
midSgn0,中部绘图区图标前缀
其中,“<xcod>”为特殊符号,表示对应的股票代码
【输出】
无


# zwBackTest 回溯测试工具函数
def bt_init(xlst,rdat,prjNam,money0=1000000): return qx 设置回溯测试参数 
	'xlst 股票代码列表''rdat 股票数据目录''prjNam 项目名称''money0 启动资金'
	'初始化启动资金:qx=zw.zwQuantX(prjNam,money0);'
	'设置各种价格模式:qx.priceCalc, qx.priceWrk, qx.priceBuy'
	'设置绘图 和 数据输出格式'
	'设置数据源目录等场所,读取股票数据'
		qx.rdat=rdat
		zwx.stkLibRd(xlst,rdat)
	'设置大盘指数'
	'读取股票数据 qx.qxTimSet(xtim0,xtim9)'
	
def zwBackTest100(qx):回溯测试只函数,单一股票,单一时间点的测试
	#----运行策略函数,进行策略分析
    qx.stkNum=qx.staFun(qx);
    if qx.stkNum!=0:
        #----检查,是不是有效交易
        xfg,qx.xtrdChk=zwx.xtrdChkFlag(qx)
        if xfg:
            #----如果是有效交易,加入交易列表
            zwx.xtrdLibAdd(qx)
        elif qx.trdNilFlag:
            zwx.xtrdLibNilAdd(qx)
def zwBackTest(qx):回溯测试主程序