欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → python回测数据都是0

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4538人关注过本帖树形打印复制链接

主题:python回测数据都是0

帅哥哟,离线,有人找我吗?
yukizzc
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2019/4/11 9:13:02 [显示全部帖子]

历史数据是否补充了,了解下代码需要哪些数据参与
从ma均线那个策略去看

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2019/4/28 9:11:52 [显示全部帖子]

if ma5[-1]>ma20[-1] and ma5[-2]<ma20[-2]

print输出下数值,看下是否取到均线的值了

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2019/4/29 9:44:47 [显示全部帖子]

返回值是array的格式,我记得另一个帖子回复过你了。
不能直接ma这么比较的,你一定要去学习下python中列表的相关知识。列表中元素的取值比较,不是直接一个列表对象的比较

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2019/4/29 11:18:39 [显示全部帖子]

ma5[-2]就是这样
廖雪峰python,你可以百度学习里面有介绍列表的

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2020/2/10 9:12:16 [显示全部帖子]

ma5  = get_indicator('SQRB00','MA','ma1', '5','self',2)
    ma10 =get_indicator('SQRB00','MA','ma2','10','self',2)
    
    print(ma5[-1]) 
 
 
输出看下ma[-1],ma[-2]这些值是多少
使用python你一定要学会去看下取值有没有问题,是不是数据缺失等问题

 回到顶部