|
|
|
@ -2,6 +2,7 @@
|
|
|
|
|
|
|
|
|
|
import logging
|
|
|
|
|
from os import getenv
|
|
|
|
|
from dotenv import load_dotenv
|
|
|
|
|
from argparse import ArgumentParser
|
|
|
|
|
from datetime import datetime
|
|
|
|
|
from decimal import Decimal
|
|
|
|
@ -18,11 +19,14 @@ logging.basicConfig(
|
|
|
|
|
|
|
|
|
|
class Trader(TradeOgre):
|
|
|
|
|
|
|
|
|
|
load_dotenv('.env')
|
|
|
|
|
|
|
|
|
|
satoshi = .00000001
|
|
|
|
|
base_currency = 'BTC'
|
|
|
|
|
trade_currency = 'WOW'
|
|
|
|
|
base_currency = getenv('BASE_CURRENCY', 'BTC')
|
|
|
|
|
trade_currency = getenv('TRADE_CURRENCY', 'WOW')
|
|
|
|
|
trade_pair = f'{base_currency}-{trade_currency}'
|
|
|
|
|
trade_amount = 250
|
|
|
|
|
trade_amount = getenv('TRADE_AMOUNT', 200)
|
|
|
|
|
spread_target = getenv('SPREAD_TARGET', 4)
|
|
|
|
|
|
|
|
|
|
def get_market_data(self):
|
|
|
|
|
logging.info(f'[MARKET] Getting market data for trade pair {self.trade_pair}')
|
|
|
|
@ -113,11 +117,11 @@ class Trader(TradeOgre):
|
|
|
|
|
latest = Ticker.select().order_by(Ticker.date.desc()).get()
|
|
|
|
|
trade_type = 'market_maker'
|
|
|
|
|
|
|
|
|
|
if len(self.get_active_orders()) > 5:
|
|
|
|
|
if len(self.get_active_orders()) > 8:
|
|
|
|
|
logging.info('[MARKET MAKER] Too many active orders in place. Skipping.')
|
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
if latest.spread_sats > 4:
|
|
|
|
|
if latest.spread_sats > self.spread_target:
|
|
|
|
|
bid_amount = uniform(self.trade_amount, self.trade_amount + 30)
|
|
|
|
|
ask_amount = uniform(bid_amount - 6, bid_amount + 6)
|
|
|
|
|
bid_price = '{:.8f}'.format(latest.bid + self.satoshi)
|
|
|
|
@ -171,16 +175,13 @@ if __name__ == '__main__':
|
|
|
|
|
|
|
|
|
|
if not args.run and args.market_maker:
|
|
|
|
|
t.start_market_maker()
|
|
|
|
|
exit()
|
|
|
|
|
|
|
|
|
|
if not args.run and args.update_orders:
|
|
|
|
|
t.reconcile_orders()
|
|
|
|
|
t.update_orders()
|
|
|
|
|
exit()
|
|
|
|
|
|
|
|
|
|
if not args.run and args.balances:
|
|
|
|
|
t.store_balances()
|
|
|
|
|
exit()
|
|
|
|
|
|
|
|
|
|
if args.run:
|
|
|
|
|
while True:
|
|
|
|
|