Расширенный API на FMZ Quant Trading Platform был недавно обновлен для поддержки прямого доступа, чтобы он мог легко отправлять сигнал предупреждения TradingView роботу 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 сначала:
Секретный ключ от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 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 Pro. Функция WebHood в предупреждении не может быть использована на базовом уровне.
В диаграмме TradingView вы можете добавить индикатор в график или другие алгоритмы сценария.MACD
индикаторы, а затем мы устанавливаем период K-линии на 1 минуту (для более быстрого запуска сигнала и легкой демонстрации).
Правый клик на графике и выберите
УстановленоWebHook
В этот момент мы можем запустить робот мониторинга сигналов на FMZ Quant Trading Platform.
Источник стратегии:
// 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
.
Возвращаясь в TradingView, мы заполняем URL-адрес WebHook.access_key
, secret_key
.method
Нам нужно только получить доступ кCommandRobot
расширенный интерфейс API.args
имеет форму:[Robot ID, Command String]
Мы можем получить идентификатор робота через страницу робота, прямо как показано на рисунке:
На этот раз мы даем сигнал, покупаем 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:
Подождите, пока сигнал запустится... Подождите, пока сигнал запустится... Подождите, пока сигнал запустится... - Да, конечно.
Затем робот получит сигнал, таким образом, мы можем использовать различные графические функции и алгоритмы индикаторов на TradingView для сотрудничества со стратегическим роботом платформы FMZ Quant Trading для достижения автоматической торговли, которую вы хотите.
Код стратегии