diff --git a/dabo/dabo-prep.sh b/dabo/dabo-prep.sh index a005a25..8459319 100644 --- a/dabo/dabo-prep.sh +++ b/dabo/dabo-prep.sh @@ -3,11 +3,11 @@ BASEPATH=/dabo/htdocs # load functions +. /etc/bash/gaboshlib.include for bashfunc in $(find ${BASEPATH}/../functions -type f -name "*.sh") do . "$bashfunc" done -. /etc/bash/gaboshlib.include # vars LANGUAGE="en_US" @@ -21,3 +21,6 @@ set +a mkdir -p ${BASEPATH}/botdata/asset-histories cd ${BASEPATH}/botdata +. ../../dabo-bot.conf +. ../../dabo-bot.override.conf + diff --git a/dabo/fetch-transaction-history.sh b/dabo/fetch-transaction-history.sh index e2b5e97..1f0fee4 100755 --- a/dabo/fetch-transaction-history.sh +++ b/dabo/fetch-transaction-history.sh @@ -2,7 +2,7 @@ . /dabo/dabo-prep.sh -#sleep 1800 +sleep 1800 while true do g_echo_note "Next loop" diff --git a/dabo/functions/get_ohlcv-candle.sh b/dabo/functions/get_ohlcv-candle.sh index e95f907..85ededf 100644 --- a/dabo/functions/get_ohlcv-candle.sh +++ b/dabo/functions/get_ohlcv-candle.sh @@ -13,7 +13,7 @@ function get_ohlcv-candles { do for f_timeframe in $f_timeframes do - echo "=== Fetching/Refreshing $f_eco_asset $f_timeframe ===" + g_echo_note "Fetching/Refreshing $f_eco_asset $f_timeframe" f_histfile="asset-histories/ECONOMY-${f_eco_asset}.history.${f_timeframe}.csv" # 4h timefrage does not exist on yahoo finance so calc from 1h diff --git a/dabo/functions/get_symbols_ticker.sh b/dabo/functions/get_symbols_ticker.sh index 2da5816..027a529 100644 --- a/dabo/functions/get_symbols_ticker.sh +++ b/dabo/functions/get_symbols_ticker.sh @@ -12,12 +12,13 @@ function get_symbols_ticker { if [ "$f_fetch" = "refetchonly" ] then # fetch from exchange - f_ccxt "print(${STOCK_EXCHANGE}.fetch_tickers())" && echo $f_ccxt_result >CCXT_TICKERS_RAW-${STOCK_EXCHANGE} + rm -f CCXT_TICKERS-${STOCK_EXCHANGE}.tmp + f_ccxt "print(${STOCK_EXCHANGE}.fetch_tickers())" && echo $f_ccxt_result >CCXT_TICKERS_RAW-${STOCK_EXCHANGE} # parse relevant tokens local f_grep="${CURRENCY}," [ -n "$LEVERAGE" ] && f_grep="${CURRENCY}:${CURRENCY}," - [ -s CCXT_TICKERS_RAW-${STOCK_EXCHANGE} ] && jq -r '.[] | .symbol + "," + (.last|tostring)' CCXT_TICKERS_RAW-${STOCK_EXCHANGE} | grep "${f_grep}" >CCXT_TICKERS-${STOCK_EXCHANGE}.tmp + [ -s CCXT_TICKERS_RAW-${STOCK_EXCHANGE} ] && jq -r '.[] | .symbol + "," + (.last|tostring)' CCXT_TICKERS_RAW-${STOCK_EXCHANGE} | grep "${f_grep}" | egrep ".+,[0-9]" >CCXT_TICKERS-${STOCK_EXCHANGE}.tmp if [ -s CCXT_TICKERS-${STOCK_EXCHANGE}.tmp ] then @@ -31,15 +32,18 @@ function get_symbols_ticker { | grep ",$(date +%Y)-" \ | sort -r -n -t, -k7 \ | cut -d. -f2 \ - >CCXT_SYMBOLS-$STOCK_EXCHANGE-by-volume + >CCXT_SYMBOLS-$STOCK_EXCHANGE-by-volume.tmp # add mising (not yet fetched) symbols - awk 'NR==FNR{a[$0];next} !($0 in a)' CCXT_SYMBOLS-${STOCK_EXCHANGE}-by-volume CCXT_SYMBOLS-$STOCK_EXCHANGE >>CCXT_SYMBOLS-${STOCK_EXCHANGE}-by-volume + awk 'NR==FNR{a[$0];next} !($0 in a)' CCXT_SYMBOLS-${STOCK_EXCHANGE}-by-volume.tmp CCXT_SYMBOLS-$STOCK_EXCHANGE >>CCXT_SYMBOLS-${STOCK_EXCHANGE}-by-volume.tmp # remove (no more) existing symbols - awk 'NR==FNR{a[$0];next} !($0 in a)' CCXT_SYMBOLS-$STOCK_EXCHANGE CCXT_SYMBOLS-${STOCK_EXCHANGE}-by-volume \ + awk 'NR==FNR{a[$0];next} !($0 in a)' CCXT_SYMBOLS-$STOCK_EXCHANGE CCXT_SYMBOLS-${STOCK_EXCHANGE}-by-volume.tmp \ | while read f_remove_symbol do - sed -i "\#${f_remove_symbol}#d" CCXT_SYMBOLS-${STOCK_EXCHANGE}-by-volume + sed -i "\#${f_remove_symbol}#d" CCXT_SYMBOLS-${STOCK_EXCHANGE}-by-volume.tmp done + # write filan volume file + [ -s CCXT_SYMBOLS-${STOCK_EXCHANGE}-by-volume.tmp ] && mv CCXT_SYMBOLS-${STOCK_EXCHANGE}-by-volume.tmp CCXT_SYMBOLS-${STOCK_EXCHANGE}-by-volume + # write file with symbols that should be traded rm -f CCXT_SYMBOLS-${STOCK_EXCHANGE}-by-volume-trade.tmp @@ -66,22 +70,16 @@ function get_symbols_ticker { do f_symbol=${f_ticker%%:*} f_symbol=${f_symbol//\/} - f_symbol=${f_symbol/ /} + #f_symbol=${f_symbol/ /} f_price=${f_ticker/*,/} g_num_exponential2normal $f_price && f_price=$g_num_exponential2normal_result - - # remove from symbol-list if price is invalid - if ! g_num_valid_number $f_price 2>/dev/null - then - f_remove_symbol=${f_ticker/,*/} - sed -i "\#${f_remove_symbol}#d" CCXT_SYMBOLS-${STOCK_EXCHANGE} CCXT_SYMBOLS-${STOCK_EXCHANGE}-by-volume - continue - fi f_tickers_array[$f_symbol]=$f_price done fi # create array with ccxt symbols sorted by volume + pwd + ls -l CCXT_SYMBOLS-${STOCK_EXCHANGE}-by-volume [ -s CCXT_SYMBOLS-${STOCK_EXCHANGE}-by-volume ] && g_array CCXT_SYMBOLS-${STOCK_EXCHANGE}-by-volume f_symbols_array_ref f_symbols_array=("${f_symbols_array_ref[@]}") @@ -89,7 +87,6 @@ function get_symbols_ticker { [ -s CCXT_SYMBOLS-${STOCK_EXCHANGE}-by-volume-trade ] && g_array CCXT_SYMBOLS-${STOCK_EXCHANGE}-by-volume-trade f_symbols_array_trade_ref f_symbols_array_trade=("${f_symbols_array_ref[@]}") - # create f_symbols var [ -s CCXT_SYMBOLS-${STOCK_EXCHANGE}-by-volume ] && f_symbols=$(cat CCXT_SYMBOLS-${STOCK_EXCHANGE}-by-volume) f_symbols=${f_symbols//$'\n'/'+'} @@ -102,8 +99,8 @@ function get_symbols_ticker { return 1 fi sleep 5 - get_symbols_ticker retry || return 1 g_echo_note "Could not get symbols list - empty - retrying" + get_symbols_ticker retry || return 1 fi } diff --git a/dabo/functions/get_transactions.sh b/dabo/functions/get_transactions.sh index c67d99a..317b099 100644 --- a/dabo/functions/get_transactions.sh +++ b/dabo/functions/get_transactions.sh @@ -4,6 +4,8 @@ function get_transactions { local f_exchange f_symbol f_symbol_file f_asset f_currency f_leverage f_convert_end_month f_convert_end_year f_symbol_file_csv f_symbol_file_csv_tmp f_start_date f_end_date f_convert_file f_fiat f_fiats local DEFAULT_STOCK_EXCHANGE=$STOCK_EXCHANGE + local DEFAULT_LEVERAGE=$LEVERAGE + for f_exchange in /dabo/.*-secrets; do @@ -21,12 +23,14 @@ function get_transactions { # refetch symbols if not default exchange if ! [[ $DEFAULT_STOCK_EXCHANGE = $STOCK_EXCHANGE ]] then + unset LEVERAGE get_symbols_ticker refetchonly + LEVERAGE=$DEFAULT_LEVERAGE fi - + # load symbols to array get_symbols_ticker - + # transfer-dir mkdir -p "TRANSACTIONS-$f_exchange" # create timestamp file diff --git a/dabo/functions/transactions_overview.sh b/dabo/functions/transactions_overview.sh index 07c6b2e..3b7092b 100644 --- a/dabo/functions/transactions_overview.sh +++ b/dabo/functions/transactions_overview.sh @@ -3,7 +3,7 @@ function transactions_overview { g_echo_note "RUNNING FUNCTION ${FUNCNAME} $@" get_transactions - + get_bitpanda_api_transactions get_justtrade_csv_transactions get_onetrading_csv_transactions @@ -14,7 +14,7 @@ function transactions_overview { local f_exchange f_asset f_transactions_array f_transaction f_result f_asset_quantity f_asset_quantity_sold f_currency_quantity f_currency_quantity_sold f_currency_spent f_date f_type f_asset_amount f_currency f_currency_amount f_fee_currency f_fee_amount f_sell_result f_taxable f_tax_type f_one_year_ago f_currency_amount_eur f_currency_spent_eur f_currency_quantity_sold_eur f_note f_asset_quantity_remaining f_currency_remaining f_year f_currency_spent_eur_tax f_currency_quantity_sold_eur_tax f_sell_result_percentage f_sell_result_percentage_eur - f_assets_per_exchange=$(egrep -h -v '^DATE,TYPE,ASSET,ASSET_AMOUNT,CURRENCY,CURRENCY_AMOUNT,EXCHANGE|^#|^$|^ +$|^$' TRANSACTIONS-*.csv | cut -d, -f3,7 | sort -u) + f_assets_per_exchange=$(egrep -h -v '^DATE,TYPE,ASSET,ASSET_AMOUNT,CURRENCY,CURRENCY_AMOUNT,EXCHANGE|^#|^$|^ +$' TRANSACTIONS-*.csv | cut -d, -f3,7 | sort -u) for f_asset_per_exchange in ${f_assets_per_exchange} do diff --git a/docker-compose.yml b/docker-compose.yml index 411582a..03ca304 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -247,6 +247,31 @@ services: cpus: '0.5' memory: 512M +# dabo-test: +# build: +# context: . +# dockerfile: Dockerfile +# restart: no +# user: 10000:10000 +# volumes: +# - ./dabo:/dabo:ro +# - ./strategies:/dabo/strategies:ro +# - ./dabo-bot.conf:/dabo/dabo-bot.override.conf +## - ./watch-assets.csv:/dabo/watch-assets.csv +# - ./data:/dabo/htdocs:rw +# - ./home:/dabo/home:rw +# - /usr/local/bin/notify.sh:/usr/local/bin/notify.sh:ro +# - /usr/local/etc/notify.conf:/usr/local/etc/notify.conf:ro +# - /etc/localtime:/etc/localtime:ro +# entrypoint: /dabo/test.sh +# cpu_shares: 128 +# deploy: +# resources: +# limits: +# cpus: '0.5' +# memory: 512M + + dabo-webpage: build: context: .