最好买硬币!
optimal-buy-cbpro的Python项目详细描述
optimal buy cbpro(以前的optimal buy gdax)
计划从Coinbase Pro(以前的GDax)购买BTC、ETH和LTC是最佳选择!
这是什么?
这是一个python脚本,可以用来自动购买比特币、以太坊, LiteCoin,以及更多使用CoinBase Pro API的应用程序。默认情况下,它购买这三种货币, 按市值加权(按 coinmarketcap.com),使用dollar cost averaging的形式,根据 以下逻辑(假设为默认值):
- 检查菲亚特(默认为美元)、BTC、ETH和LTC的当前余额
- 如果菲亚特的余额高于25美元,则购买按市场加权的BTC、ETH和LTC
上限如下:
- 如果有足够的菲亚特,在 当前价格减去0.5%至4.5%,每个订单剩余的1/5 每枚硬币的购买金额(参见 “Details on the orders placed”,下面)
- 如果没有足够的美元可用,1个购买订单在0.5%的折扣 当前价格(见 “Order Minimums”)
- 如果菲亚特账户余额低于25美元(或您指定的任何金额),则提取 硬币到所需地址
实际上,这个脚本模拟了市值加权指数的行为 基金,但不收费。它也只支持在CoinBase Pro上交易的硬币 (因为这是唯一一个拥有ACH存款API的交易所)。
您也可以使用相同的脚本从您的银行帐户安排存款 周期性的,比如当你得到报酬的时候。参数可以配置为适合 您的偏好,如购买哪种硬币、外部余额、折扣 值、步数等。
订单、存款和取款在sqlite数据库中跟踪,取款 将天平添加到Coinbase Pro上的天平上,以确保重量 随着时间的推移而保持。sqlite数据库可以换成任何 sqlalchemy支持。
关于默认参数的注意事项:您可能希望更改
--starting-discount
、--discount-step
或--order-count
。传播越广
订单数量(即当前价格与最低价格之间的差额
价格订单),他们将需要更长的时间来填充(如果他们填充),并且越接近
订单越多,你越有可能错过更大的降价。你
应该考虑到你对风险的偏好以及你想优化多少
抓住那些下挫vs.不错过收获。这里没有魔法。我的
个人建议是,在一定程度上接近违约,并尝试
每周继续多存一点菲亚特以分散风险
钓几条。
理想情况下,此脚本将有助于确保当我们蘸水时-
我们购买。
自担风险使用
嗯。如果你失去了一切,那不是我的错。
除非你把absolute trust放在我身上,我建议你找个网上的人 克隆repo并构建自己的容器以保护自己不受任何 有趣的生意。
我怎么用?
包本身可以用作Docker容器,或者通过安装
带有pip install optimal-buy-cbpro
的pip包。使用Docker容器
建议避免python环境问题。运行说明
使用Docker和Systemd如下:
设置Coinbase Pro帐户,并链接您的银行帐户
创建一个coinbase pro api密钥,其中包含view、trade、manage、transfer和bypass-2fa 权限
使用 Coinbase Pro API(您可以使用浏览器的 开发人员工具栏, here's a quick video showing how)
用Docker和Systemd在某处(GCE、EC2、Digital Ocean)买台机器
复制系统文件:
$ sudo cp systemd/optimal-buy-cbpro-*.{service,timer} /etc/systemd/system
- 更换BTC、ETH和L存放硬币的TC取款地址 放入钱包(使用分类账或Trezor)
- 弹出正确的API键
- 检查存款金额(从一些小东西开始,比如150美元 当然,它实际上是首先工作的)
- 检查计时器日期(可以更改hh:mm,以便 脚本与其他所有脚本的运行时间不同),请确保存款 计时器会根据您的存款计划启动(请记住 通常需要2-5个工作日才能清除)
- 考虑指定您的外部余额,以便准确地 计算要购买的重量和金额
启用系统单位:
$ sudo systemctl enable optimal-buy-cbpro-buy.service $ sudo systemctl enable optimal-buy-cbpro-buy.timer $ sudo systemctl enable optimal-buy-cbpro-deposit.service $ sudo systemctl enable optimal-buy-cbpro-deposit.timer
启动系统计时器: $sudo systemctl start optimal buy cbpro buy.timer$sudo systemctl start optimal-buy-cbpro-deposit.timer
享受吧!
配置
usage: optimal-buy-cbpro [-h] --mode MODE [--amount AMOUNT] --key KEY
--b64secret B64SECRET --passphrase PASSPHRASE
[--api-url API_URL]
[--payment-method-id PAYMENT_METHOD_ID]
[--starting-discount STARTING_DISCOUNT]
[--discount-step DISCOUNT_STEP]
[--order-count ORDER_COUNT]
[--fiat-currency FIAT_CURRENCY]
[--withdrawal-amount WITHDRAWAL_AMOUNT]
[--db-engine DB_ENGINE] [--max-retries MAX_RETRIES]
[--coins COINS] [--base-fee BASE_FEE]
Buy coins!
optional arguments:
-h, --help show this help message and exit
--mode MODE mode (deposit or buy)
--amount AMOUNT amount to deposit
--key KEY API key
--b64secret B64SECRET
API secret
--passphrase PASSPHRASE
API passphrase
--api-url API_URL API URL (default: https://api.pro.coinbase.com)
--payment-method-id PAYMENT_METHOD_ID
Payment method ID for fiat deposits
--starting-discount STARTING_DISCOUNT
starting discount (default: 0.005)
--discount-step DISCOUNT_STEP
discount step between orders (default: 0.01)
--order-count ORDER_COUNT
number of orders (default: 5)
--fiat-currency FIAT_CURRENCY
Fiat currency (default: USD)
--withdrawal-amount WITHDRAWAL_AMOUNT
withdraw when fiat balance drops below this amount
(default: 25)
--db-engine DB_ENGINE
SQLAlchemy DB engine (default:
sqlite:///cbpro_history.db)
--max-retries MAX_RETRIES
Maximum number of times to retry if there are any
failures, such as API issues (default: 3)
--coins COINS Coins to trade, minimum trade size, withdrawal
addresses and external balances. Accepts a JSON
string.
--base-fee BASE_FEE Default base fee to subtract from overall balance.
Default coins are as follows:
{
"BTC":{
"name":"Bitcoin",
"withdrawal_address":null,
"external_balance":0
},
"ETH":{
"name":"Ethereum",
"withdrawal_address":null,
"external_balance":0
},
"LTC":{
"name":"Litecoin",
"withdrawal_address":null,
"external_balance":0
}
}
下订单的详细信息
默认情况下,有5个订单(每种货币)以1%的步幅下达, 从当前价格的0.5%折扣开始。举例来说,如果 现在的价格是100美元(比如说,每台LTC),你有100美元要买,订单 会是这样的:
Order | Size | Price |
---|---|---|
1 | 0.2010 LTC | $99.5 |
2 | 0.2030 LTC | $98.5 |
3 | 0.2051 LTC | $97.5 |
4 | 0.2072 LTC | $96.5 |
5 | 0.2094 LTC | $95.5 |
此外,每种货币的购买量将基于当前 每枚硬币的市值加权。例如,在编写 重量为:
Coin | Market Cap (USD) | Weight |
---|---|---|
BTC | $195,824,365,435 | 0.791 |
ETH | $46,080,472,372 | 0.186 |
LTC | $5,592,776,540 | 0.023 |
所以如果你的美元账户有1000美元,每个账户的购买金额 变成:
Coin | Weight | Amount Purchased |
---|---|---|
BTC | 0.791 | $791 |
ETH | 0.186 | $186 |
LTC | 0.023 | $23 |
注意事项/限制
- 如果你试图手动交易或同时使用其他机器人, 你可能会过得很不愉快
- 您可能有几美元(<;$25,您可以用
--withdrawal-amount
)一直坐在你的账户里, 即使所有订单都已完成,因为不可能总是 填写所有订单,可能会有小的舍入误差(以美分为单位)
用最少的复杂性尽最大努力使用所有的菲亚特,
但可能不可能立即完成所有订单 - 市场可能需要几天的时间才能跌到足够的价格,才能让买盘填满
- 如果市场出现明显的牛市,你的订单将不会 已填充,但每24小时重置一次(使用默认购买计时器)
小费罐
如果你能从中得到一些价值,请寄给我一些硬币以便我能 从我的日常工作中退休:
- 3TeAE1OKEM5HQUXBBV99MbQYNES8J8N