本篇内容主要讲解“FMZ怎么对接Tradingview实现下单”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“FMZ怎么对接Tradingview实现下单”吧!
1、标准化json消息传递
2、加入try..except..异常处理
3、加入with..as..内存回收
4、采用async异步
5、采用ASGI协议
6、采用AUTO HTTP1.X-2.0协议
7、代码经过 100% test coverage
8、装饰器的运用使程序简洁、执行效率高、稳定可靠
您需要安装 python 3.8.2 或以上版本
您需要安装pip包管理器
安装必要的包
我们要做的事情很简单,就是接收tradingview post过来的数据再编码发送http get传递给FMZ的托管者。有点类似中间件服务。
我们要去fmz建立一个python策略,具体代码如下:
接下去我们把机器人运行起来
这里要非常注意 机器人ID要填写到python代码中
webhook server 服务端搭建
第一步
新建一个python文件。起个名字 fz1.py
第二步
编写导入模块
第三步
在fmz主页注册api
并找到托管主机ID
并定义到 python代码中。
这里的RobotID需要在前面的托管策略中获得ID
第四步
定义一个api函数来提交CMD指令给fmz托管。
第四步
自定义数据类型(json格式)
使用pydantic模块的BaseModel方法来定义一个类型
当然你也可以自己定义更多的字段,这完全取决于你自己想要达到的效果。
以上全部是非空字段,传参如果缺少一个会报错,
第五步
编写Tradingview接收模块(webhook server)
webhook 的协议使用的是http post方法。
所以我们需要定义一个http server端并接受post传递过来的数据。
以上就是全部核心代码的实现。
我略微处理了一下异常处理模块以及重试机制。将所有代码整合。
记住要讲文件保存成fz1的文件名
接着我们打开命令行工具。启动python服务端
命令如下:
其中代表使用fz1的py文件并调用webhook任务。
host 表示接收0.0.0.0的ip访问,也就是全部。
port 表示将端口设定为8001 (这里需要注意的是,tradingview只通过80端口访问,你需要在防火墙做好端口映射,或者直接使用80)
reload 表示如果py主文件有迭代,服务端自动重载最新版本。
当你看到如图所示,Application startup complete就代表启动成功了
这时候你可以打开浏览器,访问 http://127.0.0.1:8001/redoc
fast api 已经为你实现了api接口文档,和自动调试器。
我们使用的是chrome 插件 TALEND API TESTER
你也可以用其他的http调试工具完成。
模拟本地tradingview发送webhook消息。
将模式调整为post
url地址是 127.0.0.1:8001/tv/
post的body字段写上json
同时在HEADER中会自动生成application/json
完成以后点击发送
如图所示。本地测试已经完成了。
我们从本地模拟发送到webhook的数据通过python 传递到托管设备,并顺利获取到了相关数据。
本段落部分属于个人网络环境,每个人不一样。
登陆Juniper 终端
增加rule-set outside-to-inside
指定链路走向 from untruset to trust
增加tradingview 源地址IP断 source-address [ 58.35.162.147/32 52.89.214.238/32 34.212.75.30/32 54.218.53.128/32 52.32.178.7/32 ];
指定目的地址(本机外网ip) destination-address xxx.xxx.xxx.xxx/32;
指定目的端口(本机外网port) destination-port 80;
做端口重定向 destination-nat pool inside-8001;
这些步骤主要是允许 tradingview 访问我的外网ip,
并指定80端口重定向到本地设备的8001端口。
将设备规则执行以后。tradingview就能顺利推送消息给我们了。
tradingvew 消息测试
我们打开tradingview 并在一个高级指标上新建一个报警,
这个方法可以用于tradingview各种高级指标自动下单。
勾选webhook,并填写服务端地址http://xxx.xxx.xxx.xxx/tv/
下方消息框填入字段消息。
{"apikey": "FMZ", "exchange": "bybit", "symbol": "BTC-USD", "side": "buy", "amount": "100"}
如图所示 在指标上已经显示了我们的预警信息
当价格穿越指标以后,tradingview产生报警
到此,相信大家对“FMZ怎么对接Tradingview实现下单”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。