用python做量化投资系列之比特币---盘口高频策略
来源:互联网 发布:钣金放样展开软件下载 编辑:程序博客网 时间:2024/04/27 23:18
使用方法:把上一篇的配置基础,写到一个python文件中,文件名保存为 OkcoinSpotAPI,然后把下面的代码, 写到一个新的文件中,保存好,就可以直接运行了
原理:根据盘口买卖量,深度行情挂单量,进行买卖决策。属于高频策略。
注:该策略做过实盘,有回撤。使用的话,建议进一步优化。
更一步交流,qq:1733505732
验证请注明:python ,比特币量化
# -*- coding: utf-8 -*-"""Created on Mon Jan 16 17:40:55 2017@author: yunjinqiE-mail:yunjinqi@qq.comDifferentiate yourself in the world from anyone else."""########################################################盘口模型from OkcoinSpotAPI import *import pandas as pdimport numpy as npimport datetimeimport time######################################################初始数据#引入初始信息apikey = '9b93e53a-e803-4883-b8fc-64af2f3ccc57'secretkey = '14284B3C0B9CF0F932E83888388855C9'okcoinRESTURL = 'www.okcoin.cn' #请求注意:国内账号需要 修改为 www.okcoin.cn okcoinSpot = OKCoinSpot(okcoinRESTURL,apikey,secretkey)okcoinFuture = OKCoinFuture(okcoinRESTURL,apikey,secretkey)#info=eval(okcoinSpot.userinfo())#账户信息#info#####################################获取并整理数据def cut(deep): deep['bid_price']='' deep['bid_volume']='' deep['ask_price']='' deep['ask_price']='' for i in range(len(deep)): deep.ix[i,'bid_price']=deep.ix[i,'bids'][0] deep.ix[i,'bid_volume']=deep.ix[i,'bids'][1] deep.ix[i,'ask_price']=deep.ix[i,'asks'][0] deep.ix[i,'ask_volume']=deep.ix[i,'asks'][1] del deep['asks'] del deep['bids'] deep['bid_price']=deep['bid_price'].astype('float64') deep['bid_volume']=deep['bid_volume'].astype('float64') deep['ask_price']=deep['ask_price'].astype('float64') deep['ask_price']=deep['ask_price'].astype('float64') return deepdef bid_ask_vol_diff(deep): bidvol10=deep['bid_volume'][:10] askvol10=deep['ask_volume'][-10:] diff=bidvol10.sum()-askvol10.sum() return diff #diff>0是入场条件1def bid_ask_price_diff(deep): bidprice10=deep['bid_price'][:10] askprice10=deep['ask_price'][-10:] bid_diff=bidprice10.max()-bidprice10.min() ask_diff=askprice10.max()-askprice10.min() diff=bid_diff-ask_diff #小于0是入场条件 return diffdef bid_ask_bigvol(deep): bidvol10=deep['bid_volume'][:10] askvol10=deep['ask_volume'][-10:] diff=bidvol10.max()>askvol10.max()#大于0是入场条件 return diffi=0while True: deep=pd.DataFrame(okcoinSpot.depth('btc_cny')) deep=cut(deep) deep if bid_ask_vol_diff(deep)>0 and bid_ask_price_diff(deep)<0 and bid_ask_bigvol(deep)>0: price_buy=str(deep['bid_price'][1]+0.01) buy=okcoinSpot.trade('btc_cny','buy',price_buy,'0.01') time.sleep(0.2) price_sell=str(deep['bid_price'][1]+0.50) sell=okcoinSpot.trade('btc_cny','sell',price_sell,'0.01') print(sell) i=i+1 try: buyid=str(eval(buy)['order_id']) sellid=str(eval(sell)['order_id']) except NameError: pass except KeyError: pass time.sleep(5) try: cancel_buy=okcoinSpot.cancelOrder('btc_cny',buyid) cance1_sell=okcoinSpot.cancelOrder('btc_cny',sellid) except NameError: pass except KeyError: pass info_btc_free=eval(eval(okcoinSpot.userinfo())['info']['funds']['free']['btc']) info_net=eval(eval(okcoinSpot.userinfo())['info']['funds']['asset']['net']) print(i,info_btc_free,info_net)
0 0
- 用python做量化投资系列之比特币---盘口高频策略
- 用python做量化投资系列之比特币--初始配置
- 用python做量化投资系列之比特币---双均线系统
- 用python做量化投资系列之比特币---布林带突破系统
- 用python做量化投资系列之比特币--初始配置
- 用python做量化投资系列之比特币---双均线系统
- 用python做量化投资系列之比特币---布林带突破系统
- 比特币量化-EMA策略
- 信仰的力量-比特币量化之定投策略
- 比特币高频交易的策略分析
- 比特币量化价格浮标-CCI策略
- 主要量化投资策略
- 量化投资之简单持有--python
- 【量化小讲堂-Python&Pandas系列09】量化投资中关于复权的处理
- 用Python做投资-小试牛刀
- 利用R语言编写量化投资策略
- 量化投资-趋势策略-热卷
- 量化投资学习【常见策略】海龟交易系统
- Raising Modulo Numbers
- Awesome Chrome 插件集锦
- LintCode 152-组合 回溯法
- ExecutorService-10个要诀和技巧
- boneCP的连接管理
- 用python做量化投资系列之比特币---盘口高频策略
- 【WC2011】bzoj2115 Xor
- 小明的调查作业
- C语言的标准函数库
- 4 - 2 - Gradient Descent for Multiple Variables (5 min)
- 树莓派之Lamp
- fcntl函数
- bootstrop-table之通用方法( 时间控件,导出,动态下拉框, 表单验证 ,选中与获取信息)
- 2016年终总结