FMZ量化交易Python版MACD画图范例
admin
2023-07-31 14:27:43
0

目前不清退的交易所推荐:

1、全球第二大交易所OKX欧意

国区邀请链接: https://www.myts3cards.com/cn/join/1837888   币种多,交易量大!

国际邀请链接:https://www.okx.com/join/1837888 注册简单,交易不需要实名,新用户能开合约,币种多,交易量大!

2、老牌交易所比特儿现改名叫芝麻开门 :https://www.gate.win/signup/649183

全球最大交易所币安,国区邀请链接:https://accounts.binance.com/zh-CN/register?ref=16003031  币安注册不了IP地址用香港,居住地选香港,认证照旧,邮箱推荐如gmail、outlook。支持币种多,交易安全!

买好币上KuCoin:https://www.kucoin.com/r/af/1f7w3  CoinMarketCap前五的交易所,注册友好操简单快捷!

FMZ量化交易平台邀请链接:https://www.fmz.com/

Python版MACD画图范例

其实在做这个范例代码之前,在发明者量化交易平台策略广场:https://www.fmz.com/strategy/151972 。已经有JavaScript版本的MACD指标画图范例了。不过应用户的需求,还是写一个Python版本的例子,以供在策略开发设计画图时作为参考代码。

代码非常简单:

\'\'\'backtest
start: 2020-01-28 00:00:00
end: 2020-02-26 00:00:00
period: 1d
exchanges: [{\"eid\":\"OKEX\",\"currency\":\"BTC_USDT\"}]
\'\'\'

ChartCfg = {
    \'__isStock\': True,
    \'title\': {
        \'text\': \'Python画图\'
    },
    \'yAxis\': [{
        \'title\': {\'text\': \'K线\'},
        \'style\': {\'color\': \'#4572A7\'},
        \'opposite\': False
    }, {
        \'title\': {\'text\': \'指标轴\'},
        \'opposite\': True
    }],
    \'series\': [{
        \'type\': \'candlestick\',
        \'name\': \'当前周期\',
        \'id\': \'primary\',
        \'data\': []
    }, {
        \'type\': \'line\',
        \'id\': \'dif\',
        \'name\': \'DIF\',
        \"yAxis\" : 1,
        \'data\': []
    }, {
        \'type\': \'line\',
        \'id\': \'dea\',
        \'name\': \'DEA\',
        \"yAxis\" : 1,
        \'data\': []
    }, {
        \'type\': \'line\',
        \'id\': \'macd\',
        \'name\': \'MACD\',
        \"yAxis\" : 1,
        \'data\': []
    }]
}

def main():
    global ChartCfg
    preTime = 0
    chart = Chart(ChartCfg)
    chart.reset()
    while True:
        while True:
            r = _C(exchange.GetRecords)
            if len(r) > 50:
                break
        # 计算指标
        macd = TA.MACD(r)
        
        LogStatus(_D(), len(r))
        
        # 画图
        for i in range(len(r)):
            if r[i][\"Time\"] == preTime:
                chart.add(0, [r[i][\"Time\"], r[i][\"Open\"], r[i][\"High\"], r[i][\"Low\"], r[i][\"Close\"]], -1)
                chart.add(1, [r[i][\"Time\"], macd[0][i]], -1)
                chart.add(2, [r[i][\"Time\"], macd[1][i]], -1)
                chart.add(3, [r[i][\"Time\"], macd[2][i]], -1)
            elif r[i][\"Time\"] > preTime:
                chart.add(0, [r[i][\"Time\"], r[i][\"Open\"], r[i][\"High\"], r[i][\"Low\"], r[i][\"Close\"]])
                chart.add(1, [r[i][\"Time\"], macd[0][i]])
                chart.add(2, [r[i][\"Time\"], macd[1][i]])
                chart.add(3, [r[i][\"Time\"], macd[2][i]])
                preTime = r[i][\"Time\"]
        Sleep(500)

ChartCfg 图表配置字典

这个ChartCfg字典变量中保存的是图表配置信息,例如:
这个图表中有几条线?(三条指标线,分别是DIF、DEA、MACD)
这个图表中有K线么?(\’type\’: \’candlestick\’ 这个类型就是指设置为K线数据)
MACD数值都比较小,如果交易对是BTC_USDT,画图的时候就会指标压缩在一起很不方便看,所以图表还要配置为2个Y轴。(所以\’yAxis\’中有两个Y轴配置,一个是指标轴,一个是K线轴)

载入数据

在这个范例策略中main函数开始执行图表的初始化,调用Chart函数,把图表配置ChartCfg作为参数传入,生成一个图表对象chart。然后进入一个循环,不停的获取K线数据,判断K线数据BAR数量只要大于50个就可以计算MACD指标(BAR太少算不出有效指标)。然后就可以把K线数据和指标数据写入图表了。
写入图表使用chart对象的方法add函数。
写入时,如果指定add函数的最后一个参数-1,为更新当前数据点的数值。如果不传-1,为新增一个数据点。
当K线BAR新生成时,新增一个数据点,当K线BAR没有生成时,更新最后一个BAR和对应的指标。(通过K线BAR的时间戳对比判断出)

可以直接回测

171dc8691a373197c399171dc8691a373197c399

也可以实盘运行:
16f3f680eb35fe9a8f4116f3f680eb35fe9a8f41

策略范例地址:
https://www.fmz.com/strategy/187379

如有问题,感谢留言。

FMZ量化交易平台邀请链接:https://www.fmz.com/

全球最大交易所币安,国区邀请链接:https://accounts.binance.com/zh-CN/register?ref=16003031  币安注册不了IP地址用香港,居住地选香港,认证照旧,邮箱推荐如gmail、outlook。支持币种多,交易安全!

买好币上KuCoin:https://www.kucoin.com/r/af/1f7w3  CoinMarketCap前五的交易所,注册友好操简单快捷!

目前不清退的交易所推荐:

1、全球第二大交易所OKX欧意,邀请链接:https://www.myts3cards.com/cn/join/1837888 注册简单,交易不需要实名,新用户能开合约,币种多,交易量大!。

2、老牌交易所比特儿现改名叫芝麻开门 :https://www.gate.win/signup/649183

买好币上币库:https://www.kucoin.com/r/1f7w3

火必所有用户现在可用了,但是要重新注册账号火币:https://www.huobi.com

全球最大交易所币安,

国区邀请链接:https://accounts.suitechsui.mobi/zh-CN/register?ref=16003031 支持86手机号码,网页直接注册。

相关内容

热门资讯

Windows 11 和 10... Windows 11/10 文件夹属性中缺少共享选项卡 – 已修复 1.检查共享选项卡是否可用 右键...
事件 ID 7034:如何通过... 点击进入:ChatGPT工具插件导航大全 服务控制管理器 (SCM) 负责管理系统上运行的服务的活动...
Hive OS LOLMine... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...
Radmin VPN Wind... Radmin VPN 是一款免费且用户友好的软件,旨在牢固地连接计算机以创建一个有凝聚力的虚拟专用网...
如何修复 Steam 内容文件... Steam 内容文件锁定是当您的 Steam 文件无法自行更新时出现的错误。解决此问题的最有效方法之...
Hive OS 部署 PXE ... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...
如何在Instagram上扫描... 如何在Instagram上扫描名称标签/ QR? 总而言之,您可以通过大约四种不同的方法来扫描这些I...
在 Windows 11 中打... 什么是链路状态电源管理? 您可以在系统控制面板的电源选项中看到链接状态电源管理。它是 PCI Exp...
farols1.1.501.0... faro ls 1.1.501.0(64bit)可以卸载,是一款无需连接外部PC机或笔记本计算机即可...
Hive OS 新建飞行表的方... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...