How to develop based on Hiquant
# -*- coding: utf-8; py-indent-offset:4 -*-
import pandas as pd
import hiquant as hq
class MyStrategy ( hq .BasicStrategy ):
def __init__ (self , fund ):
super ().__init__ (fund , __file__ )
self .max_stocks = 10
self .max_weight = 1.2
self .stop_loss = 1 + (- 0.10 )
self .stop_earn = 1 + (+ 0.20 )
def select_targets (self ):
return ['AAPL' , 'MSFT' , 'AMZN' , 'TSLA' , '0700.HK' ]
def gen_trade_signal (self , symbol , init_data = False ):
market = self .fund .market
if init_data :
df = market .get_daily (symbol )
else :
df = market .get_daily (symbol , end = market .current_date , count = 26 + 9 )
dif , dea , macd_hist = hq .MACD (df .close , fast = 12 , slow = 26 , signal = 9 )
return pd .Series ( hq .CROSS (dif , dea ), index = df .index )
def get_signal_comment (self , symbol , signal ):
return 'MACD golden cross' if (signal > 0 ) else 'MACD dead cross'
def init (fund ):
strategy = MyStrategy (fund )
if __name__ == '__main__' :
backtest_args = dict (
#start_cash= 1000000.00,
#date_start= hq.date_from_str('3 years ago'),
#date_end= hq.date_from_str('yesterday'),
#out_file= 'output/demo.png',
#parallel= True,
compare_index = '^GSPC' ,
)
hq .backtest_strategy ( MyStrategy , ** backtest_args )
Add more technical indicators