From 7522baa0f11c7e4789dbbde1fdc8693880e7d177 Mon Sep 17 00:00:00 2001 From: mindesbunister Date: Tue, 29 Jul 2025 19:03:11 +0200 Subject: [PATCH] feat: money printing machine - improved scalping with 1h/4h timeframes, trend filter, and better risk management --- app/automation-v2/page.js | 24 ++++++++++++------------ lib/simple-automation.js | 22 ++++++++++++++-------- prisma/prisma/dev.db | Bin 16240640 -> 16318464 bytes 3 files changed, 26 insertions(+), 20 deletions(-) diff --git a/app/automation-v2/page.js b/app/automation-v2/page.js index 3667ca5..d7ec816 100644 --- a/app/automation-v2/page.js +++ b/app/automation-v2/page.js @@ -18,7 +18,7 @@ export default function AutomationPageV2() { mode: 'LIVE', dexProvider: 'DRIFT', symbol: 'SOLUSD', - selectedTimeframes: ['5', '15', '30'], // Default to scalping preset + selectedTimeframes: ['60', '240'], // Default to improved scalping preset (1h, 4h) tradingAmount: 100, balancePercentage: 100, // Default to 100% of available balance }) @@ -772,35 +772,35 @@ Based on comprehensive technical analysis across multiple timeframes:
diff --git a/lib/simple-automation.js b/lib/simple-automation.js index 0d382ee..4a0259f 100644 --- a/lib/simple-automation.js +++ b/lib/simple-automation.js @@ -606,17 +606,23 @@ class SimpleAutomation { console.warn('⚠️ Could not determine position status for confidence adjustment'); } - // 🎯 AGGRESSIVE SCALPING CONFIDENCE when NO POSITION - let minConfidence = 75; // Default confidence + // 🎯 IMPROVED CONFIDENCE THRESHOLDS - Higher standards to reduce losses + let minConfidence = 80; // Increased default confidence if (!hasActivePosition) { - // NO POSITION = Lower confidence threshold for faster re-entry - if (this.config.selectedTimeframes?.includes('5m')) { - minConfidence = 65; // Very aggressive for 5m scalping - console.log('🏃‍♂️ SCALPING MODE: Using aggressive 65% confidence (no position)'); + // NO POSITION = Still require high confidence for quality entries + if (this.config.selectedTimeframes?.includes('1h')) { + minConfidence = 75; // 1h timeframe - medium confidence + console.log('📊 1H TRADING: Using 75% confidence threshold (no position)'); + } else if (this.config.selectedTimeframes?.includes('4h')) { + minConfidence = 70; // 4h timeframe - lower confidence OK due to higher reliability + console.log('📈 4H TRADING: Using 70% confidence threshold (no position)'); + } else if (this.config.selectedTimeframes?.includes('5m')) { + minConfidence = 80; // 5m requires very high confidence due to noise + console.log('⚡ 5M SCALPING: Using high 80% confidence (noisy timeframe)'); } else if (this.config.selectedTimeframes?.includes('15m')) { - minConfidence = 70; // Aggressive for 15m scalping - console.log('⚡ SCALPING MODE: Using aggressive 70% confidence (no position)'); + minConfidence = 78; // 15m also requires high confidence + console.log('🏃‍♂️ 15M SCALPING: Using high 78% confidence (noisy timeframe)'); } else { minConfidence = 72; // Slightly lower for day trading console.log('📈 DAY TRADING: Using 72% confidence (no position)'); diff --git a/prisma/prisma/dev.db b/prisma/prisma/dev.db index 8dabb7a777fb7c26f62682ed278f4799a1531070..8eb23711f6098221aa4a5fb8bb603ccecac5c3d2 100644 GIT binary patch delta 18711 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 delta 1950 zcmX}rc~n$Y90%~X+?jzH7?weqAQS`>kq8w9C4pQ@(Gb*3O%XS6D<@GQ1-oXxaY0!W zE|wZRQ7MAlFKJF_xPYN%n>w0G?im42jOS#_7wh!L=X>ru=l9`^FXg~`(Z~<4)g8|&Y9gN@sp5O)E zU;-cL0$sru%M80niP)Lm&h}4+w@3=n2n3F9?O+5C(l99G-^=cmX1zFZ6@{ zyg5Irho_t>r7&Gt)F?KkENY2fGKmkw<6^0}h@C5oy37JgMGgD=O0N>6H%L+496Pwk?(M2;G)3b{eW~p6RWn+~W*JP>bBCA=Z`mw*ZIK3Im z#%k)M4lnJ1t%Bfs@o6c)maQ(_$+-()#B1y(S zxVoB8HekesC9L3lPB6=<&k11bkLSc#v+_CA!sl=Vj=~pkjA!NBHhQ|WlL@%deGYpf zUERVrmD!SIX4yR4-1#_xBT>v{$-C`c0;vA zF#XQpmE5h|Mn$Gqu`H6VCX13Fa2Im5R2S-=ZO881v+QG$%j{#2OYI|(OYFmtnf5s3 zV*4N#Sz+tN%4=)^M9|ua)zj@NT!WwBI^2Mp& zqi_F9q9BHf*Xf0%@*XDN}ip94WhyI#Nn3WF!fcAIle5vge3! z7L$+=$w~^GMs_J7!NlEz9Ji&;G4f&8EUFLp3vrmyUFY?N{e!&Oq@Ip=zO>kBka14s zIwqQ9O{_98)`RaZbymx)dvUbMnjY?e-+6j?$BywNUK=WOHW|rcXh#zFrZHV59!UN2 z