【魔码量化HTTP实战 #14】双均线策略回测:用金叉死叉跑一遍历史
【魔码量化HTTP实战 #14】双均线策略回测:用金叉死叉跑一遍历史
本文来自魔码量化实战系列 —— 不依赖任何 SDK,用最朴素的 HTTP GET 请求玩转量化行情数据。
把均线变成买卖信号
双均线策略:MA5 上穿 MA20 买入(金叉),下穿卖出(死叉)。我们用历史 K 线逐日模拟,初始资金 10000,看期末资产。这是最朴素的“回测”框架。
import requests
BASE = "https://api.momaapi.com"
LICENCE = "你的魔码证书"
bars = requests.get(f"{BASE}/hsstock/history/600519/d/n/{LICENCE}",
params={"st":"20220101","et":"20250401"}).json()
closes = [b["c"] for b in bars]
def ma(arr, w):
return [sum(arr[max(0,i+1-w):i+1])/len(arr[max(0,i+1-w):i+1]) for i in range(len(arr))]
ma5, ma20 = ma(closes, 5), ma(closes, 20)
pos, cash, hold = 0, 10000.0, 0.0
for i in range(1, len(closes)):
if ma5[i-1] <= ma20[i-1] and ma5[i] > ma20[i] and pos == 0:
hold, cash, pos = cash/closes[i], 0, 1
elif ma5[i-1] >= ma20[i-1] and ma5[i] < ma20[i] and pos == 1:
cash, hold, pos = hold*closes[i], 0, 0
val = cash + hold*closes[-1]
print("初始资金 10000, 期末资产:", round(val, 2), "收益率%:", round((val/10000-1)*100, 2))
运行结果(真实返回):
初始资金 10000, 期末资产: 9867.62 收益率%: -1.32
注意:这只是教学回测:没算手续费、没考虑滑点、用的是演示数据。真实策略请加成本、做样本外检验,切勿直接用于实盘。
免责声明:本文所有示例数据仅用于接口演示,不构成任何投资建议;市场有风险,投资需谨慎。
系列持续更新中。 想要亲手跑通上面的代码?前往 魔码证书申请页 免费领取你的专属证书,复制即用、按次计费、稳定可用。
想亲自试一下?免费获取证书
