Implement BOTTOM hedge strategy
This commit is contained in:
@ -234,6 +234,18 @@ class HyperliquidStrategy:
|
|||||||
adj_pct = max(-max_boost, min(max_boost, adj_pct))
|
adj_pct = max(-max_boost, min(max_boost, adj_pct))
|
||||||
|
|
||||||
raw_target_short = pool_delta
|
raw_target_short = pool_delta
|
||||||
|
|
||||||
|
# --- BOTTOM STRATEGY LOGIC ---
|
||||||
|
if strategy_type == "BOTTOM":
|
||||||
|
if current_price > self.entry_price:
|
||||||
|
# Disable hedging in upper half
|
||||||
|
raw_target_short = Decimal("0")
|
||||||
|
adj_pct = Decimal("0")
|
||||||
|
else:
|
||||||
|
# Enable hedging in lower half (standard delta)
|
||||||
|
# No asymmetric boost applied
|
||||||
|
adj_pct = Decimal("0")
|
||||||
|
|
||||||
adjusted_target_short = raw_target_short * (Decimal("1.0") + adj_pct)
|
adjusted_target_short = raw_target_short * (Decimal("1.0") + adj_pct)
|
||||||
|
|
||||||
diff = adjusted_target_short - abs(current_short_size)
|
diff = adjusted_target_short - abs(current_short_size)
|
||||||
@ -791,10 +803,18 @@ class UnifiedHedger:
|
|||||||
if not (is_buy_bool and data.get('is_at_bottom_edge', False)):
|
if not (is_buy_bool and data.get('is_at_bottom_edge', False)):
|
||||||
bypass_cooldown = True
|
bypass_cooldown = True
|
||||||
|
|
||||||
|
# --- BOTTOM STRATEGY SAFEGUARDS ---
|
||||||
|
strategy_type = config.get("HEDGE_STRATEGY", "ASYMMETRIC")
|
||||||
|
if strategy_type == "BOTTOM":
|
||||||
|
# strict: "do not use taker orders... except only on very bottom"
|
||||||
|
if not data.get('is_at_bottom_edge', False):
|
||||||
|
bypass_cooldown = False
|
||||||
|
force_taker_retry = False # Disable taker retry from fishing
|
||||||
|
|
||||||
# --- ASYMMETRIC HEDGE CHECK ---
|
# --- ASYMMETRIC HEDGE CHECK ---
|
||||||
is_asymmetric_blocked = False
|
is_asymmetric_blocked = False
|
||||||
p_mid_asym = Decimal("0")
|
p_mid_asym = Decimal("0")
|
||||||
strategy_type = config.get("HEDGE_STRATEGY", "ASYMMETRIC")
|
# strategy_type already fetched above
|
||||||
|
|
||||||
if strategy_type == "ASYMMETRIC" and is_buy_bool and not bypass_cooldown:
|
if strategy_type == "ASYMMETRIC" and is_buy_bool and not bypass_cooldown:
|
||||||
total_L_asym = Decimal("0")
|
total_L_asym = Decimal("0")
|
||||||
|
|||||||
Reference in New Issue
Block a user