Strategi pelaksanaan sinyal TradingViewWebHook

Penulis:Mimpi kecil, Tanggal: 2020-04-28 17:01:35
Tag:StudiBantuan perdagangan

Artikel terkait:https://www.fmz.com/bbs-topic/5533Link video stasiun B:https://www.bilibili.com/video/BV1Wk4y1k7zz/

  • Updated pada 29.7.2020 Tambahkan SPK, BPK dua instruksi, masing-masing: menjual posisi kosong setelah menjual posisi kosong dan membeli posisi kosong setelah membeli posisi terbuka.

/*
- 交互命令字符串格式
  action:amount
  action: buy , sell , long , short , cover_long , cover_short, spk , bpk
- 交易所类型
  eType变量取值: 0 spot , 1 futures

- TV文档链接
  https://www.tradingview.com/pine-script-docs/en/v4/Quickstart_guide.html
  https://cn.tradingview.com/chart/8xfTuX7F/

- TV webhook 发送请求
  https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"action:amount"]

- 引用类库
  引用数字货币交易类库
*/

// 参数
// var IsMarketOrder = false 
// var QuotePrecision = 2
// var BasePrecision = 2

// 期货参数
// var Ct = ""


// 全局变量
var BUY = "buy"
var SELL = "sell"
var LONG = "long"
var SHORT = "short"
var COVER_LONG = "cover_long"
var COVER_SHORT = "cover_short"
var SPK = "spk"
var BPK = "bpk"


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 if (action == SPK) {   // 卖出平多仓,卖出开空仓
                    exchange.SetDirection("closebuy")
                    var tradeInfo1 = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount)
                    exchange.SetDirection("sell")
                    var tradeInfo2 = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount)
                    tradeInfo = [tradeInfo1, tradeInfo2]
                } else if (action == BPK) {   // 买入平空仓,买入开多仓
                    exchange.SetDirection("closesell")
                    var tradeInfo1 = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount)
                    exchange.SetDirection("buy")
                    var tradeInfo2 = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount)
                    tradeInfo = [tradeInfo1, tradeInfo2]
                } 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)
    }
}



Berkaitan

Lebih banyak

superonJika Anda tidak mengerti apa yang saya katakan, tolong tulis ulang dan hubungi saya.

zz791377920Apa yang didukung oleh bursa ini?

zz791377920Jika Anda ingin melakukan transaksi langsung, jumlah transaksi yang diisi adalah 10, dan jumlah yang diisi adalah 10u saat Anda memesan, apakah ini masalah pengaturan?

Yang Fu 1ReferenceError: 'QuotePrecision' is not defined at main (__FILE__:13) (Ref: ReferenceError: 'QuotePrecision' is not defined at main (__FILE__:13))

KukerzzzTanyakan apakah hanya ada jumlah yang bisa diatur dalam transaksi kontrak, bagaimana cara menulis jika setiap transaksi penuh.

15937556103Apakah guru bisa mengirimkan strategi lengkap tentang kontrak?

15937556103/upload/asset/203b175e3c2c22ac9681c.png Mengapa selalu seperti ini?

Tobey2022Halo, apakah Anda bisa menempatkan beberapa transaksi pada satu bot? kemudian peringatan URL menambahkan nama pasangan transaksi, sebuah bot menjalankan beberapa pasangan transaksi peringatan

Le7marslong,short,cover_long,cover_SHORT, apakah harus menambahkan webhook masing-masing?

Sbwffg198212Apakah itu berarti, bursa berjangka tidak mendukung, saya ingin membuat kontrak jangka panjang Bitcoin BTC_USDT bagaimana cara mengatur

Sbwffg198212Apakah itu berarti, bursa berjangka tidak mendukung, saya ingin membuat kontrak jangka panjang Bitcoin BTC_USDT bagaimana cara mengatur

Sbwffg198212/upload/asset/1cd7a606f646b8c0d32be.png

Kembali ke QSaya ingin tahu apakah Anda bisa membuat video tutorial tentang cara menambahkan dan mengatur kontrak berjangka.

Sug210/upload/asset/125e8fed0f51ab1f8122e.jpg Menggunakan perintah spk

Langit MalamBagaimana cara mengatasi masalah TV yang mengirimkan peringatan, FMZ kadang-kadang tidak menerima sinyal? Khususnya dua kebijakan TV yang mengirim sinyal ke dua robot FMZ pada saat yang sama, kadang-kadang satu robot tidak menerima. Dan dua akun TV yang telah terdaftar untuk mengirim, masih akan muncul masalah ini, meskipun server yang di-host FMZ adalah yang sama.

Semenanjung tidak dinginspk, bpk, apakah Anda ingin menambahkan jumlah di belakang spk? Jika sinyal TV memiliki beberapa kali alarm membuka lebih banyak order, dapat membuka lebih banyak order secara bersamaan di depan datar, seperti daftar kosong. Bagaimana kode ditulis.

melo23Kontrak, multiplikator, di mana untuk memilih

Mimpi kecilLihatlah parameter kebijakan, jika Anda menambahkan objek bursa berjangka, Anda harus mengatur kontrak. Jika tidak, robot tidak tahu kontrak apa yang harus dioperasikan.

Richie.Halo, maafkan kesalahan ct contract setup kosong, kenapa?

Mimpi kecilSemua bisa, tetapi pengaturan webhook di TV mungkin harus disesuaikan berdasarkan jenis yang dilakukan.

Mimpi kecilUntuk membeli tiket harga pasar langsung, jumlah pesanan berikutnya adalah jumlahnya.

Mimpi kecilSaya kira Anda telah melakukan kesalahan, setelah memeriksa dokumen API.

Yang Fu 1Jika tidak, apakah Anda harus menyalin seluruh kebijakan untuk menyetelnya?

Mimpi kecilCode 1 adalah KEY API yang salah, periksa.

Yang Fu 1Saat ini saya mencoba untuk memesan di dalam platform, tetapi dengan API ekstensi, kesalahan akan muncul, kembali, kode:1, data: [], saya mengaksesnya langsung dengan tautan, mirip dengan pembukaan tautan di browser.

Mimpi kecilJangan hanya menyalin kode, menyalin seluruh strategi.

Mimpi kecilJika Anda ingin melakukan hal-hal seperti hip-hop, Anda harus mengubah strategi Anda.

Mimpi kecilStrategi ini sendiri adalah contoh yang sempurna untuk menjalankan futures, Anda menggunakan perintah yang salah, periksa.

Mimpi kecilUntuk menjalankan futures, perintah yang Anda gunakan dalam panggilan webhook Anda salah, gunakan perintah futures, lihat kode dengan seksama.

Tobey2022 好的,已经在众包板块发布了信息,期望你的成果和合作,thanks.

Mimpi kecilIni tidak berubah, Anda dapat mengunggah informasi di platform yang banyak dibagikan, dan beberapa pengembang akan mengambilnya.

Tobey2022Apakah ada yang bisa mengirim modifikasi langsung ke Anda? karena orang lain mungkin sudah terbiasa untuk beberapa waktu lagi.

Mimpi kecilDi platform ini, ada platform yang tersedia untuk publikasi permintaan.

Tobey2022@Kalocil Dream, apakah Anda bisa mengubah strategi versi seperti ini, jika memungkinkan, tentu saja Anda dapat membayar untuk membelinya, dan berharap hasil dan tanggapan Anda, terima kasih.

Mimpi kecil"Kami tidak bisa melakukan apa-apa, tapi kami harus mengubah strategi ini.

Mimpi kecilSaya tidak tahu apa yang Anda maksudkan.

Le7marsSaya telah mengatur empat alarm dalam bentuk long, short, coverlong, covershort, tetapi karena strategi itu sendiri bukan studi, keempat perintah ini selalu dipicu secara bersamaan...

Le7marsBagaimana cara membedakannya?

Mimpi kecilAnda dapat membedakan di URL webhook yang memberi peringatan.

Le7marsMasalah ditemukan, hanya dapat menerima peringatan perdagangan dari indikator tradingview, tetapi strategi yang saya tulis, yang mengatur empat peringatan berbeda, tetapi tampaknya tidak dapat diidentifikasi, ketika sinyal dibuat, empat sinyal terbuka secara bersamaan.

Mimpi kecilTelevisi mengirim permintaan alarm `` https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515, "action:amount"] `` Di tempat action, apa yang Anda tulis dan apa yang robot terima? Misalnya: `` https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515, "long:1"] ``

Mimpi kecilLihat tutorial awal FMZ, untuk mengoperasikan akun bursa berjangka, konfigurasikan bursa berjangka terlebih dahulu. Kemudian tambahkan objek bursa berjangka ke robot.

Sbwffg198212/upload/asset/1ccc5603d54593dcba809.png

Sbwffg198212Saya hanya mengubah tempat-tempat ini, Tuhan bantu saya melihat di mana yang salah, saya tidak akan menambahkan obyek bursa berjangka, parameternya diatur kontrak, permanen adalah swap, nilai mata uang adalah XXX_USD, nilai U adalah XXX_USDT.

Mimpi kecilTambahkan obyek bursa berjangka, atur kontrak pada parameter, permanen adalah swap, mata uang adalah XXX_USD, U adalah XXX_USDT.

Mimpi kecilPeriksa apakah SPK dapat dihubungi tanpa memiliki stok.

Mimpi kecilCara streaming TV yang dapat dilakukan menggunakan sumber daya platform FMZ, https://www.fmz.com/digest-topic/5969.

Mimpi kecilLeverage level dapat diatur di bursa. Atau setel leverage level sebelum melakukan order dalam kode strategi.

Mimpi kecilJika tidak, Anda tidak tahu kontrak apa yang harus dioperasikan.

Mimpi kecil`` https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515, "action:amount"] `` action ditulis sebagai spk, bpk

Langit MalamSaya ingin tahu bagaimana cara mengatur SPK dan BPK di sisi TV.