请教:
python回测数据都是0
有遇到这种情况,怎么处理
用的是金字塔默认的模型
用系统自带的均线交易系统 future_ma5_buy python回测也都是0,(已补历史数据),请教如何解决,谢谢
[此贴子已经被作者于2019/4/26 19:59:14编辑过]
# 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。
#简单的期货趋势策略,选用简单的均线金叉死叉进行买卖
import time
import os
import csv
import numpy
import talib as ta
def init(context):
# 在context中设置一些参数
context.s1 = 'SQRB00'
#两条均线的周期长度
#context.long_period = 20
#context.short_period = 5
# before_trading此函数会在每天策略交易开始前被调用,当天只会被调用一次
def before_trading(context):
pass
# 你选择的证券的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新
def handle_bar(context):
# 开始编写你的主要的算法逻辑
ma5 = get_indicator('SQRB00','MA','ma1', '5','self',1)
ma10 =get_indicator('SQRB00','MA','ma2','10','self',1)
print(ma5[-1])
if ma5>ma10 and ma5[-1]<ma10[-1]:
buy_open('SQRB00', "ThisClose",0,100)
if ma5<ma10 and ma5[-1]>ma10[-1]:
sell_close('SQRB00',"ThisClose",0,100)
# after_trading函数会在每天交易结束后被调用,当天只会被调用一次
def after_trading(context):
pass
==========
版主早上好: 这个模型调用了PEL的ma指标,也能够取到均线的值,但测试也全为零。能帮个忙吗?谢谢!!!
# 本Python代码主要用于策略交易
# 可以自己import我们平台支持的第三方python模块,比如pandas、numpy等。
from PythonApi import *
# 参数定义区,这里定义的参数可以直接在context对象中获取。--(选择实现)
#def parameter():
# input_par("myvalues1",5,1,20,1)
# input_par("myvalues2",10,1,20,1)
# 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。
#简单的期货趋势策略,选用简单的均线金叉死叉进行买卖
import time
import os
import csv
import numpy
import talib as ta
def init(context):
# 在context中设置一些参数
context.s1 = 'SQRB00'
#两条均线的周期长度
#context.long_period = 20
#context.short_period = 5
# before_trading此函数会在每天策略交易开始前被调用,当天只会被调用一次
def before_trading(context):
pass
# 你选择的证券的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新
def handle_bar(context):
# 开始编写你的主要的算法逻辑
ma5 = get_indicator('SQRB00','MA','ma1', '5','self',2)
ma10 =get_indicator('SQRB00','MA','ma2','10','self',2)
print(ma5[-1])
if ma5[-2]>ma10[-2] and ma5[-1]<ma10[-1]:
buy_open('SQRB00', "ThisClose",0,100)
if ma5[-2]<ma10[-2] and ma5[-1]>ma10[-1]:
sell_close('SQRB00',"ThisClose",0,100)
# after_trading函数会在每天交易结束后被调用,当天只会被调用一次
def after_trading(context):
pass
返回值是array的格式,我记得另一个帖子回复过你了。
不能直接ma这么比较的,你一定要去学习下python中列表的相关知识。列表中元素的取值比较,不是直接一个列表对象的比较
ma5[-2]就是这样
廖雪峰python,你可以百度学习里面有介绍列表的