简单回测-api使用

还在学习python中,这次用api提取数据并进行简单的策略回测,代码还在优化中。。。

from huobi.client.generic import *
from huobi.client.market import *
from huobi.constant.definition import *


# 取数据
market_client = MarketClient()
# 三倍做多
list_obj_l = market_client.get_candlestick("eth3lusdt", CandlestickInterval.MIN1, 2000)
# 三倍做空
list_obj_s = market_client.get_candlestick("eth3susdt", CandlestickInterval.MIN1, 2000)
list_close_eth3l = []
list_close_eth3s = []
for i in range(len(list_obj_l)) :
    l = list_obj_l[i].close
    s = list_obj_s[i].close
    list_close_eth3l.append(l)
    list_close_eth3s.append(s)
# print(list_close_eth3l)
# print(list_close_eth3s)

import pandas as pd
# 设置参数
trade_rate = 2.5 / 1000  # 千分之2.5的交易费用远高于市场平均水平
momentum = 1  # 计算多少天的涨跌幅
df = pd.DataFrame({'eth3l': list_close_eth3l,'eth3s': list_close_eth3s})

# 计算N日的涨跌幅momentum
df['mom_eth3l'] = df['eth3l'].pct_change(periods=momentum)
df['mom_eth3s'] = df['eth3s'].pct_change(periods=momentum)

# 轮动条件
df.loc[df['mom_eth3l'] > df['mom_eth3s'], 'style'] = 'eth3l'
df.loc[df['mom_eth3l'] < df['mom_eth3s'], 'style'] = 'eth3s'
df.loc[(df['mom_eth3l'] < 0.003) & (df['mom_eth3s'] < 0.003), 'style'] = 'empty'
# 相等时维持原来的仓位。
df['style'].fillna(method='ffill', inplace=True)
# 收盘才能确定风格,实际的持仓pos要晚一天。
df['pos'] = df['style'].shift(1)
# 删除持仓为nan的天数
df.dropna(subset=['pos'], inplace=True)
# 计算策略的整体涨跌幅strategy_pct
df.loc[df['pos'] == 'eth3l', 'strategy_pct'] = df['mom_eth3l']
df.loc[df['pos'] == 'eth3s', 'strategy_pct'] = df['mom_eth3l']
df.loc[df['pos'] == 'empty', 'strategy_pct'] = 0
df['strategy_net'] = (1 + df['strategy_pct']).cumprod()
print(df.tail(10))
df.to_csv('数字货币轮动_改进.csv', encoding='gbk', index=False)
print(df)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
期货全品种行情下载工具和行情重播API 期货市场全品种行情tick数据收集工具3.1 支持盘中实时行情和历史行情连续播,开盘时间申请到当前行情时间段也不会缺行情, 当数据服务器将文件历史行情播完成后,开始接着播放实时行情,直到通过python api 调用方法,通知服务器停止播实时行情。 目前不支持并发,对同一个品种多次调用播api,会导致播行情数据顺序错乱。 对不同品种多次调用播api,可能因为cpu占用过大,会导致服务器UI没有响应。后面升级版本会 完整的并发解决方案。 期货市场全品种行情tick数据收集工具3.0 (1)TCP网络连接由同步模式改为异步模式,解决某些网络状况无法连接数据采集服务器的问题 未来升级版本将优化性能 期货市场全品种行情tick数据收集工具2.9b 清理了不需要的.lib,不会再提示缺少ctp的dll文件,删除了不需要的方法 支持任意IP地址的连接,可以实现连接云主机运行的行情收集服务器,或局域网里的行情收集服务器。 期货市场全品种行情tick数据收集工具2.9 修复了多个API进程之间调数据时互相影响 当前合约数约323个合约,最大范围1200个合约,视合约产品而定。 本例正式发布版本2.7 可以自由设置行情服务器 模拟simnow24小时行情服务器在交易日上午没有数据,要在下午4点之后才有数据。 模拟simnow实盘同步时间服务器,和实盘同步。 可改为期货公司的服务器IP,见“快期”软件设置“试和代理”中的行情IP地址 双击合约文件列表可打开分时图 TestPythonApi可以调用DataCollectServer收集的行情数据(给定合约和时间段) 2017.3.11

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值