Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共12 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:python回测数据都是0

1楼
qq代人发帖 发表于:2019/4/10 16:56:44
请教:
python回测数据都是0
有遇到这种情况,怎么处理
用的是金字塔默认的模型
2楼
yukizzc 发表于:2019/4/11 9:13:02
历史数据是否补充了,了解下代码需要哪些数据参与
从ma均线那个策略去看
3楼
wzywzy292 发表于:2019/4/26 19:57:22
 用系统自带的均线交易系统 future_ma5_buy   python回测也都是0,(已补历史数据),请教如何解决,谢谢
[此贴子已经被作者于2019/4/26 19:59:14编辑过]
4楼
yukizzc 发表于:2019/4/28 9:11:52
if ma5[-1]>ma20[-1] and ma5[-2]<ma20[-2]

print输出下数值,看下是否取到均线的值了
5楼
wzywzy292 发表于:2019/4/29 9:30:48
 
 # 在这个方法中编写任何的初始化逻辑。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指标,也能够取到均线的值,但测试也全为零。能帮个忙吗?谢谢!!!
6楼
yukizzc 发表于:2019/4/29 9:43:15
# 本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

7楼
yukizzc 发表于:2019/4/29 9:44:47
返回值是array的格式,我记得另一个帖子回复过你了。
不能直接ma这么比较的,你一定要去学习下python中列表的相关知识。列表中元素的取值比较,不是直接一个列表对象的比较
8楼
wzywzy292 发表于:2019/4/29 11:11:28
 请教:列表中元素的取值比较,是用哪个函数,谢谢。
9楼
yukizzc 发表于:2019/4/29 11:18:39
ma5[-2]就是这样
廖雪峰python,你可以百度学习里面有介绍列表的
10楼
wzywzy292 发表于:2019/4/29 12:45:40
有了,谢谢!谢谢!!!
共12 条记录, 每页显示 10 条, 页签: [1] [2]


Powered By Dvbbs Version 8.3.0
Processed in 0.03125 s, 2 queries.