作者knuckles (那克斯)
看板DigiCurrency
标题[交易] 使用FTX量化空间定投BTC
时间Sat Sep 25 19:23:34 2021
在BTC一直跌的时候,最好的买进策略应该就是定投了
在派网有极速定投机器人可以用,不过功能有限
如果想在定投策略上再加点变化的话
也可以使用FTX上的量化空间来做
但量化空间很多人不会用,网路上教学也很少
所以写了一篇教学大家参考看看
点此看图文笔记版:
https://hackmd.io/@knuckles/SyY8clYmt
### 在FTX开一个子帐户
先开一个子帐户专门来做BTC定投,比较好计算成本与收益
https://i.imgur.com/8ryqIRq.png
名称随意输入个「BTC」
https://i.imgur.com/l7newMy.png
切换至这个子帐户後,点上方的选单,选「量化空间」
https://i.imgur.com/ppN4Vtb.png
每个子帐户的量化空间都是分开的
点「建立新策略」
https://i.imgur.com/XWmJz7V.png
### 设定下单条件
https://i.imgur.com/peKAcXX.png
名称随意写个 buy BTC
条件不限的话就输入 true
想要在45000以下才买的话可以输入 price("BTC/USD")<=45000
要限制只买到0.1颗BTC的话,可以加上 and balance("BTC")<=0.1
balance("BTC") 代表这个子帐号有多少BTC现货的意思
若想要买到 USD 剩下 100 就停止的话,加上 and balance("USD")>100
例如想要价格跌到45000以下才买,买到最多0.1颗BTC,且买到USD剩下100为止,输入:
price("BTC/USD")<=45000 and balance("BTC")<=0.1 and balance("USD")>100
https://i.imgur.com/TExQQJD.png
### 设定订单数量与价格
https://i.imgur.com/KcYK2L1.png
执行逻辑,使用「下自定义订单」
选「限价委托」「买入」「BTC/USD」
如果有质押25FTT,使用限价委托可以免手续费
订单数量,输入每次想买几颗BTC
要买0.0001颗的话输入「0.0001」,如果币价是$45000的话,买0.0001颗就是$4.5
若要用10usd来买,输入「10/price("BTC/USD")」
注意BTC最小下单金额是0.0001,设定小於0.0001的话会下单失败
限价,要挂买单第一笔的话,输入「bid_price("btc/USD")」
勾「Post Only」可限定只要用挂单买入,如果挂单时设定的价位忽然变卖单价了,
就会取消这笔交易,避免使用市价买入而被抽手续费
勾「取消并下新订单」,自动改挂单到买单第一笔,每次执行这个策略时,
若之前挂的买单因为上涨没买到,就取消该订单,重新挂到新的买单第一笔
使用限价委托,要在挂单後BTC价格再下来一点才会买到,
如果挂单後BTC价格就涨上去了那就会没买到,
如果要确保可以买到的话,可以改用市价委托,但会有手续费且可能会滑价
### 设定多久执行一次
https://i.imgur.com/rjHX3HI.png
点增加执行逻辑,Type选「暂停策略」
设定想要每隔多久再执行一次,例如每15分钟执行一次
如果没有设定暂停策略的话,会每15秒执行一次
输入好後点「保存并运行」就会开始执行了
## 计算平均购买价格
想要计算平均购买价格的话,因为量化空间只会帮你挂单,不会知道什麽时候成交,
所以只能依照花了多少USD,以及共买了多少BTC来计算
平均购买价格 = (一开始投入的USD - 剩下的USD) / 买了多少BTC
### 建立变数
新增一个策略,专门用来新增变数
先新增变数 average_price,用来记录平均购买价格
https://i.imgur.com/G2rCEq6.png
策略名称输入「set variable」
条件输入「true」
Type选「设定变量」
变量名称输入「average_price」
变量值输入「0」
点「增加执行逻辑」
https://i.imgur.com/RgQjWaF.png
Type选「暂停策略」
时间选5000天,因为没有永远暂停的选项所以随便设一个很久的时间就好
点「保存并运行」,过一会就会在变量那边看到 average_price 了
https://i.imgur.com/qozE3mD.png
再建立一个变数 investment,用来记录总投资额
直接修改 set_variable 策略,将变量名称改为 investment,
变量值改为这个子帐户放的USD数量,点「保存并运行」,
过一会就会看到有两个变数了
https://i.imgur.com/Qr1P8YW.png
### 计算平均购买价格
新增一个策略 count_average_price
https://i.imgur.com/GsQu9To.png
条件输入 balance("BTC")>0
有买了BTC後才开始计算,也避免计算时产生除以0的错误
执行逻辑使用「设定变量」,变量名称「average_price」
变量值「(get_variable("investment") - balance("USD")) / balance("BTC")」
其中使用 get_variable("investment") 取得之前设定的投资额变数的值
(get_variable("investment") - balance("USD")) 代表已花了多少 USD
增加执行逻辑
https://i.imgur.com/rjHX3HI.png
使用暂停策略,每15分钟再计算一次就好了,避免日志上产生一堆执行记录
点「保存并运行」
在变量这边,就会看到计算好的平均购买成本了
https://i.imgur.com/VESC3Xk.png
如果之後有转更多USD进来这个子帐户,只要点 investment 变数右边的编辑符号,
将值改成新的投资额即可
https://i.imgur.com/6uHCv4a.png
### 将均价设为购买条件
有计算好的平均购买价後,就可以用 get_variable 取得均价
把下单条件改为现价低於均价才下单
price("BTC/USD") < get_variable("average_price")
https://i.imgur.com/g6X73rp.png
## 设定跌愈多买愈多
有算出均价後,若想要跌得离均价愈多时,下单的数量就设定多一点,
让均价可以比较快降下来,例如现价为均价跌1%时,下单数量就乘2,
跌2%就乘3,以此类推,可将订单数量设为:
0.0001*(1+( (get_variable("average_price")-price("BTC/USD")) /
get_variable("average_price") )*100)
https://i.imgur.com/ZKRHqRt.png
意思就是,最小订单价 * (1+ ((均价 - 现价) / 均价) *100 )
其中 ((均价 - 现价) / 均价) *100 为下跌的百分比,
要再+1避免只跌0.9%时,最小订单数量*0.9 会无法下单
如果觉得这样会一次买太多钱不够的话,可以把後面的100改小一点
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.34.239.204 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DigiCurrency/M.1632569018.A.3D6.html
1F:推 TellthEtRee: 谢谢分享 09/25 20:04
2F:推 john371911: 分享推。 09/25 20:20
3F:推 kenuser: 推教学 09/25 20:27
4F:推 cjormp904: 已收藏 09/25 20:28
5F:推 fokchiwai199: 推 09/25 21:09
6F:推 eric0221: 教学推 09/25 21:17
7F:推 stanleychao: 感谢 09/25 21:19
8F:推 vm3cl4bp6: 推 09/25 22:37
9F:推 xswrew: 感谢分享 09/25 22:47
10F:推 chaogold: 谢谢分享 09/25 23:16
11F:推 hsuehroger: 感谢分享 09/26 00:09
12F:推 akaqgirl: 谢分享 09/26 00:12
13F:推 ddd357357: 详细推 09/26 01:20
14F:推 dinosonicgo: 很详细很棒,谢谢教学 09/26 06:53
15F:推 Uber: 推 09/26 08:25
16F:推 flora11883: 推推 09/26 10:18
17F:推 motheregg: 推推 09/26 12:02
18F:推 boogieman: 推 09/26 19:47
19F:推 tomroy: 推 09/27 11:15
20F:推 tim659389: 推分享 09/27 14:18
21F:推 xu3ck: 推 09/28 02:39
22F:推 brucelinda: 推推 09/28 17:42