Expert4x Grid Trend Multiplier <DELUXE · 2025>
for i in range(1000): price += np.random.randn() * 0.5 if i > 200 and i < 600: # Uptrend price += 0.1 elif i > 600: # Downtrend price -= 0.05 prices.append(max(price, 10)) df = pd.DataFrame({ 'high': [p * (1 + abs(np.random.randn() * 0.002)) for p in prices], 'low': [p * (1 - abs(np.random.randn() * 0.002)) for p in prices], 'close': prices }, index=dates)
def reset_strategy(self): """ Reset strategy to initial state """ self.balance = self.initial_balance self.grid_levels = [] self.open_positions = [] self.closed_trades = [] self.current_trend = "NEUTRAL" self.trend_strength = 0 self.total_multiplier = 1.0 self.total_trades = 0 self.winning_trades = 0 self.losing_trades = 0 self.max_drawdown = 0 self.peak_balance = self.initial_balance logger.info("Strategy reset to initial state") def run_backtest(): """ Run backtest with sample data """ # Generate sample price data np.random.seed(42) dates = pd.date_range('2023-01-01', periods=1000, freq='1H') price = 100 prices = [] expert4x grid trend multiplier
def get_performance_metrics(self) -> Dict: """ Calculate strategy performance metrics """ win_rate = (self.winning_trades / self.total_trades * 100) if self.total_trades > 0 else 0 profit_factor = 0 # Calculate profit factor gross_profit = sum(t['profit'] for t in self.closed_trades if t.get('profit', 0) > 0) gross_loss = abs(sum(t['profit'] for t in self.closed_trades if t.get('profit', 0) < 0)) profit_factor = gross_profit / gross_loss if gross_loss > 0 else float('inf') total_return = ((self.balance - self.initial_balance) / self.initial_balance) * 100 metrics = { 'total_return_pct': total_return, 'final_balance': self.balance, 'total_trades': self.total_trades, 'winning_trades': self.winning_trades, 'losing_trades': self.losing_trades, 'win_rate_pct': win_rate, 'profit_factor': profit_factor, 'max_drawdown_pct': self.max_drawdown, 'current_trend': self.current_trend, 'trend_strength': self.trend_strength, 'final_multiplier': self.total_multiplier, 'open_positions': len(self.open_positions) } return metrics for i in range(1000): price += np
print("\n" + "="*50) print("GRID TREND MULTIPLIER STRATEGY RESULTS") print("="*50) for key, value in metrics.items(): if isinstance(value, float): print(f"{key.replace('_', ' ').title()}: {value:.2f}") else: print(f"{key.replace('_', ' ').title()}: {value}") return strategy, metrics if == " main ": strategy, metrics = run_backtest() 200 and i <
The strategy automatically adapts to market conditions, increasing exposure during strong trends while maintaining strict risk controls through position sizing and stop losses.
# Initialize and run strategy strategy = GridTrendMultiplier( initial_balance=10000, grid_distance_pct=0.5, max_grid_levels=8, trend_multiplier=1.5, max_multiplier=4.0, risk_per_trade=0.02 )
