五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

TradingView信號執(zhí)行實盤交易的終極方案

2022-12-08 15:25 作者:發(fā)明者量化  | 我要投稿

經(jīng)常使用TradingView的交易者都知道,TradingView可以推送消息到其它平臺。之前在文庫中也公開了一篇TradingView的信號推送策略,推送的消息內(nèi)容是寫死在請求url中的,有些不靈活。本篇我們重新用一種方式來設(shè)計一個TradingView信號執(zhí)行策略。

場景和原理

可能有新手同學(xué)看到本篇文章題目和上面的描述有些懵,沒關(guān)系!我們先把需求場景、原理闡述清楚。讓您知道我在講什么。OK,我們這就切入主題。

1、需求場景:
說了半天是要這個東西做什么工作呢?簡單說就是我們在TradingView上有很多可以選擇使用的指標、策略、代碼等,這些都可以在TradingView上直接運行,可以畫線、計算、顯示交易信號等。并且TradingView有實時的價格數(shù)據(jù)、充足的K線數(shù)據(jù)方便各種指標計算。TradingView上這些腳本代碼叫做PINE語言,唯獨一點不太方便的就是在TradingView上實盤交易。雖然在FMZ上已經(jīng)支持PINE語言,也可以實盤運行。但是也有TradingView的鐵粉還是希望以TradingView上的圖表發(fā)出的信號去下單交易,那么這個需求也可以通過FMZ來解決。所以本篇就是講解這種解決方案的具體細節(jié)。

2、原理:


簡單的流程圖

整個方案中涉及4個主體,簡單來說分別是:

涉及的主體

所以如果想這么玩就需要這幾個準備:
1、TradingView上運行的腳本,負責(zé)發(fā)送信號請求到FMZ的擴展API接口,需要TradingView賬號至少是PRO會員。
2、在FMZ上部署一個托管者程序,需要是可以訪問到交易所接口的那種(例如新加坡、日本、香港等地的服務(wù)器)。
3、在FMZ上配置當(dāng)TradingView信號發(fā)送過來時,要(下單)操作的交易所的API KEY。
4、你需要有個「TradingView信號執(zhí)行策略」,這個策略就是本篇主要講的。

TradingView信號執(zhí)行策略

上一個版本的「TradingView信號執(zhí)行策略」設(shè)計不太靈活,消息只能寫死在TradingView發(fā)送的請求的url中。假如我們希望TradingView推送消息時在Body中寫一些變量信息,這個時候就無能為力了。例如在TradingView上這樣的消息內(nèi)容:

trading view的消息設(shè)置

那么TradingView上是可以如圖中設(shè)置這樣,把消息寫在請求的Body中發(fā)送給FMZ的擴展API接口。那FMZ的這個擴展API接口如何調(diào)用呢?

FMZ的一系列擴展API接口中,我們要用到的是CommandRobot這個接口,通常是這樣調(diào)用這個接口:

這個請求url的query中的access_keysecret_key就是FMZ平臺的擴展API KEY,這里演示所以設(shè)置為xxxyyyy。那這個KEY怎么創(chuàng)建呢?在這個頁面:https://www.fmz.com/m/account,創(chuàng)建一個就可以,妥善保管,切勿泄露。

創(chuàng)建FMZ的API KEY

回歸正題,繼續(xù)說CommandRobot接口的問題。如果需要訪問的是CommandRobot接口,請求中的method就設(shè)置為:CommandRobotCommandRobot這個接口的功能就是通過FMZ平臺向某個ID的實盤發(fā)送一個交互消息,所以參數(shù)args中包含的就是實盤ID和消息,上面這個請求url例子就是向ID為186515的實盤程序,發(fā)送消息ok12345

之前是用這種方式請求FMZ擴展API的CommandRobot接口,消息只能寫死例如上面例子中的ok12345。如果消息在請求的Body中,就需要用另一種方式:

這樣請求就可以通過FMZ平臺,發(fā)送請求中Body的內(nèi)容作為交互消息給ID為130350的實盤了。如果TradingView上的消息設(shè)置為:{"close": {{close}}, "name": "aaa"},那么ID為130350的實盤就會收到交互指令:{"close": 39773.75, "name": "aaa"}

為了讓「TradingView信號執(zhí)行策略」收到交互指令時能正確理解TradingView發(fā)送的這個指令,要提前約定一下消息格式:

策略設(shè)計成了多交易所架構(gòu),所以可以在這個策略上配置多個交易所對象,也就是可以控制多個不同賬戶的下單操作。只用在信號結(jié)構(gòu)中Exchange指定要操作的交易所即可,設(shè)置1就是要讓這個信號操作第一個添加的交易所對象對應(yīng)的交易所賬戶。如果要操作的是現(xiàn)貨ContractType設(shè)置為spot,期貨就寫具體合約,例如永續(xù)合約寫swap。市價單價格傳-1就可以了。Action設(shè)置對于期貨、現(xiàn)貨、開倉、平倉都是有區(qū)別的,不能設(shè)置錯。

接下來就可以設(shè)計策略代碼了,完整的策略代碼:

策略參數(shù)和交互:


參數(shù)和交互設(shè)計

「TradingView信號執(zhí)行策略」完整策略可以在FMZ策略廣場搜索到。


簡單測試

策略運行前要配置好交易所對象,在策略參數(shù)中設(shè)置好「FMZ平臺的AccessKey」、「FMZ平臺的SecretKey」這兩個參數(shù),不要設(shè)置錯。運行起來顯示:


FMZ策略初始運行時輸出的信息

會依次打印出:在TradingView上需要填寫的WebHook地址、支持的Action指令、消息格式。重要的是WebHook地址:

直接復(fù)制粘貼寫在TradingView上對應(yīng)位置就可以。

如果想模擬TradingView發(fā)送信號,可以點擊策略交互上的TestSignal按鈕:

策略的交互按鈕,可以用來模擬測試信號

這個策略會自己發(fā)送一個請求(模擬TradingView發(fā)送信號請求),調(diào)用FMZ的擴展API接口,給策略自己發(fā)送一個消息:

當(dāng)前策略就會收到另一個交互消息,并且執(zhí)行:


策略收到trading view發(fā)送的信號

并且下單交易。

實際場景中使用TradingView的測試

使用TradingView測試需要TradingView賬號是Pro級別,測試之前有一些前置小知識需要簡單講解一下。

以一個簡單的PINE腳本(TradingView上隨便找的修改了一下)為例子


1、PINE腳本可以在腳本發(fā)出下單指令時附帶一些信息

以下這些是占位符,例如我在報警中「消息」框中寫入{{strategy.order.contracts}},那么在觸發(fā)下單時就會發(fā)送消息(根據(jù)報警上的設(shè)置,郵件推送、webhook url請求、彈窗等),消息中就會包含這次執(zhí)行訂單的數(shù)量。

{{strategy.position_size}}?- 返回Pine中相同關(guān)鍵字的值,即當(dāng)前倉位的大小。
{{strategy.order.action}}?- 為執(zhí)行的訂單返回字符串“buy”或“sell”。
{{strategy.order.contracts}}?- 返回已執(zhí)行訂單的合約數(shù)量。
{{strategy.order.price}}?- 返回執(zhí)行訂單的價格。
{{strategy.order.id}}?- 返回已執(zhí)行訂單的ID(在生成訂單的函數(shù)調(diào)用之一中用作第一個參數(shù)的字符串:strategy.entry,strategy.exit或strategy.order)。
{{strategy.order.comment}}?- 返回已執(zhí)行訂單的注釋(在生成訂單的函數(shù)調(diào)用之一中的comment參數(shù)中使用的字符串:strategy.entry、strategy.exit、或strategy.order)。如果未指定注釋,則將使用strategy.order.id的值。
{{strategy.order.alert_message}}?- 返回alert_message參數(shù)的值,該參數(shù)可以在調(diào)用用于下訂單的函數(shù)之一時在策略的Pine代碼中使用:strategy.entry、strategy.exit、或strategy.order。僅在Pine v4中支持此功能。
{{strategy.market_position}}?- 以字符串形式返回策略的當(dāng)前持倉:“l(fā)ong”、“flat”、或 “short”。
{{strategy.market_position_size}}?- 以絕對值(即非負數(shù))的形式返回當(dāng)前倉位的大小。
{{strategy.prev_market_position}}?- 以字符串形式返回策略的上一個持倉:“l(fā)ong”、“flat”、或 “short”。
{{strategy.prev_market_position_size}}?- 以絕對值(即非負數(shù))的形式返回前一個倉位的大小。

2、結(jié)合「TradingView信號執(zhí)行策略」構(gòu)造消息

3、讓TradingView根據(jù)這個PINE腳本運行時發(fā)出信號,需要在TradingView上加載這個腳本時設(shè)置報警

trading view上設(shè)置webhook url報警

當(dāng)TradingView上的PINE腳本觸發(fā)交易動作,就會發(fā)送webhook url請求。


trading view圖表上的交易信號
trading view交易信號觸發(fā)時發(fā)送的報警信息

FMZ的實盤就會執(zhí)行這個信號。

FMZ上實盤策略收到信號,執(zhí)行操作
某cex交易所的訂單記錄

視頻地址

B站:https://www.bilibili.com/video/BV1BY411d7c6/

文章中的代碼僅供參考,實際使用可以自行調(diào)整、擴展。

TradingView信號執(zhí)行實盤交易的終極方案的評論 (共 條)

分享到微博請遵守國家法律
长子县| 龙门县| 凭祥市| 白城市| 安达市| 水富县| 长沙县| 长乐市| 松阳县| 永靖县| 本溪市| 云龙县| 镇江市| 新平| 六安市| 富锦市| 延长县| 长顺县| 前郭尔| 浦东新区| 永春县| 琼海市| 富阳市| 仙游县| 山西省| 临沂市| 博爱县| 闽清县| 湘潭县| 湘乡市| 博客| 康保县| 普安县| 乡城县| 新密市| 丰城市| 宝丰县| 双牌县| 昆明市| 芦溪县| 若羌县|