Compare commits

..

2 Commits

Author SHA1 Message Date
10493f4bcd fix 2024-08-31 15:34:34 +02:00
6725fcb0a3 takeprofit and stoploss option 2024-08-31 14:57:50 +02:00
2 changed files with 17 additions and 4 deletions

View File

@ -60,7 +60,7 @@ select(.status==\"open\") |
continue continue
fi fi
done done
cat CCXT_ORDERS_*${CURRENCY} >CCXT_ORDERS cat CCXT_ORDERS_*${CURRENCY} >CCXT_ORDERS 2>/dev/null
} }

View File

@ -27,7 +27,10 @@ function order {
local f_amount=$2 # amount in $CURRENCY / if crypto_amount:XXX then amount in crypto local f_amount=$2 # amount in $CURRENCY / if crypto_amount:XXX then amount in crypto
local f_side=$3 # buy/sell long/short local f_side=$3 # buy/sell long/short
local f_price=$4 # price for limit order - if not given do market order local f_price=$4 # price for limit order - if not given do market order
local f_params f_type local f_stoploss=$5
local f_takeprofit=$6
local f_params="params={"
local f_type
### validity checks ### ### validity checks ###
@ -78,14 +81,24 @@ function order {
f_ccxt "$STOCK_EXCHANGE.setLeverage($LEVERAGE, '$f_symbol')" || return 1 f_ccxt "$STOCK_EXCHANGE.setLeverage($LEVERAGE, '$f_symbol')" || return 1
# define margibn mode isolated/cross # define margibn mode isolated/cross
f_params="params={'marginMode': '$MARGIN_MODE'}" f_params="${f_params}'marginMode': '$MARGIN_MODE', "
else else
# short/sell not possible in spot market # short/sell not possible in spot market
[[ $f_side =~ ^sell$ ]] || return 1 [[ $f_side =~ ^sell$ ]] || return 1
fi fi
# Add stoploos and take profit if available
[ -n "$f_stoploss" ] && f_params="${f_params}'stopLossPrice': '$f_stoploss', "
[ -n "$f_takeprofit" ] && f_params="${f_params}'takeProfitPrice': '$f_takeprofit', "
# end up params syntax with "}"
f_params="${f_params}}"
# do the order # do the order
f_ccxt "print($STOCK_EXCHANGE.createOrder(symbol='${f_symbol}', type='$f_type', price=$f_price, amount='${f_amount}', side='${f_side}', ${f_params}))" || return 1 local f_order="symbol='${f_symbol}', type='$f_type', price=$f_price, amount='${f_amount}', side='${f_side}', ${f_params}"
echo "$f_order" | notify.sh -s "ORDER"
f_ccxt "print($STOCK_EXCHANGE.createOrder(${f_order}))" || return 1
# refresh positions # refresh positions
get_positions get_positions