Thực hiện giao dịch tín hiệu báo động TradingView bằng API mở rộng nền tảng giao dịch định lượng của nhà phát minh (được đề xuất)

Tác giả:Giấc mơ nhỏ, Tạo: 2020-04-29 17:08:27, Cập nhật: 2023-10-08 19:56:04

img

Sử dụng nền tảng giao dịch định lượng của nhà phát minh để mở rộng API để thực hiện giao dịch tín hiệu báo động TradingView

Liên kết video của B Station

Các nhà phát minh đã nâng cấp API mở rộng nền tảng giao dịch định lượng gần đây, nâng cấp hỗ trợ chế độ truy cập trực tiếp để dễ dàng thực hiện các tín hiệu báo động TradingView được gửi đến robot nền tảng giao dịch định lượng của nhà phát minh để tự động giao dịch. Nếu bạn chưa biết API mở rộng là gì, hãy nghe tôi chi tiết.

Các nhà phát minh mở rộng API nền tảng giao dịch định lượng

Liên kết các phần liên quan đến tài liệu API của nhà phát minh

Vai trò chính của API mở rộng là cung cấp giao diện cho các chức năng trên nền tảng giao dịch định lượng của nhà phát minh, chẳng hạn như khởi động bot hàng loạt cùng một lúc, bắt đầu, dừng robot theo thời gian, đọc thông tin chi tiết của robot, v.v.CommandRobot(RobotId, Cmd)Một giao diện có thể gửi lệnh tương tác cho robot với ID được chỉ định, và robot có thể thực hiện các thao tác tương ứng (ví dụ như đặt hàng, mua, bán, v.v.).

Để sử dụng API mở rộng, trước tiên bạn cần tạo tài khoản nhà phát minh của riêng bạn.API KEY: img API KEYChìa khóa bí mậtaccess keysecret keyCác thành viên:API KEYCó nghĩa là các chương trình vận hành các nhà phát minh số hóa các khóa giao dịch nền tảng, vì vậy nó phải được bảo quản đúng cách, không bao giờ rò rỉ.API KEYBạn có thể chỉ định quyền hạn, ví dụ như trên biểu đồ chỉ choAPI KEYCho phép truy cậpCommandRobot(RobotId, Cmd)Cho phép giao diện, vì lý do bảo mật trong ví dụ này, chỉ cho FMZ mở rộngAPI KEYĐưa raCommandRobot(RobotId, Cmd)Các quyền truy cập vào giao diện.

Phương thức truy cập trực tiếp của API mở rộng

Phương thức truy cập trực tiếpAPI KEYViết trực tiếp vào query của URL, ví dụ như URL truy cập API mở rộng nền tảng giao dịch định lượng của nhà phát minh có thể viết như sau:

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

Trong đó,https://www.fmz.com/api/v1Đây là địa chỉ giao diện.?Sau đó làQuery, tham sốaccess_keyMột ví dụ về khóa bí mật được thể hiện bằng xxx (để sử dụng để điền vào tài khoản FMZ của riêng bạn), tham sốsecret_keyChìa khóa bí mật được thể hiện bằng cách sử dụng yyyyy (đặc biệt điền vào tài khoản riêng của bạn khi sử dụng secret_key), tham sốmethodĐây là tên cụ thể của giao diện API mở rộng để truy cập.argsĐể gọimethodCác tham số của giao diện.

Chúng tôi sử dụng TradingView như một nguồn tín hiệu để gửi lệnh giao dịch đến robot sàn giao dịch định lượng của nhà phát minh, thực sự chỉ sử dụngCommandRobotMột người đàn ông người Việt Nam nói với các phóng viên:

TradingView

Trước tiên, bạn phải có một tài khoản ở cấp TradingView Pro, cấp Basic là không thể sử dụng tính năng WebHood trong báo động.

img

Thêm một chỉ số vào biểu đồ, cũng có thể là các thuật toán kịch bản khác.MACDChỉ số, sau đó đặt chu kỳ đường K là 1 phút (để kích hoạt tín hiệu nhanh hơn, dễ dàng biểu diễn).

img

Nhấp chuột phải vào biểu đồ và chọn "Thêm cảnh báo" trong menu bật lên.

img

Thiết lập trong cửa sổ báo độngWebHookỞ giai đoạn này, chúng ta có thể không cần thiết lập vội vàng, chúng ta đã bắt đầu sử dụng robot theo dõi tín hiệu từ bên cạnh sàn giao dịch của nhà phát minh.

Robot theo dõi tín hiệu

Nguồn mã chiến lược:

// 全局变量
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)
    }
}

Mã nguồn chiến lược

Các mã chiến lược rất đơn giản, có thể phát hiện.GetCommandCác giá trị được trả về của các hàm, khi một thông điệp tương tác được gửi đến các chương trình chính sách.GetCommandChức năng sẽ trả lại thông báo này và sau đó các trình điều khiển sẽ thực hiện các hành động giao dịch tương ứng dựa trên nội dung của thông báo. Các nút tương tác đã được thiết lập trên chính sách để kiểm tra các chức năng tương tác, chẳng hạn như chạy chính sách này, cho robot cấu hình nền tảng giao dịch tương tự của nhà phát minh.WexApp

img

Nhấp vào nút tương tác và thử nghiệm chức năng nhận lệnh mua của robot.

img

Bạn có thể thấy một chuỗi lệnh mà robot nhận được là:buy:0.01

Khi chúng ta chỉ cần kích hoạt cảnh báo TradingView, WebHook sẽ yêu cầu truy cập vào trình phát triển API của nhà phát minh trong URL.CommandRobotKhi giao diện, các tham số được mang theo làbuy:0.01Có thể.

Thiết lập WebHook cho TradingView

Trở lại trong TradingView, chúng ta điền vào URL của WebHook.access_keysecret_keyCác tham số điền vào chính nóAPI KEYmethodChúng ta chỉ cần truy cập vàoCommandRobotMột phần của nó là một phần của một phần của một phần khác của một phần khác.argsCác tham số là[机器人ID,命令字符串]Trong khi đó, một số trang web khác trên thế giới cũng có thể sử dụng các dạng ID robot, chúng ta có thể truy cập trực tiếp qua trang của robot, ví dụ:imgTrong lần này, khi kích hoạt tín hiệu, chúng tôi mua 0.02 đồng và lệnh string là:"buy:0.02"◦ Như vậy, WebHook URL đã hoàn thành. ◦ Cách này chỉ hỗ trợ viết tín hiệu vào URL, nếu bạn muốn truy cập nội dung trong thông báo cảnh báo có thể được phát ra bởi chính sách TV của chính nó, hãy tham khảohttps://www.fmz.com/api#直接验证

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

Trong TradingView, cài đặt:

img

Đợi tín hiệu kích hoạt... Đợi tín hiệu kích hoạt... 等待信号触发.

img

Một số người cho rằng, robot đã nhận được tín hiệu:

img

Bạn có thể sử dụng các tính năng biểu đồ phong phú trên TradingView, các thuật toán chỉ số kết hợp với robot chiến lược của nhà phát minh để định lượng nền tảng giao dịch, thực hiện giao dịch tự động mà bạn muốn, so với việc chuyển các chiến lược trên TradingView sang JavaScript hoặc ngôn ngữ Python.

Mã chiến lược của robot duy nhất theo tín hiệu giám sát chỉ dành cho nghiên cứu học tập, sử dụng thực tế cần tự tối ưu hóa điều chỉnh, hỗ trợ hợp đồng tương lai, đề nghị đặt theo chế độ đơn giá thị trường, xem các tham số mã chiến lược chi tiết. Nếu bạn có bất kỳ câu hỏi nào, xin vui lòng để ý.


Có liên quan

Thêm nữa

pw1013Xin vui lòng liên hệ với sàn giao dịch deepcoin, cảm ơn rất nhiều

Mingxi1005Khi nào các nhà phát minh có thể kết nối đồng tiền và giành chiến thắng trong hợp đồng tương lai?

Mingxi1005Khi nào các nhà phát minh có thể kết nối đồng tiền và giành chiến thắng trong hợp đồng tương lai?

cườiBạn biết đấy, chiến lược hợp đồng mà tôi thực hiện, sau khi mở giao dịch, đôi khi giao dịch sẽ tăng lên giữa, sau đó khi tôi phải thanh toán cuối cùng, làm thế nào để thanh toán tất cả các vị trí bằng cover_long (vì không biết giữa sẽ tăng thêm vài lần), thay đổi 1 trong "cover_long:1" thành gì, quỳ xuống mã

tyk950115Thông điệp chiến lược truyền hình của tôi là: lệnh {{strategy.order.action}}@{{strategy.order.contracts}} giao dịch {{ticker}}; vị trí chiến lược mới {{strategy.position_size}} Nếu tôi muốn ký hợp đồng, tôi có nên thêm 4 cảnh báo không? Có phải webhook có thể trích dẫn các trường trong chính sách? Hay tôi phải viết chết trước khi làm? Có 4 cách trong webhook long,cover_long,cover_short để tương tác với tin nhắn trong cảnh báo không?

Kiểu học số lượngTôi muốn gửi tin nhắn của tv, nhưng không thể mang theo, chỉ có thể mang URL tham số, không phải thông tin về tradingview.

NingHỏi: [1234567, "buy:50"] Đây là BTC trị giá 50USD được mua, và nó được bán với giá 50USD. Nhưng khi tôi bán, [1234567, "sell:50"] chỉ hiển thị lỗi: Sell ((-1, 50): insufficient balance. Vậy làm thế nào tôi có thể thiết lập để bán hết BTC lần đầu tiên?

wqyĐiều này rất hiệu quả!

lanbnXin chào, tôi đã thực hiện theo từng bước của bạn, máy chủ được chọn là máy chủ mà nhà phát minh mang theo, nhưng TV đã phát tín hiệu nhưng robot bên nhà phát minh vẫn không thực hiện lệnh tín hiệu, có phải do máy chủ không?

Đúng rồi.Thật tuyệt, hãy chậm lại.

Quay ngược/upload/asset/19a5ed382b58652c4dd19.png /upload/asset/19b0ea9ffa5100a3594f3.png /upload/asset/19a806e32e9b589696fa0.png /upload/asset/19a5005173219393cf2d9.png Tôi đã thêm mã hợp đồng theo từng bước, tại sao nó lại hiển thị lỗi, đó là bước sai?

wuxianVí dụ, nếu bạn có nhiều lệnh trống trong chính sách tv, điều này sẽ mở, tăng, đặt dựa trên các gợi ý trong chính sách tv?

PY008Điều gì viết trong mã hợp đồng tương lai?.

melo23Nơi nào là video hướng dẫn về tương lai?

su210Các sàn giao dịch nào có thể hỗ trợ?

YuanlijieCó một số người nói: "Tôi không biết tiếng Anh, tôi chỉ biết chữ viết tắt của nó".

MikelslMột làn sóng lớn và trắng ngay lập tức lan rộng, nó quá mạnh.

SkyfffireMột bước đơn giản và tuyệt vời.

bài giảngThật tuyệt vời.

pw1013Tôi hỏi chủ sở hữu về chuyện của bạn.

hexiao49Tôi có một câu hỏi trong cộng đồng của tôi, bạn có thể giúp tôi xem không?

Giấc mơ nhỏKhông có API thì không thể.

hexiao49Deep cũng không mở API của mình?

Giấc mơ nhỏĐiều này phụ thuộc vào nhu cầu của người dùng.

Giấc mơ nhỏMột số người cho rằng việc ngăn chặn thiệt hại là một cách cụ thể thay đổi chiến lược, không phải là một hoặc hai câu nói. FMZ hỗ trợ trực tiếp ngôn ngữ PINE, chạy kịch bản PINE trực tiếp là dễ dàng hơn.

Mingxi1005Giáo viên: Tôi muốn thêm chức năng ngưng ngưng ngưng trong robot mà bạn công bố, ở đâu để thêm?

Giấc mơ nhỏVâng, tôi đã hỏi nhân viên khách hàng của họ về việc loại bỏ các giao diện API không hợp đồng.

Mingxi1005Không có cách nào.

Giấc mơ nhỏĐây là giao diện API trực tiếp, sếp! #_#! FMZ hiện tại đã hỗ trợ.

Mingxi1005https://www.coinw.fit/front/API Trang web này có API, bạn cần thang để mở /upload/asset/2986424014eb005f8cda2.png

Mingxi1005https://www.coinw.fit/front/API Có một API để mở thang

Giấc mơ nhỏĐịa chỉ này không thể mở được. Không có tài liệu API hợp đồng.

Mingxi1005Liên kết nhập API: https://coinw.pw/API

Giấc mơ nhỏĐây là API trực tiếp của coinw, coinw hiện tại FMZ đã được hỗ trợ, họ không có giao diện hợp đồng. Bạn nên tham khảo coinw. Tôi đã hỏi dịch vụ khách hàng của họ và họ nói không có API hợp đồng.

Mingxi1005Bạn có thể tự mình upload theo giao thức chung không? Chỉ cần yêu cầu nhập địa chỉ IP, địa chỉ IP này sẽ được nhập vào địa chỉ nào? Liên kết nhập API: https://coinw.pw/API

Giấc mơ nhỏBạn có chắc chắn rằng các hợp đồng Bitcoin có giao diện API không?

Mingxi1005Có, giáo viên Little Dream, nếu bạn truy cập, sẽ có rất nhiều truy cập định lượng, bởi vì đồng xu sẽ lấy lại 80% hoa hồng.

Giấc mơ nhỏXin chào, bạn có cần một hợp đồng giao dịch coinw để tham gia không?

2 và 2Tôi cũng gặp vấn đề này.

lanbnAnh trai, chiến lược của TV liên kết trực tiếp với FMZ có thành công không?

Giấc mơ nhỏĐiều này có thể được thiết kế cụ thể, ví dụ như bạn thiết kế trong yêu cầu cover_long: 1, thay đổi thành cover_long: all, để bạn trong chính sách nghe này của FMZ có thể thay đổi khi nhận được tương tác cover_long, phán đoán nếu all, tất cả đều đặn. Để thực hiện điều này, bạn phải thay đổi chính sách này. `` // biến toàn cầu var BUY = "buy" // Lưu ý: lệnh dùng ngay var SELL = "sell" // lệnh dùng ngay var LONG = "long" // lệnh cho giao dịch tương lai var SHORT = "short" // lệnh dùng cho tương lai var COVER_LONG = "cover_long" // lệnh sử dụng tương lai var COVER_SHORT = "cover_short" // lệnh sử dụng tương lai ... ... Tôi không biết. Các bạn có thể xem hình ảnh này. } 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 (tạm dịch: "bán") tradeInfo = IsMarketOrder? exchange.Sell ((-1, amount)): exchange.Sell ((ticker.Buy, amount) } else if (action == COVER_LONG) { // COVER_LONG là cover_long , quyết định đó là action, nhập if ở đây // ở đây bạn sẽ xác định cụ thể các tham số như all, để làm cho tất cả các thiết kế hoạt động phẳng, cụ thể viết exchange.SetDirection (("closebuy") tradeInfo = IsMarketOrder? exchange.Sell ((-1, amount)): exchange.Sell ((ticker.Buy, amount) } else if (action == COVER_SHORT) { exchange.SetDirection (tạm dịch: "khép lại") tradeInfo = IsMarketOrder? exchange.Buy ((-1, amount)): exchange.Buy ((ticker.Sell, amount) } else { Log (("Thị trường tương lai không hỗ trợ!", "#FF0000") ♪ ♪ if (tradeInfo) { Log (("tradeInfo:", tradeInfo) ♪ ♪ } else { Throw "eType error, eType:" + eType ♪ ♪ acc = _C ((exchange.GetAccount) ♪ ♪ ``

yidaiCâu hỏi đã được giải quyết chưa?

Giấc mơ nhỏTrong khi đó, các nhà báo cho biết, các cảnh báo trên TV không rõ ràng về sự ổn định của nó, điều này phụ thuộc vào TV.

beiyeargs=[191755, "buy:0.02"], thêm các tham số, làm nhiều trong khi làm trống cũng có thể bỏ qua một trong những tham số sẽ tốt hơn không?

Giấc mơ nhỏSử dụng API mở rộng của FMZ để nhận yêu cầu truyền hình và có thể truy cập nội dung Body, hãy truy cập: https://www.fmz.com/api# trực tiếp xác minh Hiện tại, dữ liệu trong body có thể được nhận trong URL của yêu cầu của TV.

1131717062Xin vui lòng hỏi về cách xây dựng cảnh báo mở sàn trên tv, chiến lược, webhook url

Giấc mơ nhỏSử dụng API mở rộng của FMZ để nhận yêu cầu TV, bạn có thể truy cập nội dung Body, xem: https://www.fmz.com/api#%E7%9B%B4%E6%8E%A5%E9%AA%8C%E8%AF%81

Kiểu học số lượng https://www.fmz.com/strategy/221850,看到了,感谢大神!!

Giấc mơ nhỏCó một cách trực tiếp để truy cập thông tin trong Body yêu cầu, tìm kiếm trong khu vực chiến lược.

Giấc mơ nhỏSau đó, các nhà báo đã đưa ra một tuyên bố về việc thay đổi chính sách để đưa 50 chia cho mức giá thời điểm đó.

Giấc mơ nhỏNếu lệnh được nhận, nút trạng thái robot sẽ được bật, và nút cuối cùng được nhận lệnh sẽ được hiển thị. Bạn có thể kiểm tra xem không có cấu hình đúng ở đâu.

lanbnTrong khi đó, một số ứng dụng khác cũng được cài đặt trên máy tính, trong đó có một ứng dụng được cài đặt tại Binance, không có bất kỳ lời khuyên nào trên nhật ký robot, TV chỉ có các điều kiện kích hoạt và cài đặt trên webhook.

Giấc mơ nhỏĐể xem vấn đề cụ thể, giao dịch được cấu hình trên robot của bạn là hiện tại, tương lai?

Giấc mơ nhỏ/upload/asset/16afbca03eec23516d37.png Bạn đã thêm một giao dịch sai.

Giấc mơ nhỏAnh trai, màn hình API KEY phải được mã hóa, an ninh trước tiên.

Quay ngược/upload/asset/19aee891571def2a6c4f3.png Tôi đã mở quyền API của Binance, tôi cũng đã mở tài khoản hợp đồng, nhưng tôi luôn không thể thêm sàn giao dịch tương lai khi chiến lược hoạt động, có phải là vấn đề về mã không?

Giấc mơ nhỏTrong nhật ký, Binance cho biết rằng đối tượng giao dịch được thêm là Binance Cash. Nhưng chính sách của bạn đã đặt mã hợp đồng tương lai, do đó báo cáo sai.

Giấc mơ nhỏCần thiết lập báo động trong Trading view, và cài đặt webhook trong các thiết lập báo động.

Giấc mơ nhỏBạn có thể xem mô tả của hàm này.

Giấc mơ nhỏCó một liên kết ở đầu bài viết này.

melo23Địa điểm B: Địa điểm B là gì?

Giấc mơ nhỏCác giao dịch tương lai hiện tại được sử dụng tương tự, chỉ cần thay đổi các tham số bên trong liên kết. var BUY = "mua" var SELL = "sell" var LONG = "long" var SHORT = "short" var COVER_LONG = "cover_long" var COVER_SHORT = "cover_short" long là mở nhiều đầu tư, short là mở nhiều đầu tư, cover_long là mở nhiều đầu tư, cover_short là mở nhiều đầu tư. `` https://www.fmz.com/api/v1?access_key=e3809e173e23004821a9bfb6a468e308&secret_key=45a811e0009d91ad21154e79d4074bc6&method=CommandRobot&args=[191755, "buy:0.02"] `` Bạn có thể thay thế buy trong liên kết này nhé.

Giấc mơ nhỏTV có thể thêm hai báo động. Một báo động giá rẻ, một báo động trống.

su210Nếu bạn muốn mở nhiều cửa hàng cùng một lúc, tức là thiết lập tín hiệu là cover_long:10 và short:10, nhưng chỉ thực hiện một tín hiệu sau khi thiết lập trên TV, điều này không bị bỏ qua?

Giấc mơ nhỏCó thể, chỉ thị tương lai sử dụng tương lai, không phải bán mua.

Giấc mơ nhỏCác giao dịch tương lai được thiết lập bằng cách sử dụng các lệnh long, cover_long và các lệnh khác trong URL webhook được cấu hình trên TV.

key986Đó là mã hoạt động của các giao dịch hiện tại được thiết lập, hãy hỏi các giao dịch tương lai nên viết lại mã

Giấc mơ nhỏCó một video hướng dẫn để xem tại B Station.