Coinbase Pro DCA Python Code - CBP定投代码
November 12th, 2021
  • Install python
  • Install cbpro library by: pip install cbpro
  • In Coinbase Pro, create your trading API, replace the key, b64secret and passphrase in the code
  • In Coinbase Pro, connect your bank account for USD fund deposit
  • Uncomment this line: #print(auth_client.get_accounts()) , temporarily delete all code after this line, run the code to retrieve the account string for your bank account, replace the ‘bbbbbbb’ string in the code with the account string
  • Run the code with command: python coinbase-dca.py 100 DOT

Now your Coinbase Pro account should automatically bought 100 USD of DOT token with market price.

Have fun!

import cbpro
import sys
import time

key = 'kkkkkkkkkkkkkkkkkkkkkkkkkk'
b64secret = 'ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss'
passphrase = 'pppppppppp'

amount = sys.argv[1]
coin = sys.argv[2]
usd_amount = int(amount)
print('Buy ' + coin + ' with $' + amount + ' ...')

auth_client = cbpro.AuthenticatedClient(key, b64secret, passphrase)
public_client = cbpro.PublicClient()

coin_ticker = coin + '-USD'

coin_price=round(float(public_client.get_product_ticker(product_id=coin_ticker)['price']),2)
print('Current ' + coin + ' Price is: $' + str(coin_price))

## Display all accounts
##print(auth_client.get_accounts())

## Default is BTC
coin_string = '43b6105b-731f-4659-9a67-4afb9d0befd6'

if coin == 'UNI':
  coin_string='b308ab2f-8108-418e-b7ab-ed200bc9b7bb'
if coin == 'LINK':
  coin_string='00845604-e10d-4158-8c9d-2536b98ac7ea'
if coin == 'ANKR':
  coin_string='79635096-5ab7-4d03-ac0a-9cfc8ce9fad6'
if coin == 'MATIC':
  coin_string='78066072-9e61-4e90-b77f-b8660bf87ac3'
if coin == 'STORJ':
  coin_string=' b0cadd56-4b53-46d5-8b1a-af148d5ee67f'
if coin == 'BAL':
  coin_string='62155e5a-a664-42bf-8bf8-dc5b10de5d49'
if coin == 'MANA':
  coin_string='44e8585c-0708-42d3-9126-b1061bac1919'
if coin == 'ALGO':
  coin_string='1e3131ff-c290-49fb-a349-3a64ee3f6003'
if coin == 'DOGE':
  coin_string='931a38f0-beb1-4aca-b48a-9ef1f1342033'
if coin == 'ADA':
  coin_string='aeeae914-85b3-46cd-a0af-b2cff05b27d4'
if coin == 'ADA':
  coin_string='aeeae914-85b3-46cd-a0af-b2cff05b27d4'
if coin == 'ICP':
  coin_string='35d0aa3f-c702-432b-a27b-0897c93099ae'
if coin == 'FIL':
  coin_string='1588ca41-3e14-40d0-98f5-b2a282f83757'
if coin == 'AAVE':
  coin_string='3370b1db-9807-4487-a3fa-d3fb8f5d4081'
if coin == 'ALGO':
  coin_string='1e3131ff-c290-49fb-a349-3a64ee3f6003'
if coin == 'SNX':
  coin_string='5ce13adb-bd33-4688-a4c7-ee067d94d3b8'
if coin == 'FET':
  coin_string='e0a6572b-1c5d-4008-b294-ed018df8a43c'
if coin == 'GRT':
  coin_string='6d020f78-5505-4f5d-b218-cc0a5633201b'
if coin == 'CRV':
  coin_string='4a87fa2a-95a7-481c-9564-f3603fbe19da'
if coin == 'ATOM':
  coin_string='91bbb9a4-c030-404c-aacb-a4a4c8f4d890'
if coin == 'AXS':
  coin_string='b6d00425-20e2-426a-96b1-beab13e81bcd'
if coin == 'DOT':
  coin_string='4a47096f-97f7-4069-b44e-ce6613d521f2'
if coin == 'AAVE':
  coin_string='3370b1db-9807-4487-a3fa-d3fb8f5d4081'
if coin == 'REN':
  coin_string='83a27416-c523-4f55-9b1e-337b65a836de'

## Show coin balance
print(auth_client.get_account(coin_string))

## Show USD balance
print(auth_client.get_account('eb3f5c47-6b9f-432d-9a43-67bc3c79ee8d'))

## Print coin and USD balance
coin_account = round(float(auth_client.get_account(coin_string)['available']),5)
usd_account = round(float(auth_client.get_account('eb3f5c47-6b9f-432d-9a43-67bc3c79ee8d')['available']),2)

print (coin + ' Balance is: ' + str(coin_account))
print ('USD Balance is: $' + str(usd_account))

#### Deposit amount USD from bank account
print ('Deposit ' + amount + ' USD from Bank account to CoinBase Pro account')

######### Depositing USD #########
if usd_amount > 1:
  print(auth_client.deposit(amount, 'USD', 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'))  ## Bank Account
  time.sleep(5)

usd_new_account = round(float(auth_client.get_account('eb3f5c47-6b9f-432d-9a43-67bc3c79ee8d')['available']),2)
usd_available= round(usd_new_account - usd_account,2)

## print coin and USD balance
print ('New USD Balance is: $' + str(usd_new_account))
print ('Total USD Added: $' + str(usd_available))

## debug
##usd_available = 100

if (usd_available >= usd_amount) :

  #CoinBase Pro Buy coin with USD
  print ('CoinBase Pro Account: Buy $' + amount + ' USD of ' + coin + ' ...' )

  ########## Buying coin ##########
  print(auth_client.place_market_order(product_id=coin_ticker, side='buy', funds=amount))
  time.sleep(10)

  coin_new_account = round(float(auth_client.get_account(coin_string)['available']),5)
  print ('New ' + coin + ' Balance is: ' + str(coin_new_account))

  coin_available= round(coin_new_account - coin_account,5)

  print ('Total ' + coin + ' Added: ' + str(coin_available))
Subscribe to Kenny (Kang Zeng)
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.
More from Kenny (Kang Zeng)

Skeleton

Skeleton

Skeleton