def RunTestCase(): SymbolDataCache.LoadCallback=CacheData.LoadCacheData # 设置第3放数据加载回调 name='测试脚本' # 指标脚本代码 script=TEST_INDEX # 参数 args=[ ArgumentItem(name='M1', value=5), ArgumentItem(name='M2', value=10), ArgumentItem(name='M3', value=20)] scpritInfo=ScriptIndexItem(name=name, id=888888, script=script, args=args) indexConsole = ScriptIndexConsole(scpritInfo) arySymbol=['600000.sh','000001.sz'] # 要执行策略的股票池 aryResult=[] # 结果数据 runTime=time.time() for item in arySymbol : startTime = time.time() option = SymbolOption( symbol=item, right=1, # 复权 0 不复权 1 前复权 2 后复权 period=PERIOD_ID.DAY, # 周期 request=RequestOption(maxDataCount=500,maxMinuteDayCount=3) ) # 替换成自己的数据类 option.ProcCreateSymbolData=SymbolDataCache.Create result=indexConsole.ExecuteScript(option,False) # 使用缓存的AST执行 endTime = time.time() print("[RunTestCase] 股票:{0} 耗时:{1}".format(item, endTime - startTime)) aryResult.append(result) print("[RunTestCase] 股票个数:{0} 耗时:{1}".format(len(arySymbol), time.time() - runTime)) return aryResult
def Test_ScriptIndexConsole(): # 创建脚本, 及参数 scpritInfo = ScriptIndexItem( name='我的MA指标', id=888888, script= # 指标脚本代码 'V9:TROUGHBARS(3,15,1)<10;\n' 'T1:PEAKBARS(3,15,1)<10;\n', args=[ ArgumentItem(name='M1', value=5), ArgumentItem(name='M2', value=10), ArgumentItem(name='M3', value=20) ] # 参数 ) indexConsole = ScriptIndexConsole(scpritInfo) option = SymbolOption( symbol='000001.sz', right=1, # 复权 0 不复权 1 前复权 2 后复权 period=0, # 周期 0=日线 1=周线 2=月线 3=年线 4=1分钟 5=5分钟 6=15分钟 7=30分钟 8=60分钟 request=RequestOption(maxDataCount=500, maxMinuteDayCount=3)) option.ProcCreateSymbolData = CreateMySymbolData result = indexConsole.ExecuteScript(option) if result.Error: print(result.Error) return print('run successfully.') JSComplierPandasHelper.ToDateTimeSeries(result) # 转化为pandas Series 数据格式 JSComplierPandasHelper.ToDataFrame(result) # 转化为pandas DataFrame 数据格式 jsonData = result.ToJson() varName = 'jsonData' # 数据变量名字 HQChartOption = """g_KLineOption={ Symbol:'%(symbol)s', //股票代码 Right:%(right)d, //复权 Period:%(period)d, //周期 Windows: [ { Modify:false,Change:false, Local: { Data:%(varName)s, //py执行以后的json数据 Type:'LocalJsonDataIndex' , Name:'%(name)s', //指标名字 Args:[ //指标参数 { Name: '%(arg1)s', Value: %(argvalue1)d }, { Name: '%(arg2)s', Value: %(argvalue2)d }, { Name: '%(arg3)s', Value: %(argvalue3)d }] } }, //{Index:"VOL", Modify:false,Change:false}, ] } """ % { "symbol": option.Symbol, 'right': option.Right, 'period': option.Period, 'varName': varName, 'name': scpritInfo.Name, 'arg1': scpritInfo.Arguments[0].Name, 'argvalue1': scpritInfo.Arguments[0].Value, 'arg2': scpritInfo.Arguments[1].Name, 'argvalue2': scpritInfo.Arguments[1].Value, 'arg3': scpritInfo.Arguments[2].Name, 'argvalue3': scpritInfo.Arguments[2].Value } localJsonData = varName + '=' + jsonData + '\n' filePath = 'data.html' # 生成图形化页面 with codecs.open(filePath, 'w', "utf-8") as file: file.write(HTML_PART1) file.write(localJsonData) file.write(HQChartOption) file.write(HTML_PART_END) file.close() webbrowser.open(filePath, new=1)