def run_policy(): p = live_policy_runner.LivePolicySwitch() s = boll_pramid.Strategy_Boll_Pre(data_interface.TdxData()) if agl.is_function(s.setParams): s.setParams() p.Regist(s) while 1: agl.tic() p.Run() agl.toc() time.sleep(3) if stock.IsShouPan(): break
def main(args): agl.tic() BackTestPolicy.Test() agl.toc() print("end")
#-*- coding:utf-8 -*- """boll分仓, 择时策略""" import numpy as np import pandas as pd import boll_pramid import backtest_policy, stock, myenum, agl, account as ac, help, myredis, sign_observation as so, ui import os agl.tic() #ths = stock.createThs() class BollFenCangKline(boll_pramid.Strategy_Boll_Pre): """基于日线的boll分仓, 基本指标使用日线Boll以及日线Four""" def setParams(self, *args, **kwargs): self.base_num = 10000 #第一次买卖的数量 self.base_num_ratio = 0.1 #总资金的10%作为初始建仓, 与上一个变量两者可选, 注释该行使用绝对数量 self.base_ratio = 0.05 #盈亏区间的比率 self.base_pramid_ratio = 3 #底部增仓比率 self.base_rhombus_mid_ratio = 0.3 #仓位形态菱形的下部占比, 当资金不够时, 尽量保留一些资金 self.base_four = [-0.5, -0.1] #第一次买卖的技术指标阀值 for k, v in kwargs.iteritems(): setattr(self, k, v) def OnFirstRun(self): self.key_sell_avg_price = 'BollFenCangKline.SellAvgPrice'+ str(os.getpid()) self.key_sell_num = 'BollFenCangKline.SellNum'+ str(os.getpid()) myredis.delKeys('BollFenCangKline') def Run(self): account = self._getAccount() code = self.data.get_code()