随着金融科技的飞速发展,量化交易成为越来越多投资者的选择,而OKEx作为全球领先的数字货币交易平台之一,也提供了丰富的API接口支持自动化交易策略开发。本文将向读者介绍如何基于Python编写一个简单的OKEx量化交易脚本。
一、准备工作
在开始编写代码之前,请确保您已经完成了以下步骤:
注册并登录您的OKEx账号
开通API权限,并获取到API Key和Secret Key
安装必要的开发工具与库,例如Python环境(建议使用最新版本)、requests等HTTP请求库
二、接入OKEx API
首先,我们需要通过调用OKEx提供的API来实现账户信息查询等功能。这部分代码将作为后续交易策略的基础。
python
import requests
import json
from time import time
基础设置
api_key = 'your_api_key'
secret_key = 'your_secret_key'
base_url = "https://www.okex.com"
def sign(message):
使用 HMAC SHA256 对消息进行签名
pass
def get_account():
"""获取账户信息"""
path = '/api/v5/account/balance'
url = base_url + path
timestamp = str(int(time() 1000))
params = {'instType': 'SPOT'}
sign_params = {
"apiKey": api_key,
"passphrase": "",
"secretKey": secret_key,
"timestamp": timestamp,
"method": "GET",
"path": path
}
signature = sign(json.dumps(sign_params))
headers = {'OKACCESSKEY': api_key, 'OKACCESSSIGN': signature, 'OKACCESSTIMESTAMP': timestamp}
response = requests.get(url, params=params, headers=headers)
print(response.json())
三、编写交易策略
这里以一个简单的移动平均线交叉策略为例,当短期均线上穿长期均线时买入,反之则卖出。
python
def simple_strategy(symbol):
获取历史k线数据
path = '/api/v5/market/candles'
params = {'instId': symbol, 'bar': "1m", 'limit': 100}
response = requests.get(base_url + path, params=params)
klines = json.loads(response.text)['data']
close_prices = [float(k[2]) for k in klines]
short_ema = sum(close_prices[5:]) / 5.0
long_ema = sum(close_prices) / len(close_prices)
if short_ema > long_ema:
print("买入信号")
elif short_ema < long_ema:
print("卖出信号")
示例调用
simple_strategy('BTCUSDT')
以上代码仅为演示目的,真实环境中还需加入错误处理、资金管理等更多细节。希望本文能为正在学习量化交易的朋友提供一些帮助!