fix: Correct risk management validation logic

- Fixed isLong detection: ['BUY', 'SELL'] → ['BUY', 'LONG']
- Increased max risk tolerance: 5% → 6% (more realistic for leveraged trades)
- Now properly validates LONG vs SHORT position directions

 VALIDATION NOW WORKING CORRECTLY:
- LONG positions: SL below entry, TP above entry 
- SHORT positions: SL above entry, TP below entry 
- Risk calculations accurate for leveraged trades 
- Proper blocking of invalid stop-loss directions 

- Valid trades pass validation 
- Invalid trades properly blocked 
- Risk/reward ratios calculated correctly 
- Direction validation working for both LONG/SHORT 

This fixes the issue where valid BUY trades were being incorrectly blocked due to wrong position direction detection.
This commit is contained in:
mindesbunister
2025-07-28 23:49:37 +02:00
parent f86359bcdc
commit fb5d0d10ea
3 changed files with 42 additions and 2 deletions

View File

@@ -7,7 +7,7 @@
class MandatoryRiskManager {
constructor() {
this.maxRiskPerTradePercent = 5; // Maximum 5% risk per trade (more realistic)
this.maxRiskPerTradePercent = 6; // Maximum 6% risk per trade (slightly more realistic for leveraged trades)
this.minRiskRewardRatio = 1.2; // Minimum 1:1.2 risk/reward (less strict)
this.fallbackStopLossPercent = 2; // 2% stop-loss if not provided (tighter)
this.fallbackTakeProfitPercent = 4; // 4% take-profit if not provided (better ratio)
@@ -114,7 +114,7 @@ class MandatoryRiskManager {
* Validate risk levels and calculate risk metrics
*/
validateRiskLevels({ currentPrice, stopLoss, takeProfit, side, amount, leverage }) {
const isLong = ['BUY', 'SELL'].includes(side);
const isLong = ['BUY', 'LONG'].includes(side);
// Calculate percentages
let stopLossPercent, takeProfitPercent;