💥 Gate 广场活动:#发帖赢代币TRUST 💥
在 Gate 广场发布与 TRUST 或 CandyDrop 活动 相关的原创内容,即有机会瓜分 13,333 枚 TRUST 奖励!
📅 活动时间: 2025年11月6日 – 11月16日 24:00(UTC+8)
📌 相关详情:
CandyDrop 👉 https://www.gate.com/zh/announcements/article/47990
📌 参与方式:
1️⃣ 在 Gate 广场发布原创内容,主题需与 TRUST 或 CandyDrop 活动相关;
2️⃣ 内容不少于 80 字;
3️⃣ 帖子添加话题: #发帖赢代币TRUST
4️⃣ 附上任意 CandyDrop 活动参与截图。
🏆 奖励设置(总奖池:13,333 TRUST)
🥇 一等奖(1名):3,833 TRUST / 人
🥈 二等奖(3名):1,500 TRUST / 人
🥉 三等奖(10名):500 TRUST / 人
📄 注意事项:
内容必须原创,禁止抄袭或灌水;
获奖者需完成 Gate 广场身份认证;
活动最终解释权归 Gate 所有。
自定义机器人策略(心得)(入门经验)(教程)(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