
Free EAs Community
Share and discover free trading robots

Sonfack AI is a sophisticated trading expert advisor engineered to optimize market performance through advanced algorithmic precision. By integrating intelligent pattern recognition and automated risk management, it identifies high-probability opportunities while minimizing human error. Designed for stability and consistent execution, Sonfack AI adapts to shifting market conditions, providing traders with a powerful, hands-free solution to enhance their portfolio growth. Elevate your trading strategy with the clarity and efficiency of Sonfack AI.

Good luck, dear Traders :-) | //| Copyright 2025, GPT4trade | //| https://www.robot4trade.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2016-2025 robot4trade.com" #property link "https://www.robot4trade.com/" //+-------------------------------------------

AlphaProp Momentum is a sophisticated multi-indicator algorithmic trading robot designed for disciplined market participation. By integrating trend-following EMA filters, volatility-based Bollinger Bands, and momentum-confirming oscillators like RSI, MACD, and Stochastic, it identifies high-probability breakout and trend-continuation opportunities. The strategy emphasizes strict entry criteria, ensuring the robot only trades during defined active sessions and within favorable spread conditions, making it an ideal tool for professional prop firm environments. Key Features: • Multi-Indicator Confluence: Combines trend analysis (EMA, SuperTrend), momentum (RSI, MACD, Stochastic), and volatility filters (ATR, Bollinger Bands). • Dynamic Risk Management: Implements automated lot sizing based on ATR volatility, along with hard-coded daily and total drawdown protections. • Trailing Stop Implementation: Utilizes Parabolic SAR to dynamically trail open positions, locking in profits during strong market moves. • Temporal Filters: Integrated session timing to avoid high-volatility news gaps or low-liquidity market hours. • Spread Control: Built-in safety filter to prevent execution during high-spread market conditions. Recommended Timeframes: H1 (1 Hour), H4 (4 Hours), M15 (15 Minutes)

f

test 1

//+------------------------------------------------------------------+ //| Good luck, dear Traders :-) | //| Copyright 2025, GPT4trade | //| https://www.robot4trade.com | //+------------------------------------------------------------------+ // Copyright 2016-2025 robot4trade.com // Website: https://www.robot4trade.com/ // Input parameters for the EA input double LotSize = 0.01; // Lot size for trading input double StopLossPips = 50; // Stop loss in pips input double TakeProfitPips = 100; // Take profit in pips input double RiskPercentage = 1.0; // Risk percentage for the account input int Slippage = 3; // Maximum slippage allowed in pips input double MaxDrawdown = 10.0; // Maximum allowed drawdown in percentage input string TradeSessionStart = "09:00"; // Start of trading session input string TradeSessionEnd = "17:00"; // End of trading session input bool UseMovingAverage = true; // Use moving average as a filter input int MaPeriod = 20; // Period for moving average input double MaDeviation = 0.01; // Deviation for moving average input double ATRMultiplier = 1.5; // Multiplier for ATR based stop loss input int ATRPeriod = 14; // Period for ATR input bool EmailAlerts = true; // Enable email alerts input bool SoundAlerts = true; // Enable sound alerts input bool VisualAlerts = true; // Enable visual alerts input bool UseTrailingStop = false; // Use trailing stop input int TrailingStopPips = 30; // Trailing stop in pips input double MaxSpread = 3.0; // Maximum spread allowed input bool DebugMode = false; // Enable debug logging // Global variables double CurrentLotSize; // Current lot size based on account risk double AdjustableStopLoss; // Calculated stop loss value double AdjustableTakeProfit; // Calculated take profit value double LastTradeProfit = 0; // Last trade profit for tracking int MagicNumber = 123456; // Unique magic number for the EA int BuyHandle, SellHandle; // Handles for buy/sell orders bool IsInTrade = false; // Flag to check if a position is open datetime LastTradeTime; // Last trade time for tracking double AccountRisk; // Account risk for money management // Indicator handles int MaHandle; // Handle for moving average int ATRHandle; // Handle for ATR // OnInit function - initializes the EA int OnInit() { Print("Initializing EA..."); // Validate input parameters if(LotSize <= 0 || StopLossPips <= 0 || TakeProfitPips <= 0) { Print("Invalid lot size, stop loss or take profit parameters."); return INIT_FAILED; } AccountRisk = (RiskPercentage / 100) * AccountBalance(); // Initialize indicators if(UseMovingAverage) { MaHandle = iMA(NULL, 0, MaPeriod, 0, MODE_SMA, PRICE_CLOSE); if(MaHandle == 0) { Print("Failed to create MA indicator."); return INIT_FAILED; } } ATRHandle = iATR(NULL, 0, ATRPeriod); if(ATRHandle == 0) { Print("Failed to create ATR indicator."); return INIT_FAILED; } Print("EA initialized successfully."); return INIT_SUCCEEDED; } // OnDeinit function - cleans up resources void OnDeinit(const int reason) { if(MaHandle != 0) IndicatorRelease(MaHandle); if(ATRHandle != 0) IndicatorRelease(ATRHandle); // Save statistics or other clean up logic Print("EA deinitialized."); } // OnTick function - main logic executed on every tick void OnTick() { if(!IsTradingTime()) return; // Check for buy/sell signals if(CheckBuySignal()) { OpenBuyOrder(); } else if(CheckSellSignal()) { OpenSellOrder(); } // Manage open trades ManageOpenTrades(); } // Check buy signal logic bool CheckBuySignal() { if(GetCurrentSpread() > MaxSpread) return false; if(UseMovingAverage) { double MAValue = CopyBuffer(MaHandle, 0, 0, 1)[0]; double Price = SymbolInfoDouble(_Symbol, SYMBOL_BID); if(Price > MAValue) { return true; } } // Additional signal filters can be added here return false; } // Check sell signal logic bool CheckSellSignal() { if(GetCurrentSpread() > MaxSpread) return false; if(UseMovingAverage) { double MAValue = CopyBuffer(MaHandle, 0, 0, 1)[0]; double Price = SymbolInfoDouble(_Symbol, SYMBOL_ASK); if(Price < MAValue) { return true; } } // Additional signal filters can be added here return false; } // Open buy order function void OpenBuyOrder() { if(IsInTrade) return; CurrentLotSize = CalculateLotSize(); AdjustableStopLoss = CalculateStopLoss(); AdjustableTakeProfit = CalculateTakeProfit(); double price = SymbolInfoDouble(_Symbol, SYMBOL_BID); int ticket = OrderSend(_Symbol, OP_BUY, CurrentLotSize, price, Slippage, price - AdjustableStopLoss, price + AdjustableTakeProfit, "Buy Order", MagicNumber, 0, clrGreen); if(ticket < 0) { LogError("Buy order failed: " + GetLastError()); return; } LastTradeProfit = 0; LastTradeTime = TimeCurrent(); IsInTrade = true; LogTrade(DIRECTION_BUY, CurrentLotSize, price, AdjustableStopLoss, AdjustableTakeProfit); } // Open sell order function void OpenSellOrder() { if(IsInTrade) return; CurrentLotSize = CalculateLotSize(); AdjustableStopLoss = CalculateStopLoss(); AdjustableTakeProfit = CalculateTakeProfit(); double price = SymbolInfoDouble(_Symbol, SYMBOL_ASK); int ticket = OrderSend(_Symbol, OP_SELL, CurrentLotSize, price, Slippage, price + AdjustableStopLoss, price - AdjustableTakeProfit, "Sell Order", MagicNumber, 0, clrRed); if(ticket < 0) { LogError("Sell order failed: " + GetLastError()); return; } LastTradeProfit = 0; LastTradeTime = TimeCurrent(); IsInTrade = true; LogTrade(DIRECTION_SELL, CurrentLotSize, price, AdjustableStopLoss, AdjustableTakeProfit); } // Calculate lot size based on account balance and risk double CalculateLotSize() { double lotSize = AccountRisk / (StopLossPips * Point * 10); return NormalizeDouble(lotSize, 2); } // Calculate stop loss in price terms double CalculateStopLoss() { double atrValue = CopyBuffer(ATRHandle, 0, 0, 1)[0]; double stopLoss = atrValue * ATRMultiplier; return stopLoss; } // Calculate take profit in price terms double CalculateTakeProfit() { return TakeProfitPips * Point; } // Check if Maximum Drawdown is exceeded bool CheckMaxDrawdown() { double drawdown = (AccountEquity() - AccountBalance()) / AccountEquity() * 100; return drawdown <= MaxDrawdown; } // Manage open trades for trailing stop or closing logic void ManageOpenTrades() { if(IsInTrade) { // Example of a trailing stop logic double openPrice = 0; // Get open order price double currentPrice = SymbolInfoDouble(_Symbol, SYMBOL_BID); double trailingStop = currentPrice - TrailingStopPips * Point; if(currentPrice > openPrice + TrailingStopPips * Point) { OrderModify(ticket, openPrice, trailingStop, 0, 0, clrGreen); } } } // Helper function to check if a new bar has formed bool IsNewBar() { static datetime lastTime; datetime currentTime = iTime(NULL, 0, 0); if(currentTime != lastTime) { lastTime = currentTime; return true; } return false; } // Helper function to check if trading time is valid bool IsTradingTime() { datetime now = TimeCurrent(); string startHour = TradeSessionStart; string endHour = TradeSessionEnd; datetime startTime = StringToTime(TimeToString(now, TIME_DATE) + " " + startHour); datetime endTime = StringToTime(TimeToString(now, TIME_DATE) + " " + endHour); return (now >= startTime && now <= endTime); } // Get current spread double GetCurrentSpread() { double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); return ask - bid; } // Normalize functions double NormalizeDouble(double value, int digits) { return MathRound(value * MathPow(10, digits)) / MathPow(10, digits); } // Log trade details void LogTrade(int direction, double lotSize, double price, double stopLoss, double takeProfit) { string directionStr = (direction == DIRECTION_BUY) ? "BUY" : "SELL"; Print("Trade executed: " + directionStr + " - Lot Size: " + lotSize + " Price: " + price + " SL: " + stopLoss + " TP: " + takeProfit); } // Log error messages void LogError(string message) { Print("Error: " + message); if(EmailAlerts) SendMail("Error Alert", message); if(SoundAlerts) PlaySound("error.wav"); if(VisualAlerts) Alert(message); }

Bollinger Blitz is a sophisticated trading robot that leverages the Bollinger Bands and Simple Moving Average indicators to identify optimal trading opportunities in a scalping strategy. Designed for agility in the dynamic currency markets, this EA operates primarily on the 1-minute timeframe, enabling traders to capitalize on short-term price movements. The core strategy involves buying when the price is above the lower Bollinger band and the moving average, and selling when it is below the upper Bollinger band while also factoring in the prevailing trend indicated by the moving average. This dual-condition approach helps to filter out false signals and enhances the probability of successful trades. Key Features: • Utilizes Bollinger Bands for volatility-based trading decisions • Incorporates a Simple Moving Average to determine trend direction • Features risk management tools including stop loss, take profit, and a trailing stop feature • Daily loss limit to protect trading capital • Option to enable news and session filters to minimize risk during potentially volatile periods Recommended Timeframes: 1 Minute, 5 Minutes

PipPrecision Pro is an advanced trading robot designed to capitalize on evolving market trends through a systematic and data-driven approach. By employing a unique combination of trend strength analysis and volatility assessments, this Expert Advisor positions itself favorably in dynamic market conditions. It utilizes a proprietary TrendStrengthIndicator and the Average True Range (ATR) to determine when to execute buy or sell trades—the robot activates when the trend is favorable, ensuring that trades are aligned with momentum. The strategically calculated lot sizes further optimize trading opportunities based on the trader's specified risk percentage, enhancing the robot's adaptability to different account sizes while maintaining a keen focus on maximizing potential gains. Key Features: • Automated trading based on trend strength and volatility • Calculated lot sizing to mitigate risk exposure • User-configurable settings for lot size, stop loss, and take profit • Integration of the Average True Range (ATR) for enhanced volatility assessment • Immediate order execution with built-in error handling for reliability Recommended Timeframes: M1 (1 Minute), M5 (5 Minutes), M15 (15 Minutes), H1 (1 Hour)

The RSI Trader Pro is an advanced trading robot designed to harness the power of the Relative Strength Index (RSI) and Average True Range (ATR) indicators to identify and act upon trading opportunities effectively. This system operates on the premise that extreme movements in asset prices often lead to reversals or continuations, making it ideal for spotting oversold and overbought conditions in the market. By leveraging these technical indicators, the robot executes trades with precision, targeting conditions where the RSI dips below 30 for buying opportunities and rises above 70 for selling. This strategy allows traders to capitalize on market volatility while minimizing the risk of losses associated with sudden price fluctuations. Key Features: • Utilizes RSI and ATR indicators for effective trading signals • Automated trade placement with defined entry, stop loss, and take profit levels • Dynamic lot sizing to manage risk based on account balance • Adjustable parameters for personalization: RSI period, ATR period, risk percentage, lot size, slippage, take profit, and stop loss • Real-time monitoring of market conditions to ensure optimal trade execution Recommended Timeframes: M15, H1, H4