4
Подписаться
1271
Подписчики

Используйте API расширения количественной торговой платформы Inventor для реализации торговли по сигналу тревоги TradingView (рекомендуется)

Создано: 2020-04-29 17:08:27, Обновлено: 2025-05-16 16:29:48
comments   104
hits   12185

Используйте API расширения количественной торговой платформы Inventor для реализации торговли по сигналу тревоги TradingView (рекомендуется)

Используйте API расширения количественной торговой платформы Inventor для реализации торговли по сигналу оповещения TradingView

Видеоссылка на станцию ​​B

API расширения платформы количественной торговли Inventor был недавно обновлен для поддержки режима прямого доступа, что упрощает отправку сигналов тревоги TradingView роботу платформы количественной торговли Inventor для реализации автоматической торговли. Если вы все еще не знаете, что такое API расширения, позвольте мне объяснить его подробно.

API расширения количественной торговой платформы Inventor

Ссылки по документации API Inventor

Основная функция расширенного API — предоставить интерфейс для различных функций на количественной торговой платформе разработчика программных операций, таких как одновременный запуск роботов партиями, запуск и остановка роботов в запланированное время, считывание подробной информации о роботах и ​​т. д. Мы используем API расширения Inventor Quantitative Trading Platform для реализации торговли по сигналу оповещения TradingView. Это требование требует только расширения API.CommandRobot(RobotId, Cmd)Интерфейс может отправлять интерактивные инструкции роботу с указанным идентификатором. Робот может выполнять соответствующие операции (например, размещать ордера на покупку или продажу) после получения инструкций.

Чтобы использовать API расширения, вам сначала необходимо создать собственную учетную запись Inventor.API KEY: Используйте API расширения количественной торговой платформы Inventor для реализации торговли по сигналу тревоги TradingView (рекомендуется) API KEYКлюч в том,access keyиsecret keyсостав,API KEYЭто ключ к количественной торговой платформе, созданной с помощью запрограммированных операций, поэтому его необходимо хранить надлежащим образом и никогда не разглашать. Создание расширения FMZAPI KEYВы можете указать разрешения при использованииAPI KEYПредоставить доступCommandRobot(RobotId, Cmd)В этом примере из соображений безопасности предоставьте разрешения только расширениям FMZ.API KEYНаделятьCommandRobot(RobotId, Cmd)Разрешения доступа к интерфейсу.

Режим прямого доступа для API расширения

Режим прямого доступа означаетAPI KEYНапишите его непосредственно в запросе URL. Например, URL для доступа к API расширения Inventor Quantitative Trading Platform можно написать так:

https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"ok12345"]

в,https://www.fmz.com/api/v1это адрес интерфейса,?После этогоQuery,параметрaccess_keyКлючевой пример представлен xxx (при использовании введите свой собственный ключ доступа к учетной записи FMZ), параметрыsecret_keyСекретный ключ представлен как yyyy (при использовании введите свой собственный secret_key учетной записи), параметрmethodКонкретное имя расширенного интерфейса API, к которому необходимо получить доступ.argsЧтобы называтьсяmethodПараметры интерфейса.

Мы используем TradingView в качестве источника сигналов для отправки торговых команд на роботизированную платформу количественной торговли, разработанную изобретателем.CommandRobotЭтот интерфейс.

TradingView

Прежде всего, вам необходимо иметь учетную запись TradingView Pro. Функция WebHood в будильнике недоступна на уровне Basic. Переходим к графику на TradingView.

Используйте API расширения количественной торговой платформы Inventor для реализации торговли по сигналу тревоги TradingView (рекомендуется)

Добавляет индикатор на график, а также другие алгоритмы скрипта. Здесь мы используем наиболее часто используемыеMACDИндикатор, а затем установите период K-линии на 1 минуту (чтобы сигнал срабатывал быстрее и было легче демонстрировать).

Используйте API расширения количественной торговой платформы Inventor для реализации торговли по сигналу тревоги TradingView (рекомендуется)

Щелкните правой кнопкой мыши по диаграмме и выберите «Добавить оповещение» во всплывающем меню.

Используйте API расширения количественной торговой платформы Inventor для реализации торговли по сигналу тревоги TradingView (рекомендуется)

Установить во всплывающем окне «Оповещение»WebHookНа этом этапе не нужно торопиться с настройкой. Давайте сначала запустим робота, который отслеживает сигналы на платформе количественной торговли Inventor.

Робот для заказа сигнала мониторинга

Исходный код стратегии:

// 全局变量
var BUY = "buy"     // 注意:现货用的命令
var SELL = "sell"   //      现货用的命令
var LONG = "long"   // 期货用的命令
var SHORT = "short" // 期货用的命令
var COVER_LONG = "cover_long"   // 期货用的命令
var COVER_SHORT = "cover_short" // 期货用的命令

function main() {
    // 清空日志,如不需要,可以删除
    LogReset(1)

    // 设置精度
    exchange.SetPrecision(QuotePrecision, BasePrecision)

    // 识别期货还是现货
    var eType = 0
    var eName = exchange.GetName()
    var patt = /Futures_/
    if (patt.test(eName)) {
        Log("添加的交易所为期货交易所:", eName, "#FF0000")
        eType = 1
        if (Ct == "") {
            throw "Ct 合约设置为空"
        } else {
            Log(exchange.SetContractType(Ct), "设置合约:", Ct, "#FF0000")
        }
    } else {
        Log("添加的交易所为现货交易所:", eName, "#32CD32")
    }
    
    var lastMsg = ""
    var acc = _C(exchange.GetAccount)
    while(true) {
        var cmd = GetCommand()
        if (cmd) {
            // 检测交互命令
            lastMsg = "命令:" + cmd + "时间:" + _D()
            var arr = cmd.split(":")
            if (arr.length != 2) {
                Log("cmd信息有误:", cmd, "#FF0000")
                continue
            }

            var action = arr[0]
            var amount = parseFloat(arr[1])

            if (eType == 0) {
                if (action == BUY) {               
                    var buyInfo = IsMarketOrder ? exchange.Buy(-1, amount) : $.Buy(amount)
                    Log("buyInfo:", buyInfo)
                } else if (action == SELL) {        
                    var sellInfo = IsMarketOrder ? exchange.Sell(-1, amount) : $.Sell(amount)
                    Log("sellInfo:", sellInfo)
                } else {
                    Log("现货交易所不支持!", "#FF0000")
                }
            } else if (eType == 1) {
                var tradeInfo = null
                var ticker = _C(exchange.GetTicker)
                if (action == LONG) {
                    exchange.SetDirection("buy")
                    tradeInfo = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount)
                } else if (action == SHORT) {        
                    exchange.SetDirection("sell")
                    tradeInfo = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount)
                } else if (action == COVER_LONG) {        
                    exchange.SetDirection("closebuy")
                    tradeInfo = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount)
                } else if (action == COVER_SHORT) {        
                    exchange.SetDirection("closesell")
                    tradeInfo = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount)
                } else {
                    Log("期货交易所不支持!", "#FF0000")
                }
                if (tradeInfo) {
                    Log("tradeInfo:", tradeInfo)
                }
            } else {
                throw "eType error, eType:" + eType
            }
            acc = _C(exchange.GetAccount)
        }
        var tbl = {
            type : "table", 
            title : "状态信息", 
            cols : ["数据"], 
            rows : []
        }
        // tbl.rows.push([JSON.stringify(acc)])   // 测试时使用
        LogStatus(_D(), eName, "上次接收到的命令:", lastMsg, "\n", "`" + JSON.stringify(tbl) + "`")
        Sleep(1000)
    }
}

Исходный код стратегии

Код стратегии очень прост, обнаружениеGetCommandВозвращаемое значение функции при отправке интерактивного сообщения в программу политики,GetCommandФункция вернет это сообщение, а затем программа стратегии выполнит соответствующие торговые операции на основе содержания сообщения. Интерактивная кнопка была установлена ​​на этой стратегии, которая может протестировать интерактивную функцию. Например, запустите эту стратегию и настройте робота с имитацией обмена Inventor Quantitative Trading Platform.WexApp

Используйте API расширения количественной торговой платформы Inventor для реализации торговли по сигналу тревоги TradingView (рекомендуется)

Нажмите кнопку взаимодействия, чтобы проверить способность робота принимать команды «купить».

Используйте API расширения количественной торговой платформы Inventor для реализации торговли по сигналу тревоги TradingView (рекомендуется)

Вы можете видеть, что командная строка, полученная роботом, выглядит следующим образом:buy:0.01

Нам просто нужно сделать так, чтобы URL-адрес запроса WebHook имел доступ к API расширения количественной торговой платформы Inventor при срабатывании оповещения TradingView.CommandRobotПри использовании интерфейса переносятся следующие параметры:buy:0.01Вот и все.

Настройка WebHook TradingView

Возвращаясь в TradingView, заполняем URL-адрес WebHook. Даватьaccess_keysecret_keyЗаполните свои собственные параметрыAPI KEYmethodИсправлено, нам просто нужно получить доступCommandRobotЭтот расширенный интерфейс API,argsПараметры:[机器人ID,命令字符串]В форме мы можем напрямую получить идентификатор робота через страницу робота, как показано на рисунке: Используйте API расширения количественной торговой платформы Inventor для реализации торговли по сигналу тревоги TradingView (рекомендуется) На этот раз мы позволяем сигналу сработать и покупаем 0,02 монеты. Командная строка:"buy:0.02". На этом URL-адрес WebHook завершен. Этот метод поддерживает только запись сигнала в URL. Если вы хотите получить содержимое сообщения оповещения, которое может быть выдано самой стратегией ТВ, обратитесь к https://www.fmz.com/api#%E7%9B %B4%E6 %8E%A5%E9%AA%8C%E8%AF%81.

https://www.fmz.com/api/v1?access_key=e3809e173e23004821a9bfb6a468e308&secret_key=45a811e0009d91ad21154e79d4074bc6&method=CommandRobot&args=[191755,"buy:0.02"]

Настройка в TradingView:

Используйте API расширения количественной торговой платформы Inventor для реализации торговли по сигналу тревоги TradingView (рекомендуется)

Ожидание сигнала для срабатывания… Ожидание срабатывания сигнала. Ожидание срабатывания сигнала.

Используйте API расширения количественной торговой платформы Inventor для реализации торговли по сигналу тревоги TradingView (рекомендуется)

Робот получил сигнал:

Используйте API расширения количественной торговой платформы Inventor для реализации торговли по сигналу тревоги TradingView (рекомендуется)

Таким образом, вы можете использовать богатые функции графиков и алгоритмы индикаторов на TradingView в сочетании со стратегическими роботами платформы количественной торговли Inventor для достижения желаемой вами автоматизированной торговли. По сравнению с переносом стратегий на TradingView на языки JavaScript и Python, сложность значительно снижена.

Код стратегии “Monitoring Signal Order Placing Robot” предназначен только для обучения и исследований. Его необходимо оптимизировать и настроить самостоятельно для фактического использования. Он поддерживает фьючерсы и рекомендуется установить его в режим рыночного ордера. Смотреть стратегию параметры кода для получения подробной информации. Это только отправная точка. Если у вас есть вопросы или предложения, пожалуйста, оставьте сообщение.