From 705df375c91412bd6e27ba48b32476908ff694a6 Mon Sep 17 00:00:00 2001 From: olli Date: Tue, 17 Dec 2024 11:37:32 +0100 Subject: [PATCH] fixes --- strategies/example.strategy.sh | 3 +++ .../example_manage_positions.strategy.sh | 25 ++++++++++++------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/strategies/example.strategy.sh b/strategies/example.strategy.sh index 59df0ec..046db1f 100644 --- a/strategies/example.strategy.sh +++ b/strategies/example.strategy.sh @@ -184,6 +184,9 @@ do [[ $side = long ]] && entry_price=${v[${asset}_levels_1w_next_down]} [[ $side = short ]] && entry_price=${v[${asset}_levels_1w_next_up]} + # if entry price not given set to current price + [ -z "$entry_price" ] && entry_price=${v[BTCUSDT_price]} + # check for updates if order with entry price is already defined if [ -n "${o[${asset}_open_${side}_entry_price]}" ] then diff --git a/strategies/example_manage_positions.strategy.sh b/strategies/example_manage_positions.strategy.sh index bd5f1c0..b717ab5 100644 --- a/strategies/example_manage_positions.strategy.sh +++ b/strategies/example_manage_positions.strategy.sh @@ -5,7 +5,7 @@ g_echo_note "EXAMPLE Strategy for managing open positions" ##### WARNING! This strategy is only intended as an example and should not be used with real trades. Please develop your own strategy ###### # if you want to use this remove the next line with return 0 -return 0 +#return 0 # get vars with positions get_position_array @@ -17,16 +17,22 @@ do asset=${asset//\//} # adjust stoploss from percentage profit - from_profit=1 - if [ -n "$LEVERAGE" ] + from_profit=0.5 + if [ -n "$LEVERAGE" ] then g_calc "${from_profit}*${LEVERAGE}" from_profit=$g_calc_result fi # save profit by switching stoploss in profit - if [ -n "${p[${asset}_pnl]}" ] && [[ ${p[${asset}_side]} = long ]] + if [ -n "${p[${asset}_pnl]}" ] then + + # what side are we on (long or short) + side=${p[${asset}_side]} + + g_echo_note "Checking open $side position for $f_asset" + if g_num_is_higher ${p[${asset}_pnl_percentage]} $from_profit then # calculate stoploss price with half of current pnl @@ -34,19 +40,20 @@ do stoploss_price=$g_calc_result # check for already existing stoploss - if [ -n "${o[${asset}_sl_close_long_id]}" ] + if [ -n "${o[${asset}_sl_close_${side}_id]}" ] then # do nothing if current stoploss price is already larger/equal then half of current pnl - g_num_is_higher_equal ${o[${asset}_sl_close_long_stopprice]} $stoploss_price && continue + g_num_is_higher_equal ${o[${asset}_sl_close_${side}_stopprice]} $stoploss_price && continue # cancel existing stoploss order - order_cancel_id "$symbol" "${o[${asset}_sl_close_long_id]}" || continue + order_cancel_id "$symbol" "${o[${asset}_sl_close_${side}_id]}" || continue fi # create new stoploss - echo "==== New StopLoss for $asset at $stoploss_price" - order "$symbol" "${p[${asset}_asset_amount]}" long stoploss "$stoploss_price" + g_echo_ok "==== New StopLoss in profit for $asset at $stoploss_price" + order "$symbol" "asset_amount:${p[${asset}_asset_amount]}" ${side} stoploss "$stoploss_price" fi fi + done