幫助中心
交易機器人
CTA-專家機器人

自定義策略交易指南

2025-07-10 UTC+8
36826 閱讀
9

1. 什麼是自定義策略?

自定義策略是⼀個可供用戶制定交易規則的策略。適用於所有用戶,對於機器人新用戶,自定義策略可以組合簡單的交易規則,如“當GT現貨價格⾼於10 USDT時,以10 USDT的價格賣出所持有的GT”。

對於專業機器人用戶,自定義策略也能滿足複雜的交易邏輯,如“當BTC現貨價格⾼於50000 USDT同時 BTC的合約價格與指數價格⽐例⾼於1時,賣出4張BTC同時以51000 USDT的價格買入0.01個BTC。”

2. 自定義策略參數配置說明

新建規則 規則主要由條件和執行邏輯兩部分組成。

條件 條件是用於觸發執行邏輯⽽預設的特定條件,用戶可以通過Gate現有的市場數據、策略的資金數據, 以及平臺提供的數學函數來組合出滿足您需求的條件。 點擊選項欄右側圖標可選擇提供的所有數據: 點擊“函數適用說明”可查看所有數據的具體使用⽅法

舉例:在BTC現貨價格超過50000 USDT時觸發該規則, 條件為: price(“BTC_USDT”, 0, "spot")>50000 可以滿足更為複雜的策略, ⽐如需要多個條件: 1.當BTC_USDT合約價格低於50000 USDT

2.BTC_USDT合約價格對於指數價格的溢價⼤於1

3.BTC_USDT倉位為0

條件為: price(“BTC_USDT”, 0, "usdt") < 50000 and premium(“BTC_USDT”, 0, "usdt") > 1 and (position_net(“BTC_USDT”, "usdt") == 0)

執行邏輯

執行邏輯用於預設當條件被觸發後執行什麼委託,用戶可以通過Gate提供的執行邏輯執行現貨、合約 的委託以及創建屬於⾃⼰的函數(變量)。類型用於選擇交易類型,現貨交易或合約交易;交易市場用於 選擇策略交易的市場,⼀個規則支持多個執行邏輯選擇不同的市場,最多可選擇20個市場;委託類型提供多種委託,限價、市價、止盈、止損。

舉例:在BTC現貨價格超過50000 USDT後賣出BTC,執行邏輯為:

在BTC合約價格低於5000 USDT後5倍開多倉,執行邏輯為:

⼀個規則支持多個執行邏輯⼀起執行,最多支持20個執行邏輯⼀起執行。

新建變量

變量主要由條件和變量值兩部分組成,用戶可以存儲任意變量,使用時只需通過get_value("variable_name")拿到變量variable_name的值。 條件 條件是用於觸發計算變量值⽽預設的特定條件,用戶可以通過Gate現有的市場數據、策略的資金數據,以及平臺提供的數學函數來組合出滿足您需求的條件。 點擊選項欄右側圖標可選擇提供的所有數據: 點擊“函數適用說明”可查看所有數據的具體使用⽅法 舉例:同規則中條件使用的⽅法。

變量值 用於預設當條件被觸發後存儲什麼樣的變量值,用戶可以通過Gate提供的數據創建變量值。

舉例:⼀直獲取現貨BTC的EMA10分鐘指標,變量值為: 每次觸發後變量值增加10,變量值為:

添加變量或規則時,若該變量值或條件及執行邏輯中引用了其他變量,則需同時添加該變量,否則無法獲取到正確的變量值或條件或執行邏輯。 執行順序 自定義策略每10秒循環⼀次按執行順序從低到⾼執行該策略中所有的規則與變量,若變量與變量或規則間有引用關係則需注意先添加被引用的變量,否則將無法得到用戶預設的策略效果。

舉例:如上圖策略,ema-BTC在buy BTC、sell BTC中作為條件,滿足條件時該策略需先買入BTC再賣出BTC,則該策略的添加順序為ema-BTC、buy BTC、sell BTC。

保存並運行

1.用戶可以選擇“保存”,將新建的策略保存⾄策略庫,以後再運行策略。運行策略時只需在策略庫中點擊即可運行策略,保存在策略庫中的策略可以多次運行。 2.也可以選擇“保存並運行”,將新建的策略保存⾄策略庫並且投入資金運行該策略。 啟用與禁用 創建策略後,默認該策略中的規則與變量為啟用狀態,編輯策略時,可以對規則與變量禁用或啟用,點擊“保存”後操作立即生效,直接影響進行中的策略。

1.禁用規則與變量時,“禁用”為禁用該策略中的此規則或變量,“全部禁用”為禁用所有該策略中的此規則或變量。

自定義策略示例

1.區間突破策略 本例著重說明如何使用自定義規則創建策略

開倉 多倉:突破最近60分鐘的高點 空倉:跌破最近60分鐘的低點

平倉 平多:跌破近10分鐘的低點 平空:突破近10分鐘的高點

1.1 新建規則

開多倉規則 -long position opening conditions

條件

price(“BTC_USDT”, 0, “usdt”) > max_price(“BTC_USDT”, 60, “usdt”) and order_collateral(“usdt”) ==0 and position(“BTC_USDT”, “usdt”) == 0

(1)price(“BTC_USDT”, 0, “usdt”) > max_price(“BTC_USDT”, 60, “usdt”) 此條件表示當前最新BTC永續合約價格大於最近60分鐘BTC永續合約的最高價。

(2)and order_collateral(“usdt”) ==0 此條件表示當前策略沒有掛單,order_collateral為預設函數,表示獲取未完成訂單的保證金,如果該函數返回值為0,表示目前策略沒有進行中的掛單。

(3)and position(“BTC_USDT”, “usdt”) == 0 此條件表示策略當前倉位為0,position為預設函數,返回指定市場下,策略當前倉位數量。

執行邏輯

類型:合約交易;交易市場:BTC/USDT 永續合約;委託類型:限價;槓桿倍數:5X;方向:做多;限價:bid_price(“BTC_USDT”, 1, “usdt”);數量:1。

開空倉規則 -short position opening conditions

條件

price(“BTC_USDT”, 0, “usdt”) < min_price(“BTC_USDT”, 60, “usdt”) and order_collateral(“usdt”) ==0 and position(“BTC_USDT”, “usdt”) == 0

(1)price(“BTC_USDT”, 0, “usdt”) < min_price(“BTC_USDT”, 60, “usdt”) 此條件表示當前最新BTC永續合約價格低於最近60分鐘BTC永續合約的最低價。

(2)and order_collateral(“usdt”) ==0 此條件表示當前策略沒有掛單。

(3)and position(“BTC_USDT”, “usdt”) == 0 此條件表示策略當前倉位為0 。

執行邏輯

類型:合約交易;交易市場:BTC/USDT 永續合約;委託類型:限價;槓桿倍數:5x;方向:做空;限價:ask_price(“BTC_USDT”, 1, “usdt”);數量:1。 平多倉規則 -close long position

條件

price(“BTC_USDT”, 0, “usdt”) < min_price(“BTC_USDT”, 10, “usdt”) and order_collateral(“usdt”) ==0 and position(“BTC_USDT”, “usdt”) > 0

(1)price(“BTC_USDT”, 0, “usdt”) < min_price(“BTC_USDT”, 10, “usdt”) 此條件表示當前最新BTC永續合約價格低於最近10分鐘BTC永續合約的最低價。

(2)and order_collateral(“usdt”) ==0 此條件表示策略當前沒有掛單。

(3)and position(“BTC_USDT”, “usdt”) > 0 此條件表示策略之前已經建立倉位,在此基礎上進行平倉操作。

執行邏輯

類型:合約交易;交易市場:BTC/USDT 永續合約;委託類型:限價;槓桿倍數:5x;方向:做空;限價:ask_price(“BTC_USDT”, 1, “usdt”);數量:1。

平空倉規則 -close short position

條件

price(“BTC_USDT”, 0, “usdt”) > max_price(“BTC_USDT”, 10, “usdt”) and order_collateral(“usdt”) ==0 and position(“BTC_USDT”, “usdt”) < 0

(1)price(“BTC_USDT”, 0, “usdt”) > max_price(“BTC_USDT”, 10, “usdt”) 此條件表示當前最新BTC永續合約價格高於最近10分鐘BTC永續合約的最高價。

(2)and order_collateral(“usdt”) ==0 此條件表示策略當前沒有掛單。

(3)and position(“BTC_USDT”, “usdt”) < 0

此條件表示策略之前已經建立倉位,在此基礎上進行平倉操作。

執行邏輯

類型:合約交易;交易市場:BTC/USDT 永續合約;委託類型:限價;槓桿倍數:5x;方向:做多;限價:ask_price(“BTC_USDT”, 1, “usdt”);數量:1。

1.2創建策略

按照先開倉再平倉的執行順序依次添加“long position opening conditions” 、“short position opening conditions”、“close long position”、“close short position”這些規則。

2.極值突破策略

本例著重說明如何使用自定義變量創建策略 開多倉/平空倉 其中:price(t)表示當前時刻的最新價格 close(t-1)表示上一時刻的收盤價格 開空倉/平多倉

2.1 新建變量

變量名稱: range 條件 true 變量值 max_price(“BTC_USDT”, 10, “usdt”) - min_price(“BTC_USDT”, 10, “usdt”)

2.2 新建規則

1.開多倉規則-open long

條件

price(“BTC_USDT”, 0, “usdt”)>price(“BTC_USDT”, 1, “usdt”)+get_value(“range”)*0.5 and order_collateral(“usdt”) ==0 and position(“BTC_USDT”, “usdt”) == 0

(1)price(“BTC_USDT”, 0, “usdt”)>price(“BTC_USDT”, 1, “usdt”)+get_value(“range”)0.5 此條件表示多單開倉條件 : price(t) > Close(t-1) + 0.5range 其中自定義變量“range”,通過get_value函數訪問。

(2)and order_collateral(“usdt”) ==0 此條件表示策略當前沒有進行中的掛單。

(3)and position(“BTC_USDT”, “usdt”) == 0 此條件表示策略沒有已開倉位。

執行邏輯

類型:合約交易;交易市場:BTC/USDT 永續合約;委託類型:限價;槓桿倍數:5x;方向:做多;限價:bid_price(“BTC_USDT”, 1, “usdt”);數量:1。

2.開空倉規則-open short

條件

price(“BTC_USDT”, 0, “usdt”)< price(“BTC_USDT”, 1, “usdt”) - get_value(“range”)*0.5 and order_collateral(“usdt”) ==0 and position(“BTC_USDT”, “usdt”) == 0

(1)price(“BTC_USDT”, 0, “usdt”)< price(“BTC_USDT”, 1, “usdt”) - get_value(“range”)*0.5 此條件表示開空倉條件: 其中自定義變量“range”,通過get_value函數訪問。

(2)and order_collateral(“usdt”) ==0 此條件表示策略當前沒有進行中的掛單。

(3)and position(“BTC_USDT”, “usdt”) == 0 此條件表示策略沒有已開倉位。

執行邏輯

類型:合約交易;交易市場:BTC/USDT 永續合約;委託類型:限價;槓桿倍數:5x;方向:做空;限價:ask_price(“BTC_USDT”, 1, “usdt”);數量:1。 3. 平多倉規則-close long

條件

price(“BTC_USDT”, 0, “usdt”) 0

(1)price(“BTC_USDT”, 0, “usdt”)< price(“BTC_USDT”, 1, “usdt”) - get_value(“range”)*0.5

此條件表示平多倉條件: 其中自定義變量“range”,通過get_value函數訪問。

(2)and order_collateral(“usdt”) ==0 此條件表示策略當前沒有進行中的掛單。

(3)and position(“BTC_USDT”, “usdt”) > 0 此條件表示當前已有多倉倉位,在此基礎上進行平倉操作。

執行邏輯

類型:合約交易;交易市場:BTC/USDT 永續合約;委託類型:限價;槓桿倍數:5x;方向:做空;限價:ask_price(“BTC_USDT”, 1, “usdt”);數量:1。

4.平空倉規則-close short

條件

price(“BTC_USDT”, 0, “usdt”)>price(“BTC_USDT”, 1, “usdt”)+get_value(“range”)*0.5 and order_collateral(“usdt”) ==0 and position(“BTC_USDT”, “usdt”) < 0

(1)price(“BTC_USDT”, 0, “usdt”)>price(“BTC_USDT”, 1, “usdt”)+get_value(“range”)*0.5

此條件表示平空倉條件 :

其中自定義變量“range”,通過get_value函數訪問。

(2)and order_collateral(“usdt”) ==0 此條件表示策略當前沒有進行中的掛單。

(3)and position(“BTC_USDT”, “usdt”) < 0 此條件表示當前已有空倉倉位,在此基礎上進行平倉操作。

執行邏輯

類型:合約交易;交易市場:BTC/USDT 永續合約;委託類型:限價;槓桿倍數:5x;方向:做多;限價:bid_price(“BTC_USDT”, 1, “usdt”);數量:1。

2.3 創建策略

在使用自定義變量的情況下,應將自定義變量的執行順序排在規則之前,例如“range”自定自定義變量的執行順序為1,而開平倉規則的執行順序為2到5。

3.如何創建自定義策略?

說明:自定義策略目前只支持網頁端創建。 交易機器人 - 創建新機器人 - 創建機器人 - 自定義機器人 - 設置參數 - 創建

本產品最終解釋權歸Gate所有。 如需進一步幫助,請訪問Gate官方支持頁面或聯繫我們的客戶服務團隊。

立即註冊,最高可領 $10,000 迎新獎勵!
signup-tips