现在无论是bi'an还是ok,无论是股票还是基金,但凡我们是一颗有上进心的韭菜,在摸鱼时,或多或少都听过马丁策略,网格,均线等等,针对这些策略我们除了具备多年来被割的经验,还要具备一定编码能力等。所以,我也是结合闲暇时间,搞了搞ok中的V5 API,通过低买高卖的方式频繁交易,帮你自动挂卖单,买单。
注意:适用于稳定币,且涨幅差距大这样的场景。
特别说明:请谨慎入市,只提供工具代码,得失请自负
整体开发流程
代码
工具方法
# -*- coding: utf-8 -*-
__author__ = 'amcoder'
__time__ = '2022/5/31 14:06'
__desc__ = '欧意机器人方法类'
from urllib.parse import urljoin
import time
import json
import hmac
import base64
import requests
class OkRobot:
def __init__(self, api_key, secret_key, pass_phrase, base_url=None):
self.__api_key = api_key
self.__secret_key = secret_key
self.__pass_phrase = pass_phrase
self.__base_url = base_url or "https://www.ouyicn.website"
# 封装request请
def request(self, method, uri, params=None, body=None, headers=None, auth=False):
if params:
query = "&".join(["{}={}".format(k, params[k]) for k in sorted(params.keys())])
uri += "?" + query
url = urljoin(self.__base_url, uri)
if auth:
time_stamp = (str(time.time()).split(".")[0] + "." + str(time.time()).split(".")[1][:3])
if body:
body = json.dumps(body)
else:
body = ""
message = str(time_stamp) + str.upper(method) + uri + str(body)
mac = hmac.new(bytes(self.__secret_key, encoding="utf8"), bytes(message, encoding="utf-8"), digestmod="sha256")
d = mac.digest()
sign = base64.b64encode(d)
if not headers:
headers = {}
headers["Content-Type"] = "application/json"
headers["OK-ACCESS-KEY"] = self.__api_key
headers["OK-ACCESS-SIGN"] = sign
headers["OK-ACCESS-TIMESTAMP"] = str(time_stamp)
headers["OK-ACCESS-PASSPHRASE"] = self.__pass_phrase
result = requests.request(method, url, data=body, headers=headers, timeout=10)
result_json = json.loads(result.text)
if result_json["code"] and result_json["code"] != "0":
return None, result_json
return result_js