Tradingview(TV)+盈透证券(IB)量化交易搭建(简易版)

224次阅读

共计 6209 个字符,预计需要花费 16 分钟才能阅读完成。

一、动手前请满足下面条件并了解整体思路

1、搭建前需要准备的工作

  • 准备一台电脑,windows 或者 mac 都可以。
  • 电脑下载好chatgptTradingview、盈透的IB gateway,提前登录进去。
  • chatgpt、tradingview 都需要科学上网使用,如何上网请自己提前搞定。
  • 盈透证券需要自己提前注册好,如果还没注册,可以用我的 链接注册 开户,咱们都有奖励。

2、核心流程概览

  1. 在 TradingView 上编写指标或策略脚本
  2. 设置 TradingView 的报警,用于触发买卖信号
  3. 通过中间服务接收 TradingView 的报警,并把它转化为交易指令
  4. 由中间服务调用盈透证券的 API 接口完成交易操作

3、具体搭建方式

  1. 本地电脑搭建一个 Flask 脚本(用于监听 TradingView 的报警)
  2. Tradingview 的警报发送地址(webhook)绑定本地电脑(这是付费版功能)
  3. 本地电脑接受 Tradingview 的警报,本地脚本调用 ib_insync 接口,向本地运行的 IB Gateway 发出交易指令。
  4. 最后实现【tradingview 触发交易信号】——【本地电脑传输】——【本地盈透交易】

4、0 基础小白也能做

我的方法不仅简单而且整体稳定性比较高,更重要是不需要写一行代码。新手小白如果在过程中遇到不懂的,直接复制问题粘贴去问 chatgpt,实现真正“0”代码搭建量化交易。

二、以 macbook 设置举例

1、macbook 打开终端(启动台直接搜“终端”)

2、安装 Python 环境

确保你已经安装了 Python,可以通过以下命令检查:

python3 --version

如果没有安装,可以从 Python 官网 下载并安装。

3、安装 Flask 和 ib_insync:

pip3 install flask ib_insync

如果提示权限问题可以加上:

pip3 install --user flask ib_insync

这个命令会安装你需要的两个核心模块:

  • Flask:用来接收 TradingView 发来的 webhook(警报)。
  • ib_insync:用来连接盈透证券并自动下单。

4、配置 IB Gateway:

  1. 启动 IB Gateway 并登录你的真实账户。
  2. 登录成功后点击顶部菜单栏的【配置】—【设置】—【API】—【Settings】—【API】:
  • ✅ 勾选“创建 API 信息记录文件”
  • ✅ 设置 Socket Port 为:4001(要记住,待会代码中使用)
  • ✅ 添加信任的 IP:127.0.0.1(本地地址)
  1. 如果不一致,请按我下图核对
Tradingview(TV)+ 盈透证券(IB)量化交易搭建(简易版)
  1. 配置完成后点击【应用】,然后重启一次。

5、配置 Flask 服务

  1. 打开终端,创建一个 tv_webhook 项目文件夹。【tv_webhook】名称可以自己定义,非固定。
mkdir tv_webhook
cd tv_webhook
  1. 在【tv_webhook】文件夹中创建一个 app.py 文件。
touch app.py
  1. 打开这个文件
nano app.py

复制以下代码粘贴进去,来接收 TradingView 的警报:(用 ctrl + O 保存,ctrl + X 退出 nano):

from flask import Flask, request, jsonify
from ib_bot import place_order  

app = Flask(__name__)

@app.route('/tradingview', methods=['POST'])
def tradingview_webhook():
    data = request.get_json()

    symbol = data.get('symbol')
    action = data.get('action', 'BUY')
    order_type = data.get('order_type', 'MARKET')
    price = data.get('price')
    quantity = data.get('quantity', 1)

    print(f"✅ 收到来自 TradingView 的警报: {data}")

    if symbol:
        place_order(symbol, action, order_type, price, quantity)

    return jsonify({'status': '✅ 已处理'}), 200

if name == '__main__':  # 
    app.run(host='0.0.0.0', port=80)

该代码实现监听 TradingView 的警报,并根据信号执行买卖操作。

解锁隐藏内容,请 升级为 VIP 会员

正文完
加我微信进交流群
post-qrcode
 0