발명자의 양적 거래 플랫폼 확장 API를 사용하여 트레이딩뷰 경보 신호 거래를 구현합니다.

저자:작은 꿈, 2020-04-29 17:08:27, 업데이트: 2023-10-08 19:56:04

img

발명자의 양적 거래 플랫폼 확장 API를 사용하여 트레이딩뷰 경보 신호 거래를 구현

B역 비디오 링크

발명가 양자 거래 플랫폼 확장 API는 최근에 업그레이드되어 직접 액세스 모드를 지원하여 발명가 양자 거래 플랫폼 로봇에 전송되는 TradingView 경보 신호를 자동 거래로 쉽게 구현 할 수 있습니다.

발명가 양적 거래 플랫폼 확장 API

발명한 API 문서의 관련 부분 링크

확장 API의 주요 역할은 프로그램 조작 발명가 양자 거래 플랫폼의 다양한 기능을 인터페이스로 제공하는 것입니다. 예를 들어 동시에 로봇을 대량 시작, 로봇을 시작, 중지, 로봇 정보 세부 정보를 읽는 등. 우리는 발명가 양자 거래 플랫폼 확장 API를 사용하여 API TradingView 경보 신호를 거래 할 수 있습니다. 이 요구 프로그램은 확장 API에서만 사용됩니다.CommandRobot(RobotId, Cmd)이 인터페이스는 ID를 지정한 로봇에게 상호 작용 명령을 보낼 수 있으며, 로봇은 명령을 받아서 해당 작업을 수행 할 수 있습니다. (예를 들어 구매, 판매 등).

확장 API를 사용하려면 먼저 자신의 발명가 계정을 만들어야 합니다.API KEY: img API KEY비밀 키는access key그리고secret key이 글은API KEY즉, 프로그래밍 조작의 발명자가 양적 거래 플랫폼의 키를 사용하므로 제대로 보관하고 누설하지 않도록해야합니다.API KEY만약 이 문자를 사용한다면,API KEY접근 권한을 부여CommandRobot(RobotId, Cmd)인터페이스의 권한, 이 예제에서는 보안상의 이유로 FMZ의 확장만 부여하십시오.API KEY부여CommandRobot(RobotId, Cmd)인터넷에 접속할 수 있는 권한.

확장 API의 직접 접근 방식

바로 접속하는 방식은API KEYURL의 쿼리에 직접 작성하면, 예를 들어 발명자 양자 거래 플랫폼 확장 API를 방문하는 URL은 다음과 같이 작성될 수 있습니다.

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로 표시됩니다.method이 문서의 URL은 해당 확장 API의 이름입니다.args호출하기 위해method인터페이스의 매개 변수.

우리는 트레이딩뷰를 신호 소스로 사용하여 발명가들의 거래 로봇에 거래 명령을 전송합니다.CommandRobot이 인터페이스.

트레이딩뷰

먼저 트레이딩뷰 프로 계정, 기본 계정에서는 알람에 있는 웹후드 기능을 사용할 수 없습니다.

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

트레이딩 뷰 경고가 발생하면 WebHook는 URL에서 발명자의 크도 트레이딩 뷰 확장 API에 대한 요청을 합니다.CommandRobot이 인터페이스에서 가져오는 매개 변수는buy:0.01이 모든 것은

트레이딩뷰의 웹휴크 설정

다시 트레이딩 뷰로 돌아가서 웹 의 URL을 입력합니다.access_keysecret_key변수들은 자기 자신을 채우고 있습니다.API KEYmethod우리는 단지 방문할 것입니다.CommandRobot이 확장된 API는args변수는[机器人ID,命令字符串]보트 ID의 형태는 보트 페이지에서 직접 얻을 수 있습니다.img이 경우 신호가 발사되면 0.02을 구매하고 명령 문자열은 다음과 같습니다."buy:0.02"▲ 이렇게 WebHook URL가 완료됩니다. 이 방법은 신호를 URL에 쓰기만 지원합니다. TV 정책 자체에서 발산되는 경고 메시지의 내용을 얻으려면 참조하십시오.https://www.fmz.com/api#直接验证

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

트레이딩뷰에서 설정:

img

신호가 발사될 때까지 기다립니다. 신호가 발사될 때까지 기다립니다. 等待信号触发.

img

이 로봇은 신호를 받았습니다.

img

이 방법은 트레이딩뷰의 풍부한 그래프 기능과 지표 알고리즘을 개발자의 전략 로봇과 결합하여 거래 플랫폼을 정량화하여 원하는 자동화 거래를 수행 할 수 있습니다. 트레이딩뷰의 전략을 자바스크립트, 파이썬 언어로 옮기는 것과 비교하여 어려움은 직선적으로 낮습니다.

"감시 신호에 단 하나의 로봇" 전략 코드는 학습 연구용으로만 사용되며, 실제 사용은 자체 최적화 조정, 선물 지원이 필요합니다. 시장 가격 단위 모드로 설정하는 것이 좋습니다. 자세한 전략 코드 매개 변수를 참조하십시오.


관련

더 많은

pw1013딥코인 거래소를 연결해 주시겠습니까? 감사합니다.

밍시1005발명가들은 언제 화폐를 짝짓기해서 선물 계약을 이룰 수 있을까요? 화폐와 오이티는 너무 적은 수수료를 지불하고, 고주파 로봇은 너무 많은 수수료를 지불하고 있습니다.

밍시1005발명가들은 언제 화폐를 짝짓기해서 선물 계약을 이룰 수 있을까요? 화폐와 오이티는 너무 적은 수수료를 지불하고, 고주파 로봇은 너무 많은 수수료를 지불하고 있습니다.

웃음자, 내가 하는 계약 전략은, 포스팅 후 중간에서 포스팅을 올리는 경우도 있습니다. 그래서 내가 마지막 포스팅을 할 때, 어떻게 모든 포스팅을 cover_long로 평평하게 할 수 있습니다. (중간에 몇 번 더 될지 모르기 때문에), "cover_long:1"의 1은 무엇으로 바뀌었는지, 코드에 무릎을 꿇고

tyk950115내 TV 전략 메시지는 다음과 같습니다: 주문{{strategy.order.action}}@{{strategy.order.contracts}} 거래{{ticker}}; 새로운 전략 위치{{strategy.position_size}} 만약 제가 계약을 하고 싶다면, 4가지 경고를 추가해야 할까요? webhook은 정책의 필드를 인용할 수 있습니까? 아니면 내가 죽여야합니까? webhook의 4가지 방법인 long,cover_long,cover_short은 어떻게 경고의 메시지와 일치합니까?

소모학 양성TV의 뉴스 텍스트도 전달하고 싶었는데, 운용할 수 없습니다. URL만 가져갈 수 있습니다. 트레이딩뷰에 대한 정보가 아닙니다.

질문: [1234567, "buy:50"] 이것은 50USD의 BTC를 구매한 것입니다. 하지만 제가 팔을 때, [1234567, "sell:50"]는 오류를 표시합니다: Sell ((-1, 50): insufficient balance 그렇다면 처음 구매한 BTC를 모두 팔기 위해 어떻게 설정할 수 있을까요?

wqy이 장치는 정말 강력합니다.

란브선생님 안녕하세요, 저는 당신의 단계를 단계적으로 설명했습니다. 서버는 발명가의 서버를 선택했습니다. 하지만 TV는 신호를 보냈습니다. 그러나 발명가의 로봇은 신호 명령을 실행하지 않았습니다. 서버의 이유로입니까?

정말 멋지네요.

반 Q/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는 현장 API입니다, 보스! #_#! FMZ는 이미 지원하고 있습니다.

밍시1005https://www.coinw.fit/front/API 이 웹 사이트에는 api가 있습니다. 계단이 필요합니다. /upload/asset/2986424014eb005f8cda2.png

밍시1005https://www.coinw.fit/front/API 이 웹 사이트에는 API가 있습니다. 사다리가 필요합니다.

작은 꿈이 주소는 열 수 없습니다. 계약 API 문서는 없습니다.

밍시1005API 입력 링크: https://coinw.pw/API

작은 꿈이것은 코인우의 현금 API 입니다. 코인우 현금 FMZ는 이미 지원되고 있으며, 그들은 계약에 대한 인터페이스가 없습니다.

밍시1005자, /upload/asset/29896466a9cd4cd2ce1b2.png 우리는 우리가 일반 프로토콜에 묶을 수 있습니까? 단지 IP 주소를 입력하도록 요청합니다. 이 IP 주소는 어떤 주소를 입력합니까? API 입력 링크: https://coinw.pw/API

작은 꿈아까 말씀드렸던 것과 같이,

밍시1005예, 드림 선생님, 만약 접근한다면, 많은 양적 접근이 있을 것입니다. 왜냐하면 은 80%의 수수료를 받고 있기 때문입니다.

작은 꿈안녕하세요, 코인우에 대한 계약이 필요한가요? 아직 코인우를 평가하지 않았습니다.

두 두 개의 큰 파동이 문제를 해결해 보셨나요? 저도 이런 문제를 겪었습니다.

란브형님, TV의 전략이 FMZ를 직접 연결하는 것이 성공적이었나요?

작은 꿈예를 들어, 당신이 요청에 cover_long: 1을 디자인하면 cover_long: all로 변경할 수 있습니다. 그래서 FMZ의 청취 정책에서 당신이 수신하는 상호 작용 커버_롱을 변경하면 모든 것이 평평하다고 판단됩니다. `` // 글로벌 변수 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) { vartradeInfo = null var ticker = _C (exchange.GetTicker) if (action == LONG) { exchange.SetDirection (("구입") tradeInfo = IsMarketOrder? exchange.Buy ((-1, amount) : exchange.Buy ((ticker.Sell, amount) 이 있습니다. } else if (action == SHORT) { 교환.SetDirection (("sell") 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 (("closesell") "로 연결됩니다. tradeInfo = IsMarketOrder? exchange.Buy ((-1, amount) : exchange.Buy ((ticker.Sell, amount) 이 있습니다. } else { 로그 (("미래 거래소는 지원하지 않습니다!", "#FF0000") ♪ ♪ if (tradeInfo) { 로그 (("tradeInfo:", tradeInfo) ♪ ♪ } else { throw "eType error, eType:" + eType ♪ ♪ acc = _C (exchange.GetAccount) ♪ ♪ ``

다이질문 해결됐나요?

작은 꿈TV가 알람을 보내는 안정성은 명확하지 않습니다.

베이args=[191755, "buy:0.02"], 여기에 매개 변수를 추가하면 더 많은 작업을 동시에 할 수 있습니다. 한 매개 변수를 생략 할 수 있습니다. 여러 TV 알람이 발생할 수 있습니까?

작은 꿈FMZ의 확장 API를 사용하여 TV 요청을 수신하여 Body 컨텐츠를 얻을 수 있습니다. 이제 TV가 요청하는 url에서, body의 데이터가 모두 수신됩니다.

1131717062TV, 전략적 거래상태 알림, 웹후크 url

작은 꿈FMZ의 확장 API를 사용하여 TV 요청을 수신하여 Body 콘텐츠를 얻을 수 있습니다. https://www.fmz.com/api#%E7%9B%B4%E6%8E%A5%E9%AA%8C%E8%AF%81

소모학 양성 https://www.fmz.com/strategy/221850,看到了,感谢大神!!

작은 꿈요청된 바디에 대한 정보를 검색할 수 있는 직결 방식이 있습니다.

작은 꿈이 모든 것이 50을 그 당시의 가격으로 나누기 위해 정책을 변경했습니다.

작은 꿈명령이 수신되면, 로봇 상태 버튼을 누르면, 마지막 명령이 수신된 번을 누르면, 수신된 명령이 표시됩니다. 이 페이지의 위키피디아에 있는 모든 페이지의 위키피디아를 확인합니다.

란브이 비디오는 안의 현금으로 구성되어 있으며, 로봇 로그에는 아무런 팁이 없으며, TV에는 트리거 조건과 웹후크를 설정할 수 있습니다.

작은 꿈예를 들어, 로봇에 설치된 거래소는 현금, 선물, 로그에 표시되는 것은 무엇입니까?

작은 꿈/upload/asset/16afbca03eec23516d37.png 당신은 거래소를 잘못 추가했습니다.

작은 꿈젠장, API KEY 스크린에 암호를 넣고, 보안이 우선입니다.

반 Q/upload/asset/19aee891571def2a6c4f3.png 나는 바이오안의 API 권한을 모두 열고 계약 계좌를 열었지만 전략이 실행되는 동안 항상 선물 거래소를 추가 할 수 없습니다. 코드가 문제가 있습니까?

작은 꿈로그에서 Binance가 추가한 거래소 객체가 Bitcoin 현금이라고 설명하는 것을 보여줍니다. 그러나 귀하의 정책은 미래 계약 코드를 설정했기 때문에 오류가 발생했습니다.

작은 꿈트레이딩 뷰에서 알람을 설정하고 알람 설정에 웹후크 주소를 입력해야 합니다.

작은 꿈https://www.fmz.com/api#exchange.setcontracttype... 이 함수의 설명에는 참조할 수 있습니다.

작은 꿈이 글의 시작에는 링크가 있습니다.

멜로23B 스테이션 비디오의 제목은

작은 꿈미래 현장 사용은 동일하지만 링크 안의 매개 변수를 교체하십시오. var BUY = "구입" var SELL = "판매" var LONG = "long" var SHORT = "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를 대체할 수 있습니다.

작은 꿈TV에 두 개의 경보를 추가합니다.

수그210만약 평형 복수함수와 동시에 복수함수가 있다면, 즉 신호 설정은 cover_long:10과 short:10이지만 TV에서 설정된 후에 하나의 신호만 실행할 수 있다면, 이것은 손실되지 않을까요?

작은 꿈모든 것이 좋습니다, 선물 선물의 명령은 판매가 아니라 구매입니다.

작은 꿈미래 설정 계약은 실행됩니다. 정책 파라미터에, TV에 구성된 웹후크 url에 추가로 미래 명령어인 long, cover_long 등을 사용해야 합니다.

키986그것은 설정된 현금에 대한 작동 코드입니다.

작은 꿈이 비디오는 B 스테이션에서 볼 수 있는 비디오 튜토리얼입니다.