pnl, tax, transactions
This commit is contained in:
@@ -54,19 +54,20 @@ function calc_fifo_pnl {
|
|||||||
g_num_exponential2normal $f_fee_amount
|
g_num_exponential2normal $f_fee_amount
|
||||||
f_fee_amount=$g_num_exponential2normal_result
|
f_fee_amount=$g_num_exponential2normal_result
|
||||||
|
|
||||||
echo "f_fiat_amount=$f_fiat_amount"
|
## Debug
|
||||||
|
#echo "f_fiat_amount=$f_fiat_amount"
|
||||||
|
|
||||||
# convert f_fiat_currency/f_fiat_amount to TRANSFER_CURRENCY/f_fiat_amount_tax_currency if they are not equal
|
# convert f_fiat_currency/f_fiat_amount to TRANSFER_CURRENCY/f_fiat_amount_tax_currency if they are not equal
|
||||||
if ! [ "$f_fiat_currency" == "$TRANSFER_CURRENCY" ] && [ "$f_fiat_amount" != "0" ]
|
if ! [ "$f_fiat_currency" == "$TRANSFER_CURRENCY" ] && [ "$f_fiat_amount" != "0" ]
|
||||||
then
|
then
|
||||||
currency_converter $f_fiat_amount "$f_fiat_currency" $TRANSFER_CURRENCY "$f_date" >/dev/null
|
currency_converter $f_fiat_amount "$f_fiat_currency" $TRANSFER_CURRENCY "$f_date" >/dev/null
|
||||||
f_fiat_amount_tax_currency=$f_currency_converter_result
|
f_fiat_amount_tax_currency=$f_currency_converter_result
|
||||||
echo "currency_converter: $f_fiat_amount "$f_fiat_currency" $TRANSFER_CURRENCY "$f_date" -> $f_currency_converter_result"
|
|
||||||
else
|
else
|
||||||
f_fiat_amount_tax_currency=$f_fiat_amount
|
f_fiat_amount_tax_currency=$f_fiat_amount
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "f_fiat_amount_tax_currency=$f_fiat_amount_tax_currency"
|
## Debug
|
||||||
|
#echo "f_fiat_amount_tax_currency=$f_fiat_amount_tax_currency"
|
||||||
|
|
||||||
# convert f_fee_currency/f_fee_amount to TRANSFER_CURRENCY/f_fiat_amount_tax_currency if present
|
# convert f_fee_currency/f_fee_amount to TRANSFER_CURRENCY/f_fiat_amount_tax_currency if present
|
||||||
if [ -n "$f_fee_amount" ]
|
if [ -n "$f_fee_amount" ]
|
||||||
@@ -78,7 +79,8 @@ function calc_fifo_pnl {
|
|||||||
f_fiat_amount_tax_currency=$g_calc_result
|
f_fiat_amount_tax_currency=$g_calc_result
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "f_fiat_amount_tax_currency=$f_fiat_amount_tax_currency"
|
## Debug
|
||||||
|
#echo "f_fiat_amount_tax_currency=$f_fiat_amount_tax_currency"
|
||||||
|
|
||||||
# no space in date (prevent problems mit $f_holdings)
|
# no space in date (prevent problems mit $f_holdings)
|
||||||
f_date="${f_date/ /T}"
|
f_date="${f_date/ /T}"
|
||||||
@@ -86,7 +88,8 @@ function calc_fifo_pnl {
|
|||||||
# get current holfings for determining if this is a long or short trade (f_holdings_amount)
|
# get current holfings for determining if this is a long or short trade (f_holdings_amount)
|
||||||
get_holdings_amount
|
get_holdings_amount
|
||||||
|
|
||||||
echo "f_crypto_amount=$f_crypto_amount"
|
## Debug
|
||||||
|
#echo "f_crypto_amount=$f_crypto_amount"
|
||||||
|
|
||||||
# Process fundingfee action
|
# Process fundingfee action
|
||||||
if [[ $f_action == "fundingfee" ]]
|
if [[ $f_action == "fundingfee" ]]
|
||||||
@@ -98,12 +101,14 @@ function calc_fifo_pnl {
|
|||||||
if g_num_is_higher_equal $f_holdings_amount 0
|
if g_num_is_higher_equal $f_holdings_amount 0
|
||||||
then
|
then
|
||||||
# long
|
# long
|
||||||
echo process_buy "$f_symbol" "$f_crypto_amount" "$f_fiat_amount_tax_currency" "$f_date"
|
## Debug
|
||||||
|
#echo process_buy "$f_symbol" "$f_crypto_amount" "$f_fiat_amount_tax_currency" "$f_date"
|
||||||
process_buy "$f_symbol" "$f_crypto_amount" "$f_fiat_amount_tax_currency" "$f_date"
|
process_buy "$f_symbol" "$f_crypto_amount" "$f_fiat_amount_tax_currency" "$f_date"
|
||||||
elif g_num_is_lower_equal "$f_holdings_amount" "-$f_crypto_amount"
|
elif g_num_is_lower_equal "$f_holdings_amount" "-$f_crypto_amount"
|
||||||
then
|
then
|
||||||
# short
|
# short
|
||||||
echo process_sell "$f_symbol" "$f_crypto_amount" "$f_fiat_amount_tax_currency" "$f_date" "$f_year" short
|
## Debug
|
||||||
|
#echo process_sell "$f_symbol" "$f_crypto_amount" "$f_fiat_amount_tax_currency" "$f_date" "$f_year" short
|
||||||
process_sell "$f_symbol" "$f_crypto_amount" "$f_fiat_amount_tax_currency" "$f_date" "$f_year" short
|
process_sell "$f_symbol" "$f_crypto_amount" "$f_fiat_amount_tax_currency" "$f_date" "$f_year" short
|
||||||
else
|
else
|
||||||
# long+short (partial)
|
# long+short (partial)
|
||||||
@@ -119,10 +124,12 @@ function calc_fifo_pnl {
|
|||||||
f_crypto_amount_short=$g_calc_result
|
f_crypto_amount_short=$g_calc_result
|
||||||
# part short-sell
|
# part short-sell
|
||||||
# part long-sell
|
# part long-sell
|
||||||
echo PART: process_sell process_sell "$f_symbol" "$f_crypto_amount_long" "$f_fiat_amount_tax_currency_long" "$f_date" "$f_year"
|
## Debug
|
||||||
|
#echo PART: process_sell process_sell "$f_symbol" "$f_crypto_amount_long" "$f_fiat_amount_tax_currency_long" "$f_date" "$f_year"
|
||||||
process_sell "$f_symbol" "$f_crypto_amount_long" "$f_fiat_amount_tax_currency_long" "$f_date" "$f_year"
|
process_sell "$f_symbol" "$f_crypto_amount_long" "$f_fiat_amount_tax_currency_long" "$f_date" "$f_year"
|
||||||
|
|
||||||
echo PART: process_buy "$f_symbol" "$f_crypto_amount_long" "$f_fiat_amount_tax_currency_long" "$f_date" "$f_year"
|
## Debug
|
||||||
|
#echo PART: process_buy "$f_symbol" "$f_crypto_amount_long" "$f_fiat_amount_tax_currency_long" "$f_date" "$f_year"
|
||||||
process_buy "$f_symbol" "$f_crypto_amount_long" "$f_fiat_amount_tax_currency_long" "$f_date" "$f_year"
|
process_buy "$f_symbol" "$f_crypto_amount_long" "$f_fiat_amount_tax_currency_long" "$f_date" "$f_year"
|
||||||
fi
|
fi
|
||||||
# Process sell actions
|
# Process sell actions
|
||||||
@@ -132,7 +139,8 @@ function calc_fifo_pnl {
|
|||||||
if g_num_is_higher_equal "$f_holdings_amount" "$f_crypto_amount"
|
if g_num_is_higher_equal "$f_holdings_amount" "$f_crypto_amount"
|
||||||
then
|
then
|
||||||
# long
|
# long
|
||||||
echo process_sell "$f_symbol" "$f_crypto_amount" "$f_fiat_amount_tax_currency" "$f_date" "$f_year"
|
## Debug
|
||||||
|
#echo process_sell "$f_symbol" "$f_crypto_amount" "$f_fiat_amount_tax_currency" "$f_date" "$f_year"
|
||||||
process_sell "$f_symbol" "$f_crypto_amount" "$f_fiat_amount_tax_currency" "$f_date" "$f_year"
|
process_sell "$f_symbol" "$f_crypto_amount" "$f_fiat_amount_tax_currency" "$f_date" "$f_year"
|
||||||
elif g_num_is_higher "$f_holdings_amount" 0
|
elif g_num_is_higher "$f_holdings_amount" 0
|
||||||
then
|
then
|
||||||
@@ -148,27 +156,31 @@ function calc_fifo_pnl {
|
|||||||
g_calc "$f_crypto_amount/100*($g_percentage_diff_result*-1)"
|
g_calc "$f_crypto_amount/100*($g_percentage_diff_result*-1)"
|
||||||
f_crypto_amount_short=$g_calc_result
|
f_crypto_amount_short=$g_calc_result
|
||||||
# part long-sell
|
# part long-sell
|
||||||
echo PART: process_sell "$f_symbol" "$f_crypto_amount_long" "$f_fiat_amount_tax_currency_long" "$f_date" "$f_year"
|
## Debug
|
||||||
|
#echo PART: process_sell "$f_symbol" "$f_crypto_amount_long" "$f_fiat_amount_tax_currency_long" "$f_date" "$f_year"
|
||||||
process_sell "$f_symbol" "$f_crypto_amount_long" "$f_fiat_amount_tax_currency_long" "$f_date" "$f_year"
|
process_sell "$f_symbol" "$f_crypto_amount_long" "$f_fiat_amount_tax_currency_long" "$f_date" "$f_year"
|
||||||
# part short-sell
|
# part short-sell
|
||||||
echo PART: process_buy "$f_symbol" "$f_crypto_amount_short" "$f_fiat_amount_tax_currency_short" "$f_date" short
|
## Debug
|
||||||
|
#echo PART: process_buy "$f_symbol" "$f_crypto_amount_short" "$f_fiat_amount_tax_currency_short" "$f_date" short
|
||||||
process_buy "$f_symbol" "$f_crypto_amount_short" "$f_fiat_amount_tax_currency_short" "$f_date" short
|
process_buy "$f_symbol" "$f_crypto_amount_short" "$f_fiat_amount_tax_currency_short" "$f_date" short
|
||||||
elif [[ $f_action == "liquidation" ]]
|
elif [[ $f_action == "liquidation" ]]
|
||||||
then
|
then
|
||||||
# short sell/liquidation
|
# short sell/liquidation
|
||||||
echo process_sell "$f_symbol" "$f_crypto_amount" "$f_fiat_amount_tax_currency" "$f_date" $f_year short
|
## Debug
|
||||||
|
#echo process_sell "$f_symbol" "$f_crypto_amount" "$f_fiat_amount_tax_currency" "$f_date" $f_year short
|
||||||
process_sell "$f_symbol" "$f_crypto_amount" "$f_fiat_amount_tax_currency" "$f_date" $f_year short
|
process_sell "$f_symbol" "$f_crypto_amount" "$f_fiat_amount_tax_currency" "$f_date" $f_year short
|
||||||
else
|
else
|
||||||
# short buy
|
# short buy
|
||||||
echo process_buy "$f_symbol" "$f_crypto_amount" "$f_fiat_amount_tax_currency" "$f_date" short
|
## Debug
|
||||||
|
#echo process_buy "$f_symbol" "$f_crypto_amount" "$f_fiat_amount_tax_currency" "$f_date" short
|
||||||
process_buy "$f_symbol" "$f_crypto_amount" "$f_fiat_amount_tax_currency" "$f_date" short
|
process_buy "$f_symbol" "$f_crypto_amount" "$f_fiat_amount_tax_currency" "$f_date" short
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## DEBUG output
|
## DEBUG output
|
||||||
get_holdings_amount
|
#get_holdings_amount
|
||||||
echo "f_holdings_amount=$f_holdings_amount"
|
#echo "f_holdings_amount=$f_holdings_amount"
|
||||||
echo "============================"
|
#echo "============================"
|
||||||
|
|
||||||
done < "$f_csv_file"
|
done < "$f_csv_file"
|
||||||
}
|
}
|
||||||
@@ -184,7 +196,8 @@ function process_buy {
|
|||||||
then
|
then
|
||||||
f_holdings[$f_symbol]+="-$f_amount:$f_price:$f_date "
|
f_holdings[$f_symbol]+="-$f_amount:$f_price:$f_date "
|
||||||
f_action="${f_action}-short"
|
f_action="${f_action}-short"
|
||||||
echo ACTION:$f_action
|
## Debug
|
||||||
|
#echo ACTION:$f_action
|
||||||
elif [[ $f_action == "reward-staking" ]]
|
elif [[ $f_action == "reward-staking" ]]
|
||||||
then
|
then
|
||||||
f_tax_type="Sonst-Einkünfte-Staking"
|
f_tax_type="Sonst-Einkünfte-Staking"
|
||||||
@@ -232,17 +245,20 @@ function process_sell {
|
|||||||
[ -n "$f_short" ] && g_num_is_higher $f_remaining_sell $f_buy_amount && f_sell_from_holding=$f_remaining_sell
|
[ -n "$f_short" ] && g_num_is_higher $f_remaining_sell $f_buy_amount && f_sell_from_holding=$f_remaining_sell
|
||||||
|
|
||||||
# calculate sell percentage of buy trade
|
# calculate sell percentage of buy trade
|
||||||
echo "f_sell_from_holding=$f_sell_from_holding"
|
## Debug
|
||||||
|
#echo "f_sell_from_holding=$f_sell_from_holding"
|
||||||
[ -z "$f_short" ] && g_percentage-diff $f_buy_amount $f_sell_from_holding
|
[ -z "$f_short" ] && g_percentage-diff $f_buy_amount $f_sell_from_holding
|
||||||
[ -n "$f_short" ] && g_percentage-diff $f_buy_amount $f_sell_from_holding
|
[ -n "$f_short" ] && g_percentage-diff $f_buy_amount $f_sell_from_holding
|
||||||
g_calc "100+$g_percentage_diff_result"
|
g_calc "100+$g_percentage_diff_result"
|
||||||
f_percentage_of_buy=${g_calc_result#-}
|
f_percentage_of_buy=${g_calc_result#-}
|
||||||
|
|
||||||
echo "f_percentage_of_buy=$f_percentage_of_buy"
|
## Debug
|
||||||
|
#echo "f_percentage_of_buy=$f_percentage_of_buy"
|
||||||
|
|
||||||
# Calculate profit/loss (pnl)
|
# Calculate profit/loss (pnl)
|
||||||
echo "f_sell_price=$f_sell_price"
|
## Debug
|
||||||
echo "f_buy_price=$f_buy_price"
|
#echo "f_sell_price=$f_sell_price"
|
||||||
|
#echo "f_buy_price=$f_buy_price"
|
||||||
# if not first iteration (f_pnl is already set from previous iteration) and partial sell
|
# if not first iteration (f_pnl is already set from previous iteration) and partial sell
|
||||||
if [ -n "$f_pnl" ]
|
if [ -n "$f_pnl" ]
|
||||||
then
|
then
|
||||||
@@ -253,7 +269,8 @@ function process_sell {
|
|||||||
g_calc "$f_sell_price - ($f_buy_price/100*$f_percentage_of_buy)"
|
g_calc "$f_sell_price - ($f_buy_price/100*$f_percentage_of_buy)"
|
||||||
fi
|
fi
|
||||||
local f_pnl=$g_calc_result
|
local f_pnl=$g_calc_result
|
||||||
echo "f_pnl=$f_pnl"
|
## Debug
|
||||||
|
#echo "f_pnl=$f_pnl"
|
||||||
|
|
||||||
# Check if trade is tax-free (held for more than a year)
|
# Check if trade is tax-free (held for more than a year)
|
||||||
local f_is_taxable=true
|
local f_is_taxable=true
|
||||||
@@ -266,8 +283,9 @@ function process_sell {
|
|||||||
# Update remaining sell amount and holdings
|
# Update remaining sell amount and holdings
|
||||||
g_calc "$f_remaining_sell - $f_sell_from_holding"
|
g_calc "$f_remaining_sell - $f_sell_from_holding"
|
||||||
f_remaining_sell=$g_calc_result
|
f_remaining_sell=$g_calc_result
|
||||||
echo "f_remaining_sell=$f_remaining_sell"
|
## Debug
|
||||||
echo "HOLDINGS1: ${f_holdings[$f_symbol]}"
|
#echo "f_remaining_sell=$f_remaining_sell"
|
||||||
|
#echo "HOLDINGS1: ${f_holdings[$f_symbol]}"
|
||||||
f_holdings[$f_symbol]="${f_holdings[$f_symbol]#* }"
|
f_holdings[$f_symbol]="${f_holdings[$f_symbol]#* }"
|
||||||
|
|
||||||
# If there's remaining amount in the holding, add it back
|
# If there's remaining amount in the holding, add it back
|
||||||
@@ -275,7 +293,8 @@ function process_sell {
|
|||||||
[ -n "$f_short" ] && g_calc "$f_buy_amount + $f_sell_from_holding"
|
[ -n "$f_short" ] && g_calc "$f_buy_amount + $f_sell_from_holding"
|
||||||
g_calc "$f_buy_amount - $f_sell_from_holding"
|
g_calc "$f_buy_amount - $f_sell_from_holding"
|
||||||
local f_remaining_buy_amount=$g_calc_result
|
local f_remaining_buy_amount=$g_calc_result
|
||||||
echo "f_remaining_buy_amount=$g_calc_result"
|
## Debug
|
||||||
|
#echo "f_remaining_buy_amount=$g_calc_result"
|
||||||
#if g_num_is_higher $f_remaining_buy_amount 0
|
#if g_num_is_higher $f_remaining_buy_amount 0
|
||||||
if [ "$f_remaining_buy_amount" != "0" ]
|
if [ "$f_remaining_buy_amount" != "0" ]
|
||||||
then
|
then
|
||||||
@@ -283,7 +302,8 @@ function process_sell {
|
|||||||
f_remaining_buy_price=$g_calc_result
|
f_remaining_buy_price=$g_calc_result
|
||||||
f_holdings[$f_symbol]="$f_remaining_buy_amount:$f_remaining_buy_price:$f_buy_date ${f_holdings[$f_symbol]}"
|
f_holdings[$f_symbol]="$f_remaining_buy_amount:$f_remaining_buy_price:$f_buy_date ${f_holdings[$f_symbol]}"
|
||||||
fi
|
fi
|
||||||
echo "HOLDINGS2: ${f_holdings[$f_symbol]}"
|
## Debug
|
||||||
|
#echo "HOLDINGS2: ${f_holdings[$f_symbol]}"
|
||||||
done
|
done
|
||||||
|
|
||||||
# Update profit/loss
|
# Update profit/loss
|
||||||
@@ -309,15 +329,16 @@ function process_sell {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
## DEBUG output
|
## DEBUG output
|
||||||
get_holdings_amount
|
#get_holdings_amount
|
||||||
echo "f_holdings_amount=$f_holdings_amount"
|
#echo "f_holdings_amount=$f_holdings_amount"
|
||||||
echo "Result: $f_trade_result ; taxable=$f_is_taxable ; REMAINING: $f_holdings_amount"
|
#echo "Result: $f_trade_result ; taxable=$f_is_taxable ; REMAINING: $f_holdings_amount"
|
||||||
|
|
||||||
# write to csv
|
# write to csv
|
||||||
if [ -n "$f_short" ]
|
if [ -n "$f_short" ]
|
||||||
then
|
then
|
||||||
f_action="${f_action}-short"
|
f_action="${f_action}-short"
|
||||||
echo ACTION:$f_action
|
## Debug
|
||||||
|
#echo ACTION:$f_action
|
||||||
fi
|
fi
|
||||||
[ "$f_trade_tax" == "0" ] && [ "$f_tax_type" == "Veräußerungsgeschäft" ] && f_tax_type="Veräußerungsgeschäft Spekulationsfrist > 1 Jahr"
|
[ "$f_trade_tax" == "0" ] && [ "$f_tax_type" == "Veräußerungsgeschäft" ] && f_tax_type="Veräußerungsgeschäft Spekulationsfrist > 1 Jahr"
|
||||||
echo "$f_date,$f_exchange,$f_action,$f_symbol,-$f_sell_amount,$f_fiat_currency,$f_sell_price,,,,,,$f_tax_type,$f_trade_tax,$f_sell_price,,$f_trade_result,,,,,,," >>ALL_TRANSACTIONS_OVERVIEW.csv.tmp
|
echo "$f_date,$f_exchange,$f_action,$f_symbol,-$f_sell_amount,$f_fiat_currency,$f_sell_price,,,,,,$f_tax_type,$f_trade_tax,$f_sell_price,,$f_trade_result,,,,,,," >>ALL_TRANSACTIONS_OVERVIEW.csv.tmp
|
||||||
@@ -347,8 +368,9 @@ function get_holdings_amount {
|
|||||||
|
|
||||||
function process_fundingfee {
|
function process_fundingfee {
|
||||||
local f_symbol="$1" f_amount="$2" f_fiat_amount_tax_currency="$3" f_date="$4" f_year="$5"
|
local f_symbol="$1" f_amount="$2" f_fiat_amount_tax_currency="$3" f_date="$4" f_year="$5"
|
||||||
|
|
||||||
echo "adding fundingfee: $f_fiat_amount_tax_currency"
|
## Debug
|
||||||
|
#echo "adding fundingfee: $f_fiat_amount_tax_currency"
|
||||||
|
|
||||||
## add fundingfee
|
## add fundingfee
|
||||||
[[ $f_fiat_amount_tax_currency == -* ]] && f_tax="${f_fiat_amount_tax_currency#-}"
|
[[ $f_fiat_amount_tax_currency == -* ]] && f_tax="${f_fiat_amount_tax_currency#-}"
|
||||||
@@ -357,61 +379,61 @@ function process_fundingfee {
|
|||||||
echo "$f_date,$f_exchange,$f_action,$f_symbol,$f_amount,,,,,,,,Kapitalertrag-Derivat,$f_tax,$f_tax,,$f_tax,,,,,,," >>ALL_TRANSACTIONS_OVERVIEW.csv.tmp
|
echo "$f_date,$f_exchange,$f_action,$f_symbol,$f_amount,,,,,,,,Kapitalertrag-Derivat,$f_tax,$f_tax,,$f_tax,,,,,,," >>ALL_TRANSACTIONS_OVERVIEW.csv.tmp
|
||||||
}
|
}
|
||||||
|
|
||||||
function transaction_csv_validity_ckecks {
|
#function transaction_csv_validity_ckecks {
|
||||||
local f_buy f_sell f_liquidation f_liquidation_short
|
# local f_buy f_sell f_liquidation f_liquidation_short
|
||||||
local f_complete_result=0
|
# local f_complete_result=0
|
||||||
declare -A transaction_csv_validity_ckeck_buy_sell_diff
|
# declare -A transaction_csv_validity_ckeck_buy_sell_diff
|
||||||
|
#
|
||||||
f_symbols=$(cut -d, -f3 $f_csv_file | sort -u)
|
# f_symbols=$(cut -d, -f3 $f_csv_file | sort -u)
|
||||||
local f_buy_amount f_sell_amount f_tax_type
|
# local f_buy_amount f_sell_amount f_tax_type
|
||||||
|
#
|
||||||
# go through symbols and male some pre-checks
|
# # go through symbols and male some pre-checks
|
||||||
for f_symbol in $f_symbols
|
# for f_symbol in $f_symbols
|
||||||
do
|
# do
|
||||||
|
#
|
||||||
## check asset amount
|
# ## check asset amount
|
||||||
g_echo_note "Initial checks for $f_symbol"
|
# g_echo_note "Initial checks for $f_symbol"
|
||||||
# add all buys and sells of a symbols amount
|
# # add all buys and sells of a symbols amount
|
||||||
f_buy=$(\
|
# f_buy=$(\
|
||||||
egrep "buy,${f_symbol},|,reward-staking,${f_symbol}|,giveaway,${f_symbol},instant_trade_bonus,${f_symbol}" "$f_csv_file" | \
|
# egrep "buy,${f_symbol},|,reward-staking,${f_symbol}|,giveaway,${f_symbol},instant_trade_bonus,${f_symbol}" "$f_csv_file" | \
|
||||||
cut -d, -f4 | \
|
# cut -d, -f4 | \
|
||||||
awk '{ SUM += $1} END { printf("%.12f\n", SUM) }' \
|
# awk '{ SUM += $1} END { printf("%.12f\n", SUM) }' \
|
||||||
)
|
# )
|
||||||
f_sell=$(\
|
# f_sell=$(\
|
||||||
egrep "sell,${f_symbol}," "$f_csv_file" | \
|
# egrep "sell,${f_symbol}," "$f_csv_file" | \
|
||||||
cut -d, -f4 | \
|
# cut -d, -f4 | \
|
||||||
awk '{ SUM += $1} END { printf("%.12f\n", SUM) }' \
|
# awk '{ SUM += $1} END { printf("%.12f\n", SUM) }' \
|
||||||
)
|
# )
|
||||||
f_liquidation=$(\
|
# f_liquidation=$(\
|
||||||
egrep "liquidation,${f_symbol}," "$f_csv_file" | \
|
# egrep "liquidation,${f_symbol}," "$f_csv_file" | \
|
||||||
grep -v ",short" | \
|
# grep -v ",short" | \
|
||||||
cut -d, -f4 | \
|
# cut -d, -f4 | \
|
||||||
awk '{ SUM += $1} END { printf("%.12f\n", SUM) }' \
|
# awk '{ SUM += $1} END { printf("%.12f\n", SUM) }' \
|
||||||
)
|
# )
|
||||||
f_liquidation_short=$(\
|
# f_liquidation_short=$(\
|
||||||
egrep "liquidation,${f_symbol},.+,short" "$f_csv_file" | \
|
# egrep "liquidation,${f_symbol},.+,short" "$f_csv_file" | \
|
||||||
cut -d, -f4 | \
|
# cut -d, -f4 | \
|
||||||
awk '{ SUM += $1} END { printf("%.12f\n", SUM) }' \
|
# awk '{ SUM += $1} END { printf("%.12f\n", SUM) }' \
|
||||||
)
|
# )
|
||||||
|
#
|
||||||
# add liquidations to sell
|
# # add liquidations to sell
|
||||||
# long
|
# # long
|
||||||
g_calc "$f_sell + $f_liquidation - $f_liquidation_short"
|
# g_calc "$f_sell + $f_liquidation - $f_liquidation_short"
|
||||||
f_sell=$g_calc_result
|
# f_sell=$g_calc_result
|
||||||
|
#
|
||||||
# buy should be same as sell sum to be fine - if not:
|
# # buy should be same as sell sum to be fine - if not:
|
||||||
g_calc "$f_buy == $f_sell"
|
# g_calc "$f_buy == $f_sell"
|
||||||
if ! [[ $g_calc_result == 1 ]]
|
# if ! [[ $g_calc_result == 1 ]]
|
||||||
then
|
# then
|
||||||
g_echo_note "buy ($f_buy) and sell ($f_sell) amount sums are different for ${f_symbol}. Open Positions!?"
|
# g_echo_note "buy ($f_buy) and sell ($f_sell) amount sums are different for ${f_symbol}. Open Positions!?"
|
||||||
g_calc "$f_sell - ($f_buy)"
|
# g_calc "$f_sell - ($f_buy)"
|
||||||
transaction_csv_validity_ckecks[$f_symbol]=$g_calc_result
|
# transaction_csv_validity_ckecks[$f_symbol]=$g_calc_result
|
||||||
else
|
# else
|
||||||
transaction_csv_validity_ckeck_buy_sell_diff[$f_symbol]=0
|
# transaction_csv_validity_ckeck_buy_sell_diff[$f_symbol]=0
|
||||||
fi
|
# fi
|
||||||
|
#
|
||||||
done
|
# done
|
||||||
}
|
#}
|
||||||
|
|
||||||
function print_results {
|
function print_results {
|
||||||
|
|
||||||
|
|||||||
@@ -56,10 +56,6 @@ function get_phemex_csv_transactions {
|
|||||||
grep -q "$f_id" "TRANSACTIONS-phemex.csv" || echo $f_line >>"TRANSACTIONS-phemex.csv"
|
grep -q "$f_id" "TRANSACTIONS-phemex.csv" || echo $f_line >>"TRANSACTIONS-phemex.csv"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#cat TRANSACTIONS-phemex-LONG.csv.tmp TRANSACTIONS-phemex.csv.tmp TRANSACTIONS-phemex-liquidations-LONG.csv.tmp | sort >TRANSACTIONS-phemex.csv
|
|
||||||
#cat TRANSACTIONS-phemex-SHORT.csv.tmp TRANSACTIONS-phemex-liquidations-SHORT.csv.tmp | sort >>TRANSACTIONS-phemex.csv
|
|
||||||
# cleanup
|
# cleanup
|
||||||
rm -f TRANSACTIONS-phemex-LONG.csv.tmp TRANSACTIONS-phemex-SHORT.csv.tmp TRANSACTIONS-phemex.csv.tmp TRANSACTIONS-phemex-liquidations-LONG.csv.tmp TRANSACTIONS-phemex-liquidations-SHORT.csv.tmp
|
rm -f TRANSACTIONS-phemex-LONG.csv.tmp TRANSACTIONS-phemex-SHORT.csv.tmp TRANSACTIONS-phemex.csv.tmp TRANSACTIONS-phemex-liquidations-LONG.csv.tmp TRANSACTIONS-phemex-liquidations-SHORT.csv.tmp
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user