|
@@ -651,6 +651,20 @@ class CopyTradingMonitor:
|
|
if 'open' in trade.action or 'add' in trade.action:
|
|
if 'open' in trade.action or 'add' in trade.action:
|
|
# Open new position or add to existing position
|
|
# Open new position or add to existing position
|
|
symbol = f"{trade.coin}/USDC:USDC"
|
|
symbol = f"{trade.coin}/USDC:USDC"
|
|
|
|
+
|
|
|
|
+ # Set leverage before placing the order
|
|
|
|
+ self.logger.info(f"⚖️ Setting leverage to {leverage}x for {trade.coin}")
|
|
|
|
+ leverage_result, leverage_error = await asyncio.to_thread(
|
|
|
|
+ self.client.set_leverage,
|
|
|
|
+ leverage=int(leverage),
|
|
|
|
+ symbol=symbol
|
|
|
|
+ )
|
|
|
|
+ if leverage_error:
|
|
|
|
+ self.logger.warning(f"⚠️ Failed to set leverage to {leverage}x for {trade.coin}: {leverage_error}")
|
|
|
|
+ # Continue anyway - leverage might already be set or order might still work
|
|
|
|
+ else:
|
|
|
|
+ self.logger.info(f"✅ Successfully set leverage to {leverage}x for {trade.coin}")
|
|
|
|
+
|
|
result, error = await asyncio.to_thread(
|
|
result, error = await asyncio.to_thread(
|
|
self.client.place_market_order,
|
|
self.client.place_market_order,
|
|
symbol=symbol,
|
|
symbol=symbol,
|
|
@@ -725,6 +739,18 @@ class CopyTradingMonitor:
|
|
reduce_side = 'sell' if 'long' in trade.action else 'buy'
|
|
reduce_side = 'sell' if 'long' in trade.action else 'buy'
|
|
self.logger.info(f"📉 Reducing position: {reduce_side} {token_amount:.6f} {trade.coin} (current size: {current_size:.6f})")
|
|
self.logger.info(f"📉 Reducing position: {reduce_side} {token_amount:.6f} {trade.coin} (current size: {current_size:.6f})")
|
|
|
|
|
|
|
|
+ # Set leverage before reducing position (in case it affects the order)
|
|
|
|
+ self.logger.info(f"⚖️ Setting leverage to {leverage}x for {trade.coin} (reduce)")
|
|
|
|
+ leverage_result, leverage_error = await asyncio.to_thread(
|
|
|
|
+ self.client.set_leverage,
|
|
|
|
+ leverage=int(leverage),
|
|
|
|
+ symbol=symbol
|
|
|
|
+ )
|
|
|
|
+ if leverage_error:
|
|
|
|
+ self.logger.warning(f"⚠️ Failed to set leverage to {leverage}x for {trade.coin}: {leverage_error}")
|
|
|
|
+ else:
|
|
|
|
+ self.logger.info(f"✅ Successfully set leverage to {leverage}x for {trade.coin}")
|
|
|
|
+
|
|
result, error = await asyncio.to_thread(
|
|
result, error = await asyncio.to_thread(
|
|
self.client.place_market_order,
|
|
self.client.place_market_order,
|
|
symbol=symbol,
|
|
symbol=symbol,
|