Beispiel #1
0
import sys
sys.path.append("C:/Users/j291414/my algorithms")

import backtrader as bt
from datetime import datetime
from collections import OrderedDict
import pandas as pd
from backtrader.feeds import PandasData
import technical_analysis.technical_analysis as ta
import sqlite3
import matplotlib.pyplot as plt
from base import start_backtest
import strategies as st
import analyzers as ay

conn = sqlite3.connect(
    "C:/Users/j291414/my algorithms/quant_trading/cn_stock.db")
code = '601988'
sql = "select Adj_Open as Open, Adj_Close as Close, Adj_High as High, Adj_Low as Low, Date \
        from cn_stocks_daily where code = '{}'".format(code)
df = pd.read_sql_query(sql, conn)
df['date'] = pd.to_datetime(df['Date'], format="%Y-%m-%dT%H:%M:%S")
df.index = df['date']
df = df[df.index > '2016-01-01']
data = bt.feeds.PandasData(dataname=df)

start_backtest([
    data,
], st.TrixSignalStrategy)
conn.close()
Beispiel #2
0
Created on Wed Nov 22 10:38:15 2017

@author: junbai

plot custom-created indicators
"""
import sys

sys.path.append("../../dev")

import pandas as pd
from base import start_backtest
import strategies as st
import indicators as ind

df = pd.read_csv("../data/AAPL.csv")
df.index = pd.to_datetime(df['Date'], format="%d/%m/%Y")


class NullStrategy(st.BaseStrategy):
    params = (('trixperiod', 15), )

    def __init__(self):
        super(NullStrategy, self).__init__()
        ind.MyTrixSignalInherited(self.data, period=self.p.trixperiod)


if __name__ == '__main__':
    start_backtest([
        df,
    ], NullStrategy, analysis=False)
Beispiel #3
0
import sys
sys.path.append("C:/Users/j291414/my algorithms")

import backtrader as bt
from datetime import datetime
from collections import OrderedDict
import pandas as pd
from backtrader.feeds import PandasData
import technical_analysis.technical_analysis as ta
import sqlite3
import matplotlib.pyplot as plt
from base import start_backtest
import strategies as st
import analyzers as ay

conn = sqlite3.connect(
    "C:/Users/j291414/my algorithms/quant_trading/cn_stock.db")
code = '601988'
sql = "select Adj_Open as Open, Adj_Close as Close, Adj_High as High, Adj_Low as Low, Date \
        from cn_stocks_daily where code = '{}'".format(code)
df = pd.read_sql_query(sql, conn)
df['date'] = pd.to_datetime(df['Date'], format="%Y-%m-%dT%H:%M:%S")
df.index = df['date']
df = df[df.index > '2016-01-01']

start_backtest([
    df,
], st.TestStrategy)
conn.close()
Beispiel #4
0
        ('datetime', None),
        ('open', -1),
        ('high', -1),
        ('low', -1),
        ('close', -1),
        ('volume', -1),
        ('openinterest', -1),
        ('spread', -1),
    )        
    datafields = [
        'datetime', 'open', 'high', 'low', 'close', 'volume', 'openinterest',\
        'spread',
    ]

# get EU and CN index data
tianjin = nd.get_data('tj_hrc', 'spot_daily', 'tj', frm='2016-01-01')
shanghai = nd.get_data('sh_hrc', 'spot_daily', 'sh', frm='2016-01-01')
merged = nd.merge_data([tianjin, shanghai])
merged['spread'] = merged.tj - merged.sh
merged.index = merged.date

tj = pd.DataFrame({'close':merged.tj, 'spread':merged.spread})
sh = pd.DataFrame({'close':merged.sh, 'spread':merged['spread']})

data0 = myPandas(dataname=tj)
data1 = myPandas(dataname=sh)

if __name__ == '__main__':
    start_backtest([data0, data1], strategy=st.MultiDataTestStrategy, analysis=True)

Beispiel #5
0
# -*- coding: utf-8 -*-
"""
Created on Wed Nov 22 15:59:45 2017

@author: junbai

Test Pair Trading
"""
import sys
sys.path.append("C:/Users/j291414/my algorithms")

import pandas as pd
from base import start_backtest
import strategies as st
import backtrader as bt
from data_handling.new_data import get_data, merge_data
from quant_trading.backtrader.dev import base

plt = get_data('plt_io62', 'spot_daily')
plt.index = plt['date']
tsi = get_data('tsi_io62', 'spot_daily')
tsi.index = tsi['date']
#merged = merge_data([plt,tsi])

start_backtest([plt, tsi], st.MultiDataTestStrategy, analysis=False)
# -*- coding: utf-8 -*-
"""
Created on Mon Dec 11 10:20:00 2017

@author: junbai

Three days drop strategy. Work towards to multiple assets
"""

import sys
sys.path.append("C:/Users/j291414/my algorithms/quant_trading/backtrader/dev")
sys.path.append("C:/Users/j291414/my algorithms/quant_trading/scripts")

import pandas as pd
import numpy as np
import backtrader as bt
from dbaccess import get_stock_data, get_stock_codes
from base import start_backtest
import strategies as st

stock = get_stock_data('601988', frm='2017-01-01')
datafeed = bt.feeds.PandasData(dataname=stock)

start_backtest([datafeed,], strategy=st.TestStrategy, commission=0.004)
Beispiel #7
0
# -*- coding: utf-8 -*-
"""
Created on Thu Dec 07 11:42:13 2017

@author: junbai

RSI signal on Chinese stocks
"""

import sys
sys.path.append("C:/Users/j291414/my algorithms/quant_trading/backtrader/dev")
sys.path.append("C:/Users/j291414/my algorithms/quant_trading/scripts")

import pandas as pd
import numpy as np
import backtrader as bt
from dbaccess import get_stock_data, get_stock_codes
from base import start_backtest
import strategies as st

stock = get_stock_data('601988', frm='2016-05-01')
stock.index = stock['Date']
datafeed = bt.feeds.PandasData(dataname=stock)

start_backtest([datafeed],
               params={'low': 35.0},
               commission=0.004,
               strategy=st.RSIStrategy)