Используйте расширенный API на FMZ Quant Trading Platform для реализации торговли сигналом предупреждения TradingView

Автор:Лидия., Создано: 2022-12-14 13:42:41, Обновлено: 2023-09-20 10:17:53

img

Используйте расширенный API на FMZ Quant Trading Platform для реализации торговли сигналом предупреждения TradingView

Расширенный API на FMZ Quant Trading Platform был недавно обновлен для поддержки прямого доступа, чтобы он мог легко отправлять сигнал предупреждения TradingView роботу FMZ Quant Trading Platform для автоматической торговли.

Расширенный API на FMZ Quant Trading Platform

Некоторые ссылки на документацию API на FMZ (https://www.fmz.com/api)

Основная функция расширенного API заключается в предоставлении интерфейсов для различных функций на платформе FMZ Quant Trading для программных операций, таких как одновременный запуск роботов в партиях, время запуска и остановки роботов, чтение деталей информации о роботе и т. Д. Мы используем расширенный API на платформе FMZ Quant Trading для реализации плана спроса на торговую сигнальную торговлю TradingView, который использует толькоCommandRobot(RobotId, Cmd)Этот интерфейс может отправлять интерактивные инструкции роботу с определенным идентификатором, и робот может выполнять соответствующие операции (например, размещение ордера на покупку, продажу и т. Д.) после получения инструкций. Чтобы использовать расширенный API, вам нужно создатьAPI KEYдля вашего собственного счета FMZ сначала:

img

Секретный ключ отAPI KEYсостоит из:access keyиsecret key. API KEYявляется ключом к количественному определению FMZ Quant Trading Platform программной операции, поэтому он должен быть правильно сохранен и не раскрывается.API KEYна FMZ, вы можете указать разрешения. Например, приведенная выше цифра дает толькоAPI KEYразрешение на доступ кCommandRobot(RobotId, Cmd)Для этого примера, основываясь на соображениях безопасности, пожалуйста, дайте только расширенныйAPI KEYпо разрешению FMZ на доступ кCommandRobot(RobotId, Cmd) interface.

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

Режим прямого доступа означает, чтоAPI KEYНапример, URL для доступа к расширенному API на FMZ Quant 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 например (заполните access_key вашей собственной учетной записи FMZ при его использовании).secret_keyпредставляется yyyy (заполните свой собственный аккаунт secret_key при его использовании).methodявляется конкретным названием расширенного интерфейса API, к которому должен быть получен доступ, иargsявляется параметромmethodинтерфейс, который должен быть вызван.

Мы используем TradingView в качестве источника сигнала для отправки команд транзакций в робот FMZ Quant Trading Platform.CommandRobot interface.

TradingView (Вид торговли)

Во-первых, у вас должна быть учетная запись на уровне TradingView Pro. Функция WebHood в предупреждении не может быть использована на базовом уровне.

В диаграмме TradingView вы можете добавить индикатор в график или другие алгоритмы сценария.MACDиндикаторы, а затем мы устанавливаем период K-линии на 1 минуту (для более быстрого запуска сигнала и легкой демонстрации).

Правый клик на графике и выберите Добавить предупреждение из всплывающего меню.

УстановленоWebHookВ этот момент мы можем запустить робот мониторинга сигналов на FMZ Quant Trading Platform.img

Робот-поручитель сигнала наблюдения

Источник стратегии:

// Global variable
var BUY = "buy"     // Note: The command used for spot
var SELL = "sell"   //      The command used for spot
var LONG = "long"   // The command used for future
var SHORT = "short" // The command used for future
var COVER_LONG = "cover_long"   // The command used for future
var COVER_SHORT = "cover_short" // The command used for future

function main() {
    // Clear the log and delete it if not needed
    LogReset(1)

    // Set precision
    exchange.SetPrecision(QuotePrecision, BasePrecision)

    // Identify future or spot
    var eType = 0
    var eName = exchange.GetName()
    var patt = /Futures_/
    if (patt.test(eName)) {
        Log("The added exchange is a futures exchange:", eName, "#FF0000")
        eType = 1
        if (Ct == "") {
            throw "Ct Contract set to null"
        } else {
            Log(exchange.SetContractType(Ct), "set contract:", Ct, "#FF0000")
        }
    } else {
        Log("The added exchange is a spots exchange:", eName, "#32CD32")
    }
    
    var lastMsg = ""
    var acc = _C(exchange.GetAccount)
    while(true) {
        var cmd = GetCommand()
        if (cmd) {
            // Detect interactive commands
            lastMsg = "command:" + cmd + "time:" + _D()
            var arr = cmd.split(":")
            if (arr.length != 2) {
                Log("cmd incorrect information:", 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("The spots exchange is not supported!", "#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("The futures exchange is not supported!", "#FF0000")
                }
                if (tradeInfo) {
                    Log("tradeInfo:", tradeInfo)
                }
            } else {
                throw "eType error, eType:" + eType
            }
            acc = _C(exchange.GetAccount)
        }
        var tbl = {
            type : "table", 
            title : "status information", 
            cols : ["data"], 
            rows : []
        }
        // tbl.rows.push([JSON.stringify(acc)])   // Use it when testing
        LogStatus(_D(), eName, "Last received command:", lastMsg, "\n", "`" + JSON.stringify(tbl) + "`")
        Sleep(1000)
    }
}

Источник стратегии (https://www.fmz.com/strategy/203063)

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

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

Нам нужно только сделать WebHook запрос URL, когда предупреждение TradingView запускается для доступа кCommandRobotинтерфейс расширенного API платформы FMZ Quant Trading, параметр, который используется,buy:0.01.

Установите WebHook TradingView

Возвращаясь в TradingView, мы заполняем URL-адрес WebHook.access_key, secret_key.methodНам нужно только получить доступ кCommandRobotрасширенный интерфейс API.argsимеет форму:[Robot ID, Command String]Мы можем получить идентификатор робота через страницу робота, прямо как показано на рисунке:

img

На этот раз мы даем сигнал, покупаем 0,02 монеты, и командная строка:buy:0.02. Затем URL-адрес WebHook завершен. Этот метод поддерживает только запись сигнала в URL-адресе. Если вы хотите получить содержание сообщения оповещения, которое может быть отправлено самой стратегией ТВ, обратитесь кhttps://www.fmz.com/api#Прямая проверка.

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

Установка на TradingView:

img

Подождите, пока сигнал запустится... Подождите, пока сигнал запустится... Подождите, пока сигнал запустится... - Да, конечно.

img

Затем робот получит сигнал, таким образом, мы можем использовать различные графические функции и алгоритмы индикаторов на TradingView для сотрудничества со стратегическим роботом платформы FMZ Quant Trading для достижения автоматической торговли, которую вы хотите.

Код стратегии robot для размещения заказов путем мониторинга сигналов предназначен только для обучения и исследований. Использование на реальном боте должно быть самооптимизировано и скорректировано для поддержки фьючерсов. Рекомендуется настроить его на режим ордера рыночной цены. Смотрите параметры кода стратегии для подробной информации. Если у вас есть вопросы или предложения, пожалуйста, не стесняйтесь оставить сообщение.


Связанные

Больше