示例#1
0
 def test_local_data(self):
     old_source = locd.source
     if old_source == 'sqlite':
         return 
     logger.info('***** 数据测试开始 *****')
     set_config({ 'source': 'csv' })
     target = locd.get_data('BB.TEST-1.Minute')
     fname = os.path.join(os.getcwd(), 'data', '1MINUTE', 'TEST', 'CC.csv')
     source = pd.read_csv(fname, parse_dates='datetime', index_col='datetime')
     self.assertFalse(source.equals(target), '本地数据接口负测试失败!')
     fname = os.path.join(os.getcwd(), 'data', '1MINUTE', 'TEST', 'BB.csv')
     source = pd.read_csv(fname, parse_dates='datetime', index_col='datetime')
     self.assertTrue(source.equals(target), '本地数据接口正测试失败!')
     logger.info('-- 本地数据接口测试成功 --')
     logger.info('***** 数据测试结束 *****\n')
     set_config({ 'source': old_source })
示例#2
0
from quantdigger import locd, set_config
from quantdigger.datasource import import_data


def import_contracts():
    """ 从文件导入合约到数据库"""
    df = pd.read_csv('./work/contracts.txt')
    df['key'] = df['code'] + '.' + df['exchange']
    return df


print("import contracts info..")
contracts = import_contracts()

set_config({'source': 'csv'})
locd.import_contracts(contracts)
print("import bars..")
fpaths = []
for path, dirs, files in os.walk('./work'):
    for file in files:
        filepath = path + os.sep + file
        if filepath.endswith(".csv") or filepath.endswith(".CSV"):
            fpaths.append(filepath)
import_data(fpaths, locd)

set_config({'source': 'sqlite'})
locd.import_contracts(contracts)

print("import bars..")
fpaths = []
示例#3
0
                    1] > ctx.ma100[1]:
                ctx.buy(ctx.close, 1)
            elif ctx.pos() > 0 and ctx.ma50[2] > ctx.ma100[2] and \
                    ctx.ma50[1] < ctx.ma100[1]:
                ctx.sell(ctx.close, ctx.pos())

        return

    def on_exit(self, ctx):
        return


if __name__ == '__main__':
    import timeit
    start = timeit.default_timer()
    set_config({'source': 'csv'})
    set_symbols(['BB.SHFE-1.Day'])
    profile = add_strategy(
        [DemoStrategy('A1'), DemoStrategy2('A2')], {
            'capital': 50000.0,
            'ratio': [0.5, 0.5]
        })
    run()
    stop = timeit.default_timer()
    print("运行耗时: %d秒" % ((stop - start)))

    # 绘制k线,交易信号线
    from quantdigger.digger import finance, plotting
    s = 0
    # 绘制策略A1, 策略A2, 组合的资金曲线
    curve0 = finance.create_equity_curve(profile.all_holdings(0))
示例#4
0
            # 无日期指定的期货合约
            code = row['code'][0:-4]
            if code not in codes:
                t = (code+'.'+row['exchangeId'], code, row['exchangeId'],
                        code, code, row['long_margin_ratio'],
                        row['short_margin_ratio'], row['price_tick'], row['volume_multiple'])
                contracts.append(t)
                codes.add(code)
    contracts = zip(*contracts)
    rst = {
            'key': contracts[0],
            'code': contracts[1],
            'exchange': contracts[2],
            'name': contracts[3],
            'spell': contracts[4],
            'long_margin_ratio': contracts[5],
            'short_margin_ratio': contracts[6],
            'price_tick': contracts[7],
            'volume_multiple': contracts[8],
            }
    return rst

print("import contracts..")
contracts = import_contracts()
set_config({ 'data_path': '../data', 'source': 'csv' })
locd.import_contracts(contracts)

contracts = import_contracts(True)
set_config({ 'data_path': '../data', 'source': 'sqlite' })
locd.import_contracts(contracts)
示例#5
0
# -*- coding: utf-8 -*-
from quantdigger import locd, set_config
from quantdigger.datasource import import_tdx_stock
set_config({'data_path': '../data'})
import_tdx_stock('../stock', locd)
示例#6
0
            if ctx.pos() == 0 and ctx.ma50[2] < ctx.ma100[2] and ctx.ma50[1] > ctx.ma100[1]:
                ctx.buy(ctx.close, 1)
            elif ctx.pos() > 0 and ctx.ma50[2] > ctx.ma100[2] and \
                    ctx.ma50[1] < ctx.ma100[1]:
                ctx.sell(ctx.close, ctx.pos())

        return

    def on_exit(self, ctx):
        return


if __name__ == '__main__':
    import timeit
    start = timeit.default_timer()
    set_config({'source': 'csv'})
    set_symbols(['BB.SHFE-1.Day'])
    profile = add_strategy([DemoStrategy('A1'), DemoStrategy2('A2')],
                           {'capital': 50000.0, 'ratio': [0.5, 0.5]})
    run()
    stop = timeit.default_timer()
    print("运行耗时: %d秒" % ((stop - start)))

    # 绘制k线,交易信号线
    from quantdigger.digger import finance, plotting
    s = 0
    # 绘制策略A1, 策略A2, 组合的资金曲线
    curve0 = finance.create_equity_curve(profile.all_holdings(0))
    curve1 = finance.create_equity_curve(profile.all_holdings(1))
    curve = finance.create_equity_curve(profile.all_holdings())
    plotting.plot_strategy(profile.data(), profile.technicals(0),
示例#7
0
# -*- coding: utf-8 -*-
from quantdigger import locd, set_config
from quantdigger.datasource import import_tdx_stock
set_config({ 'data_path': '../data' })
import_tdx_stock('../stock', locd)