阅读视图
哥大mfe vs IC 金数 vs 哥大 金数
Freqtrade 量化风暴:Python 铸就的加密交易自动化帝国
大家好,我是 Lucifer,又来聊聊 Web3 的那些有趣事儿了。今天咱们来聊聊 Freqtrade。
你们有没有过那种深夜盯着K线图,脑子里全是“要是机器帮我下单就好了”的冲动?在加密货币的世界里,市场像过山车一样刺激,但手动交易往往让你错过黄金窗口,或者被情绪拖进深渊。量化交易,就是用算法和数据来驯服这头野兽。今天,我们来聊聊 Freqtrade 这个开源神器——一个纯 Python 驱动的加密交易机器人。它不是什么高大上的黑箱工具,而是让你从零起步,快速构建自动化交易系统的利器。基于 GitHub 上这个热门项目(freqtrade),我们一步步拆解它,从安装到策略定制,再到实战回测和报警接入。相信我,跟着读完,你就能在本地跑起自己的量化小帝国了。走起!
缠论
缠论是一门研究交易的理论。
研究交易核心解决的就是一个问题:买点和卖点在哪里。缠论里有三个买卖点,这正是缠论的重点。
学习缠论需要掌握两个思想:组合,递归。下面我们结合具体的内容来讲解。
介绍一个生产力工具:ntfy
之前为了监控家里的IP地址的变化,写了一个循环任务,每隔几秒钟访问一次ifconfig.io,获取大网IP,当发现IP地址变化时,通过mailgun发邮件到自己邮箱,用这种方式感知到IP地址变化,同时也使用域名提供商的域名解析接口刷新IP地址。这个邮箱通知的方式有点偏重,并且mailgun随时有被墙的风险。最近开始接触虚拟币投资,发现虚拟币的波动大,适合短线交易。合约支持看空和看涨,因此只要有交易量,价格有波动则适合买卖,当然能否踩准加仓和平仓的波峰波谷才是关键。对于我这样每天并不能随时看盘的上班族而言,希望有个后台监控任务,识别已经仓位变化,变化幅度大时通知到手机。全网搜刮,找到了ntfy这个应用,支持自托管,有域名即可。用docker部署了,然后也下载了官方提供的android app,设置app后台常驻,使用方法也相当简单。直接上代码:
class Notify:
def __init__(self, endpoint, user, password):
self.auth_header = "Basic " + base64.b64encode(
(user + ":" + password).encode("ascii")
).decode("ascii")
# Remove trailing slashes
while endpoint.endswith('/'):
endpoint = endpoint[:-1]
self.endpoint = endpoint
def notify(self, title, msg, subject):
if len(self.endpoint) == 0:
return
hostname = socket.gethostname()
msg += f" (from {hostname})"
res = requests.post(self.get_endpoint(subject),
data=msg,
headers={
"Title": title,
"Authorization": self.auth_header
})
if not res or res.status_code != 200:
logging.error(title)
logging.error(msg)
logging.error(str(res.status_code) + ":" + str(res.content))
def get_endpoint(self, subject):
if subject.startswith('/'):
return self.endpoint + subject
else:
return self.endpoint + "/" + subject
然后就是调用币安的API SDK代码,请求账号的仓位信息,发现仓位变化量达到一定幅度时发通知。区分盈利和亏损,手机app上面分别订阅盈利和亏损的topic,设置不同的提示铃声,随时感知仓位变化信息,必要时进行平仓和加仓。
后面基于这个代码继续丰富这个后台任务的逻辑,走上虚拟币量化之路。