Экспансия API для осуществления торговли сигналом тревоги TradingView с использованием квантовой торговой платформы изобретателя (рекомендуется)

Автор:Маленькие мечты, Создано: 2020-04-29 17:08:27, Обновлено: 2023-10-08 19:56:04

img

Экспансионный API для торговли сигналами тревоги TradingView с использованием квантовой торговой платформы изобретателя

Ссылка на видео с станции B

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

Изобретатели квантовой платформы расширения API

Ссылки на соответствующие разделы документации API изобретателя

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

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

Прямой доступ к расширенному API

Модель прямого доступа означает:API KEYНапишите прямо в запрос URL, например, URL для доступа к расширению API для квантовой торговой платформы изобретателя может быть написан таким образом:

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-аккаунта access_key).secret_keyСекретный ключ обозначаетсяyyyy (при использовании специально заполните свой аккаунт secret_key), параметрmethodЭто конкретное имя расширенного API-интерфейса, к которому вы хотите получить доступ.argsДля вызоваmethodПараметры интерфейса.

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

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

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

img

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

img

Нажмите правой кнопкой клавиши на графике и выберите "Добавить тревогу" в поп-меню.

img

Установка в окне "Алармы"WebHookНа этом этапе мы можем не торопиться с настройкой, а сначала запустить робот, который будет контролировать сигналы на стороне торговой платформы.

Робот, который следит за сигналом

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

// 全局变量
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Функция возвращает это сообщение, а затем программист выполняет соответствующие торговые действия в соответствии с содержанием сообщения. На этой политике установлены кнопки взаимодействия, которые позволяют протестировать функциональность взаимодействия, например, запустить эту политику и дать роботу настроить изобретателя на количественную торговую платформу.WexApp

img

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

img

Посмотрите, какую строку команд робот получает:buy:0.01

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

Настройка WebHook для TradingView

Возвращаясь в TradingView, мы заполняем URL WebHook.access_keysecret_keyПараметры заполняются сами по себеAPI KEYmethodМы хотим посетить толькоCommandRobotЭто расширенный API-интерфейс.argsПараметры:[机器人ID,命令字符串]Например, мы можем получить ID бота прямо на странице бота, например:imgНа этот раз, когда мы запускаем сигнал, мы покупаем 0.02 монета, и строка команды будет выглядеть так:"buy:0.02"‒ Таким образом, WebHook URL завершен. ‒ Этот способ поддерживает только запись сигналов в 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

В конце концов, робот получил сигнал:

img

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

Стратегический код "Мониторинг сигнала одного робота" предназначен только для изучения исследований, для реального использования требуется самостоятельная оптимизация настройки, поддержка фьючерсов, рекомендуется настроить на рыночный ценовой режим. Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарии.


Связанные

Больше

pw1013Пожалуйста, свяжитесь с биржей Deepcoin.

Мингси1005Когда изобретатели смогут выиграть контрактные фьючерсы на пары монет?

Мингси1005Когда изобретатели смогут выиграть контрактные фьючерсы на пары монет?

улыбаетсяВы знаете, я делаю стратегию контракта, иногда после того, как я открыл позицию, в середине я увеличиваю позицию, и когда я наконец-то должен был выйти на баланс, я использовал cover_long, чтобы выровнять все позиции (потому что я не знаю, сколько раз будет добавляться в середине), что 1 в "cover_long:1" изменится, и я на коленях прошу код

tyk950115Мой телевизионный стратегический сообщение выглядит так: заказ {{strategy.order.action}}@{{strategy.order.contracts}} сделан {{ticker}}; новое стратегическое положение {{strategy.position_size}} Если я хочу заключить контракт, мне нужно добавить четыре предупреждения: "Сделай больше, делай меньше, делай меньше, делай меньше". Может ли webhook ссылаться на поле в политике? Или я должен написать это, прежде чем я умру?

Количественное обучениеЯ хотел бы передать и тексты новостей на tv, но к сожалению, они не могут быть переносимыми, они могут быть только с параметрами url, а не с информацией о tradingview.

НингВопрос: [1234567, "buy:50"] Это биткоин стоимостью 50 долларов США, который вы покупаете, но не получаете. Но когда я продаю, [1234567, "sell:50"] показывает ошибку: Sell ((-1, 50): insufficient balance. Как же мне настроиться на то, чтобы продать все BTC, которые я купил в первый раз?

ВкйЭто очень функционально!

ланбнУчитель, привет, я сделал шаг за шагом, чтобы показать, что сервер, выбранный, был сервером, который принес изобретатель, но телевизор уже дал сигнал, но робот со стороны изобретателя все еще не выполняет команду сигналов, это из-за сервера?

- Нет, нет.Очень круто, не торопись.

В обратном направлении К/upload/asset/19a5ed382b58652c4dd19.png /upload/asset/19b0ea9ffa5100a3594f3.png /upload/asset/19a806e32e9b589696fa0.png /upload/asset/19a5005173219393cf2d9.png Почему код контракта, который я добавил по шагам, все еще показывает ошибку?

УсианскийНапример, если в tv-политике есть указание на множество пустых глав, это будет делать по указаниям в tv-политике - открывать, увеличивать или устранять?

PY008Что написано в коде фьючерсного контракта?

мело23Где видеоуроки на фьючерсы?

суг210А какие биржи могут поддерживать?

ЮаньлиджиКак получилось, что я не знаю английского языка, кроме букв?

Майкл.И тут же развернулась большая волна белого цвета, это было слишком сильно.

СкайффайрОчень круто, и это очень тонкий шаг.

проповедьОтлично.

pw1013Я спросил у автора о том, что с тобой.

Хексиао49В моем районе возникла проблема, помогите мне разобраться.

Маленькие мечтыНо без API-интерфейса это невозможно.

Хексиао49Deep не имеет собственной API?

Маленькие мечтыЭто зависит от потребности пользователей.

Маленькие мечтыЭто не может быть достигнуто одним-двумя словами, это требует конкретных изменений в стратегии. FMZ прямо поддерживает язык PINE, что позволяет легко запускать сценарии PINE.

Мингси1005Я хотел бы добавить функцию отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения отключения от

Маленькие мечтыДа, я спросил их обслуживание, и они решили выкорчевать API-интерфейсы без контракта.

Мингси1005Это невозможно.

Маленькие мечтыЭто насущный API-интерфейс, босс! В связи с тем, что в этом году мы не смогли получить доступ к FMZ, мы не можем получить доступ к FMZ.

Мингси1005https://www.coinw.fit/front/API Этот веб-сайт имеет API, для открытия которого требуется лестница /upload/asset/2986424014eb005f8cda2.png

Мингси1005https://www.coinw.fit/front/API Этот веб-сайт имеет API, для открытия которого требуется лестница.

Маленькие мечтыЭтот адрес не открывается. Нет API-документации.

Мингси1005Ссылка на API: https://coinw.pw/API

Маленькие мечтыЭто настройка настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки.

Мингси1005Может быть, мы можем связаться сами с помощью общих протоколов? Просто попросите заполнить IP-адрес, какой IP-адрес заполнить? Ссылка на API: https://coinw.pw/API

Маленькие мечтыВы уверены, что у этого контракта есть API-интерфейс?

Мингси1005Да, учительница, если вы получите доступ, вы получите много количественного доступа, потому что выиграете 80% комиссионной.

Маленькие мечтыЗдравствуйте, нужны ли вам контракты для доступа к этой бирже?

Две старые волны.Вы решили эту проблему? Я тоже столкнулся с этой проблемой.

ланбнБрат, как ты справился с этой стратегией телевидения, которая напрямую связывает FMZ?

Маленькие мечтыЭто можно конкретно спроектировать, например, если вы спроектировали запрос cover_long: 1, изменив его на cover_long: all, так что в этой стратегии прослушивания FMZ вы можете изменить время получения взаимодействия cover_long, чтобы решить, если это all, то все равно. `` // Глобальная переменная var BUY = "buy" // Примечание: команды для оперативного использования var SELL = "sell" // Команда для использования на месте var LONG = "long" // Приказ для фьючерса var SHORT = "short" // команда для фьючерсов var COVER_LONG = "cover_long" // Приказ для фьючерсов var COVER_SHORT = "cover_short" // Команда для фьючерса Я не знаю. Я не знаю. Я не знаю. Я не знаю, что делать. } else if (eType == 1) { var tradeInfo = нуль var ticker = _C ((exchange.GetTicker)) if (action == LONG) { exchange.SetDirection (("купить") tradeInfo = IsMarketOrder? exchange.Buy ((-1, amount)): exchange.Buy ((ticker.Sell, amount)): tradeInfo = IsMarketOrder? exchange.Buy ((-1, amount)): exchange.Buy ((ticker.Sell, amount)): tradeInfo = IsMarketOrder? exchange.Buy ((-1, amount)): exchange.Buy (((ticker.Sell, amount)): tradeInfo = IsMarketOrder? } else if (action == SHORT) { ) exchange.SetDirection (("продать") tradeInfo = IsMarketOrder? exchange.Sell ((-1, amount)): exchange.Sell ((ticker.Buy, amount) - торговая система, в которой продаются товары и услуги. } else if (action == COVER_LONG) { // COVER_LONG это cover_long , определить, что это действие, ввести здесь if // Здесь вы более конкретно решаете такие параметры, как all, и делаете дизайн всех операций на плавании, конкретно пишите exchange.SetDirection (("closebuy") " (англ.) русский) tradeInfo = IsMarketOrder? exchange.Sell ((-1, amount)): exchange.Sell ((ticker.Buy, amount) - торговая система, в которой продаются товары и услуги. } else if (action == COVER_SHORT) { ) exchange.SetDirection (("закрыть") tradeInfo = IsMarketOrder? exchange.Buy ((-1, amount)): exchange.Buy ((ticker.Sell, amount)): tradeInfo = IsMarketOrder? exchange.Buy ((-1, amount)): exchange.Buy ((ticker.Sell, amount)): tradeInfo = IsMarketOrder? exchange.Buy ((-1, amount)): exchange.Buy (((ticker.Sell, amount)): tradeInfo = IsMarketOrder? } else { Log (("Фьючерсные биржи не поддерживают!", "#FF0000") {y:bi} if (tradeInfo) { Log (("tradeInfo:", tradeInfo) {y:bi} } else { throw "eType error, eType:" + eType {y:bi} acc = _C (exchange.GetAccount) {y:bi} ``

идайВопрос решен?

Маленькие мечтыПоскольку телевидение не очень хорошо осведомлено о стабильности сигнализации, это зависит от телевидения.

Бэйиargs=[191755, "buy:0.02"], здесь добавлены параметры, делать больше и делать пустое тоже можно, один из параметров будет лучше?

Маленькие мечтыПрием ТВ-запросов с помощью расширенного API FMZ, доступ к содержимому Body, см. http://www.fmz.com/api# Теперь в URL-адресе запроса, отправленного телевидением, данные в "body" могут быть получены.

1131717062Пожалуйста, спросите, как на ТВ, как на стратегическом веб-хоке url

Маленькие мечтыДля получения запросов на телевидение с помощью расширенного API FMZ можно посмотреть: https://www.fmz.com/api#%E7%9B%B4%E6%8E%A5%E9%AA%8C%E8%AF%81

Количественное обучение https://www.fmz.com/strategy/221850,看到了,感谢大神!!

Маленькие мечтыЕсть прямая ссылка на информацию в запрошенном Боди, которую можно найти под поиском в Strategy Square.

Маленькие мечтыПо его словам, "это было не так просто".

Маленькие мечтыВ случае получения команды, в кнопке "Состояние робота", в кнопке "Последний раз получал команду", здесь отображается полученная команда. Проверьте, нет ли настройки на месте.

ланбнНастройка - это настройка на Binance, в журнале робота нет никаких подсказок, а на телевизоре - только условия запуска и настройка на webhook.

Маленькие мечтыДля конкретных вопросов, настройка вашего робота на бирже - наличные, фьючерсы?

Маленькие мечты/upload/asset/16afbca03eec23516d37.png Вы добавили ошибку в обменную систему.

Маленькие мечтыБрат, API KEY - это скриншот для кодирования, безопасность первая.

В обратном направлении К/upload/asset/19aee891571def2a6c4f3.png Я открыл API в Биткоин, я также открыл контрактный счет, но при запуске стратегии всегда не удается добавить фьючерсную биржу, что-то не так с кодом?

Маленькие мечтыВ журнале показывается, что Binance объясняет, что добавленный объект биржи - это биткоин. Но ваша политика настроила код фьючерсного контракта, поэтому ошибка.

Маленькие мечтыНеобходимо установить тревогу в Trading view, заполнить адрес webhook в настроенной тревоге.

Маленькие мечтыhttps://www.fmz.com/api#exchange.setcontracttype... В описании этой функции есть, смотрите.

Маленькие мечтыСсылки на эту статью приведены в начале статьи.

мело23Как называется видео "Станция Б"?

Маленькие мечтыФьючерсные опционы используют то же самое, только в ссылке параметры заменены. var BUY = "купить" var SELL = "продать" var LONG = "длинный" var SHORT = "короткий" var COVER_LONG = "cover_long" - "покрытие длинное" var COVER_SHORT = "cover_short" - "ковер_короткий" long - открыть многозаголовной позиции, short - открыть пустозаголовной позиции, cover_long - плоский многозаголовок, cover_short - плоский пустозаголовок. `` https://www.fmz.com/api/v1?access_key=e3809e173e23004821a9bfb6a468e308&secret_key=45a811e0009d91ad21154e79d4074bc6&method=CommandRobot&args=[191755, "buy:0.02"] `` Посмотрите на эту ссылку и замените buy.

Маленькие мечтыНа телевизоре добавляется две сигнализации ─ одна обычная, другая пустая ─ телевизор может добавлять N сигнализаций ─

суг210Если вы хотите, чтобы плановые многоуровневые одновременно многоуровневые, то есть настройка сигнала cover_long:10 и short:10, но настройка в телевизоре может выполнять только один сигнал, это не проигрыш?

Маленькие мечтыВ этом случае вы можете использовать фьючерсные инструменты, а не продавать или покупать.

Маленькие мечтыКонтракт настройки фьючерса выполнен. В параметрах стратегии, кроме того, в URL-адресе веб-хука, настроенном на телевизоре, используются команды фьючерса long, cover_long и т. д.

Ключ 986Это операционный код, установленный для фьючерса, и, пожалуйста, спросите, должен ли фьючерс переписать код.

Маленькие мечтыВ этом видео есть инструкция, которую можно посмотреть на B-станции.