掃描下載 Gate App
qrCode
更多下載方式
今天不再提醒

自定義機器人策略(心得)(入門經驗)(教程)(Custom Bot)

自定義機器人策略(心得)(入門經驗)(教程)(Custom Bot):

作爲長期深耕幣圈的交易員,理性的交易應該是要放在重中之重的位置,用機器人的判斷可以脫離更多情緒面的操控失策。

Gate自定義機器人(Gate Custom Bot)適合純粹的交易手對價格行情波動的敏感和判斷,或對風控有特別止盈止損要求的交易員,可以簡單以此作出判斷和操作,亦免去繁瑣復雜的主流python量化交易代碼編寫。

於我覺得,很多人都有剛需去運行簡單的自定義機器人,至少在止盈損上會很有幫助,不用全天候盯盤,極端行情自行應對等,甚至可自行實現全機器人或半機器人操作,即大方向的上下車可以靠自己(啓動或停止),在止盈損和再次建倉時可以靠機器人,如下面簡單示例代碼只需刪除規則2中一二行的#BTC仓位大于0张、#24小時低,就能輕鬆實現半機器人操作的止盈損和再次建倉。

以下,這是我在編寫策略代碼這麼久總結的基礎心得經驗,盡可能的爲大家對Gate自定義機器人做到字間意明一步入門:

1.and後面換行照樣能用,方便代碼的日常編寫和維護。

2.and和or前面的空格可以去掉,一般遇到數字後面留空格就可。 (節省代碼空間)

3.一般函數代碼內的空格也可以去掉,創建規則變量時,可以細看網頁右上角的函數使用說明。 (節省代碼空間)(規則和變量創建)

4.代碼and和or,每一個and判斷結束才會運行下一個and判斷,當這行and不符合條件就會跳到下一個or,and是"以及"的意思,or是"或者"的意思。 (運行速度提升)

5.代碼運行速度提升,min/max這類時間長的幾天以上判斷建議放在代碼最後面,min和max這類函數數值最長不建議超過10000分鍾也就是約7天,日常使用3天內合適,不然會運行非常緩慢。放在最後的判斷,以降低調用的可能。 (運行速度提升)

6.創建規則的輸入框下面若提示false,證明代碼輸入有誤。 (規則和變量創建)

7.代碼太多可以收進變量上運行調用,變量順序一般放在規則前面,變量調用爲get_value(“該變量名”)。 (節省代碼空間)(規則和變量創建)

8.涉及min和max函數一般用到>=,<=號,涉及純粹價格price一般用到>,<號。

9.自定義機器人目前仍需要在網頁上創建和跟單,建議電腦或平板上操作,但簡單的編輯或查看可以手機瀏覽器上實現。 (規則和變量創建)

10.簡短的代碼大約每10秒運行一次,運行日志容易看出運行速度。 (運行速度提升)

11.價格函數判斷中常用spot結尾的現貨價格,感覺比usdt結尾的期貨價格更加實時和功能區分,也避免看代碼疲勞

12.建議每次較大修改和添加代碼都在#後面寫明原因和日期,以便日後再次查看時直觀明白這行代碼的用途

13.關於交易手續費,目前按Gate平台正常的VIP級別合約扣除手續費和結算資金費率,希望後續Gate平台會有優惠政策能推動自定義機器人的進展。

#=======

#=======

最簡單示例代碼:看多行情,BTC2小時高上車,BTC24小時低下車 (帶+20%止盈,-20%止損)

1.規則名稱 inbtc:買入BTC 條件: position_net(“BTC_USDT”,“usdt”)==0 and max_price(“BTC_USDT”,120,“spot”)<=max_price(“BTC_USDT”,1,“spot”)and price(“BTC_USDT”,0,“spot”)>100000

(本文代碼注意事項:若代碼中存在中文“ ”雙引號,皆是網頁的顯示問題,請自行替換回英文的" "雙引號, 否則輸入框會提示false錯誤。)

每行說明: #BTC倉位等於0張, #BTC2小時高上車,現貨最高價120分鍾<=1分鍾, #BTC價格大於100000

規則執行邏輯: BTC/USDT永續合約:10倍 價格:市價 數量(張數):10 #張數後續可根據資金量自行設定,一般建議在2~3成(10倍1張的本金=當前BTC價格*0.00001U) 全部成交或取消:(勾選) 輪次:(執行完成的次數,一般勾選爲不限次數,初期建議10次以確定運行正常,然後逐步修改放寬到無限次,但非常容易忘記,導致機器人成功買入10次後不再開倉,需謹記)

2.規則名稱 outbtc:賣出持倉BTC 條件: position_net(“BTC_USDT”,“usdt”)>0 and min_price(“BTC_USDT”,1440,“spot”)>=min_price(“BTC_USDT”,1,“spot”)or position_net(“BTC_USDT”,“usdt”)>0 and max_price(“BTC_USDT”,6,“spot”)>max_price(“BTC_USDT”,5,“spot”)and position_avg_open_price(“BTC_USDT”,“usdt”)*1.02 < index_price(“BTC_USDT”,0,“usdt”)or position_net(“BTC_USDT”,“usdt”)>0 and position_avg_open_price(“BTC_USDT”,“usdt”)*0.98>index_price(“BTC_USDT”,0,“usdt”)

(本文代碼注意事項:若代碼中存在中文“ ”雙引號,皆是網頁的顯示問題,請自行替換回英文的" "雙引號, 否則輸入框會提示false錯誤。)

每行說明: #BTC倉位大於0張, #24小時低,現貨最新價格;or或者 #BTC倉位大於0張, #判斷新高6分鍾大於5分鍾,喫漲幅,避免分鍾級別漲中過早止盈下車(強烈建議保留或只微調), #+20%止盈,*1.02爲+20%盈利;or或者 #BTC倉位大於0張, #-20%止損,position_avg_open_price(“BTC_USDT”,“usdt”)爲合約開倉勻價,*0.98爲 -20%止損,index_price(“BTC_USDT”,0,“usdt”)爲合約指數價格; #注:每個or後面都是新的部分,需要寫上判斷BTC倉位大於0張,以避免無倉位時仍然空刷和過多調用判斷引起運行緩慢 #注:and前面是數字時需要留一個空格 #注:最後一行的尾部無需加and或or #注:倉位和止盈損建議,日常幣種2~ 3成倉足夠適用,總體盡可能不要超過3成倉。新幣和小幣種波動特別大的建議調低到1~2成倉,並止盈損相應增大到40%~30%以加大容錯率。 #注:關於焦慮,偶爾會存在慢漲行情中畫門引起倒虧的損耗,這是無解局作爲必然損耗,總體會在另一些抄底上回報回來,無需焦慮。

規則執行邏輯: BTC/USDT永續合約:10倍 價格:市價 數量(張數):position_net(“BTC_USDT”,“usdt”) #此賣出數量函數爲BTC當前持有倉位,有多少倉賣多少 全部成交或取消:(勾選) 只減倉:(勾選) 輪次:(不限次數)

執行順序:inbtc,outbtc.

以上爲基礎代碼,添加完成即可運行,運行後等待幣價出現2小時新高會上車買入,在主界面查看運行情況。

以上用到到網址:

添加規則:https://www.gate.com/zh/strategybot/becomeStrategyMaker/newCustomize/rule 添加執行順序和運行:https://www.gate.com/zh/strategybot/becomeStrategyMaker/newCustomize/strategyList 主界面,運行的機器人和數據:https://www.gate.com/strategybot/underwayStrategy 函數使用說明:https://www.gate.com/zh/strategybot/becomeStrategyMaker/newCustomize/help

#=======

#=======

進階,稍微復雜點或後續,可以將上面相應代碼修改爲:

1.市價改限價: 規則inbtc,買入市價可以設置爲限價(賣10價):ask_price(“BTC_USDT”, 10, “usdt”) 規則outbtc,賣出市價可以設置爲限價(買10價):bid_price(“BTC_USDT”, 10, “usdt”)

2.規則inbtc的數量(張數)(改3成倉)(爲機器人現貨資金+合約資金的3成倉-當前倉位,其中floor()內爲向下取整數,如1.2爲1): floor((balance(“usdt”)+collateral(“usdt”)) * 0.3/price(“BTC_USDT”,0,“spot”) * 100000)-position_net(“BTC_USDT”,“usdt”) 3成倉代碼拆解說明: #機器人(現貨資金+合約資金)的3成除以幣價乘以100000得出3成倉的張數,後面的 * 100000每種幣都稍微不同計算方法一般去合約上填1張能判斷出來(ETH是* 1000,SOL是*10),(balance(“usdt”)+collateral(“usdt”))*0.3/price(“BTC_USDT”,0,“spot”)*100000 #其中floor( )內爲向下取整數,如1.2爲1,因爲張數要按整數的開,追求規範一般建議用上 #減去當前已有倉位,避免過量開倉,-position_net(“BTC_USDT”,“usdt”) #注:機器人現貨資金+合約資金,是通用的,初始全在現貨,開倉後會自動調過已開資金去合約資金,網頁點開進行中的機器人能看到當前變化倉位情況。

3.可以加個雙變量,以熟悉變量使用:將btc判斷大於100000放進變量判斷,當get_value(“btc”)==get_value(“btc2”)時執行: 添加變量(用到網址):https://www.gate.com/zh/strategybot/becomeStrategyMaker/newCustomize/ruleList

變量名 btc: 條件: get_value(“btc”)!=get_value(“btc2”)and price(“BTC_USDT”,0,“spot”)>100000 變量值:get_value(“btc2”)

每行說明: #當變量btc!=btc2時 (!=爲不等於) #btc價格大於100000 #變量值跟隨btc2的變量值(注:變量初始運行時都是爲0,有了寫入後才變化)

變量名 btc2: 條件: get_value(“btc”)==get_value(“btc2”)and price(“BTC_USDT”,0,“spot”)<=100000 變量值:get_value(“btc”)+1

每行說明: #當變量btc==btc2時 (==爲等於) #btc價格小於等於100000 #變量值爲變量btc加1

這樣得出結果: get_value(“btc”)==get_value(“btc2”)時,BTC價格大於100000; get_value(“btc”)!=get_value(“btc2”)時,BTC價格小於100000。

將變量加入到規則 inbtc是: position_net(“BTC_USDT”,“usdt”)==0 and max_price(“BTC_USDT”,120,“spot”)<=max_price(“BTC_USDT”,1,“spot”)and get_value(“btc”)==get_value(“btc2”)

執行順序:btc,btc2,inbtc,outbtc.

運行後,運行日志上會反應代碼運行情況,和變量值的變化。

(本文代碼注意事項:若代碼中存在中文“ ”雙引號,皆是網頁的顯示問題,請自行替換回英文的" "雙引號, 否則輸入框會提示false錯誤。)

#=======

#=======

免責聲明:上述所有內容皆爲經驗總結所得,以交流學習爲目的,其中的準確性、完整性不作保證,內容僅供參考,不作爲任何操作和投資建議,請自行斟酌分析和學習!

PS:暫時就寫到這裏,如果看的人多或者互動效果理想,可以進一步寫點更多更復雜的代碼示例。

BY:暴力考拉,關注加點讚分享! 轉載注明出處:暴力考拉的Gate動態 https://www.gate.com/zh/profile/BRUXEwQc

BTC0.1%
ETH0.63%
SOL0.74%
查看原文
最後編輯於2025-10-24 14:52:47
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 1
  • 轉發
  • 分享
留言
0/400
暴力考拉,V Koalavip
· 10-24 14:39
機器人輔助,是未來交易的大趨勢。
查看原文回復0
交易,隨時隨地
qrCode
掃碼下載 Gate App
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)