“Seeking EA Developer for Automated NAS100 Trading with News Filter and Breakout Strategy”

Termos de Referência

This is what I got so far with deepseek: Could you create an Expert Advisor (EA) based on the following detailed trading strategy?

1. Risk-to-Reward Ratio
The EA should maintain a minimum risk-to-reward ratio of 5:1.
I am willing to risk no more than 1% of my total account size per trade.

2. News Avoidance and Timing Adjustments
The EA should automatically avoid trading during major and medium-impact news events by integrating an economic calendar or news filter.
Key Rules Regarding News:
If news events occur between 7:30 AM and 9:00 AM CST (Central Standard Time), the EA must wait for the news to take place and only start trading 15 minutes after the last news event.
If news candles break the initial 2:00 AM–7:00 AM range:
If the highs of the initial range are broken, the EA can trade breakouts of the news candle highs (in the direction of the broken range) or breakouts of the initial range lows (in the opposite direction).
If the lows of the initial range are broken, the EA can trade breakouts of the news candle lows (in the direction of the broken range) or breakouts of the initial range highs (in the opposite direction).
If the news candles do not break either side of the initial range, the EA can still trade breakouts of the unbroken side of the initial range, provided a 5-minute full-body candle breaks the range.
No trades should be entered after 12:00 PM CST.

3. Trading Instrument and Timeframe
The EA will trade the NAS100 index on the 5-minute timeframe.
The initial price range to monitor is the range established between 2:00 AM and 7:00 AM CST (adjusted to align with my broker’s timezone of GMT+2).
The range is defined by the highest and lowest points of the candle bodies (excluding wicks) during this period.

4. Entry Criteria
The EA should place trades only when the range is broken by a full-body candle closure.
A full-body candle is defined as one with at least a 70% body-to-wick ratio.
Trade logic:
If the initial range is broken by news candles, you can trade both in the direction of the news breakout (either highs or lows of the news candles) or in the opposite direction of the breakout (the unbroken side of the original range).
If the news candles do not break the range, the EA can trade the breakout of the unbroken side of the original range using a 5-minute full-body candle.

5. Stop-Loss and Take-Profit Rules
Initial Stop-Loss: 25 points.
Take-Profit Target: 125 points.
Break-Even Rule: Once the price moves 50 points in profit, the stop-loss should automatically be moved to breakeven.

6. Example Trade Setup
I have attached an example image of a trade setup for reference.

7. Broker Timezone and Adjustments
My broker’s timezone is GMT+2, while my local time is CST (Central Standard Time). Please ensure the range calculations are adjusted accordingly (i.e., 2:00 AM to 7:00 AM CST).

Could you ensure the EA incorporates these details, especially the logic for trading the opposite direction of the news candles as well as the unbroken side of the initial range? Let me know if anything needs further clarification! Here's a conceptual outline for the Expert Advisor (EA) based on your strategy. Note that full implementation requires integration with an economic calendar (external service) and thorough backtesting:

```mq4
//+------------------------------------------------------------------+
//|                                              NAS100_NewsEA.mq4   |
//|                        Copyright 2023, Your Company Name         |
//|                                        https://www.yourdomain.com|
//+------------------------------------------------------------------+
#property copyright "Copyright 2023"
#property version   "1.00"
#property strict

//--- Input Parameters
input double RiskPercent     = 1.0;     // Risk per trade (%)
input int    StopLossPoints  = 25;      // SL (points)
input int    TakeProfitPoints= 125;     // TP (points)
input int    BreakEvenPoints = 50;      // BE at (points)

//--- Global Variables
double initialRangeHigh, initialRangeLow;
datetime newsAvoidStart, newsAvoidEnd;
bool rangeBroken = false;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
   DetermineInitialRange();
   DetermineNewsPeriods(); // Requires integration with news source
   return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
   if(!IsTradingAllowed()) return;
   
   static datetime lastBarTime;
   if(Time[0] == lastBarTime) return;
   lastBarTime = Time[0];
   
   CheckTradingConditions();
   ManageOpenPositions();
}

//+------------------------------------------------------------------+
//| Determine Initial Price Range                                    |
//+------------------------------------------------------------------+
void DetermineInitialRange()
{
   datetime cstStart = ConvertCSTToServer(2, 0);   // 2:00 AM CST
   datetime cstEnd = ConvertCSTToServer(7, 0);     // 7:00 AM CST
   
   initialRangeHigh = 0;
   initialRangeLow = EMPTY_VALUE;
   
   for(int i = iBarShift(NULL, 0, cstStart); i >= iBarShift(NULL, 0, cstEnd); i--)
   {
      double bodyHigh = MathMax(Open[i], Close[i]);
      double bodyLow = MathMin(Open[i], Close[i]);
      
      if(bodyHigh > initialRangeHigh) initialRangeHigh = bodyHigh;
      if(bodyLow < initialRangeLow) initialRangeLow = bodyLow;
   }
}

//+------------------------------------------------------------------+
//| Check Trading Conditions                                         |
//+------------------------------------------------------------------+
void CheckTradingConditions()
{
   // Check news impact
   if(IsNewsEvent()) return;
   
   // Check trading hours
   if(TimeCurrent() > ConvertCSTToServer(12, 0)) return; // 12:00 PM CST
   
   // Check breakout conditions
   CheckRangeBreakouts();
}

//+------------------------------------------------------------------+
//| Range Breakout Logic                                             |
//+------------------------------------------------------------------+
void CheckRangeBreakouts()
{
   // Check for valid breakout candle
   if(IsFullBodyCandle(0))
   {
      // Bullish breakout
      if(Close[0] > initialRangeHigh && !rangeBroken)
      {
         OpenTrade(OP_BUY);
         rangeBroken = true;
      }
      // Bearish breakout
      else if(Close[0] < initialRangeLow && !rangeBroken)
      {
         OpenTrade(OP_SELL);
         rangeBroken = true;
      }
   }
}

//+------------------------------------------------------------------+
//| Trade Management                                                 |
//+------------------------------------------------------------------+
void OpenTrade(int cmd)
{
   double lots = CalculateLots();
   int ticket = OrderSend(_Symbol, cmd, lots, 
                         cmd == OP_BUY ? Ask : Bid, 
                         3, 0, 0, "NewsBreakout", 0);
   
   if(ticket > 0)
   {
      double sl = cmd == OP_BUY ? Bid - StopLossPoints*Point : Ask + StopLossPoints*Point;
      double tp = cmd == OP_BUY ? Bid + TakeProfitPoints*Point : Ask - TakeProfitPoints*Point;
      OrderModify(ticket, 0, sl, tp, 0);
   }
}

//+------------------------------------------------------------------+
//| Money Management                                                 |
//+------------------------------------------------------------------+
double CalculateLots()
{
   double riskAmount = AccountBalance() * RiskPercent / 100;
   double tickValue = MarketInfo(_Symbol, MODE_TICKVALUE);
   return NormalizeDouble(riskAmount / (StopLossPoints * tickValue), 2);
}

//+------------------------------------------------------------------+
//| News Handling Functions (Placeholder - Requires Implementation)  |
//+------------------------------------------------------------------+
bool IsNewsEvent()
{
   // Requires integration with news API/calendar
   return false;
}

datetime ConvertCSTToServer(int hour, int minute)
{
   // CST to GMT+2 conversion (requires DST handling)
   return StrToTime(TimeToStr(TimeCurrent() - (8 * 3600) + (hour * 3600) + (minute * 60)));
}

//+------------------------------------------------------------------+
//| Additional Required Functions                                    |
//+------------------------------------------------------------------+
bool IsFullBodyCandle(int bar)
{
   double body = MathAbs(Close[bar] - Open[bar]);
   double range = High[bar] - Low[bar];
   return (range > 0) && (body/range >= 0.7);
}

void ManageOpenPositions()
{
   for(int i = OrdersTotal()-1; i >= 0; i--)
   {
      if(OrderSelect(i, SELECT_BY_POS))
      {
         if(OrderProfit() >= BreakEvenPoints*Point)
         {
            if(OrderStopLoss() != OrderOpenPrice())
               OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0);
         }
      }
   }
}
```

**Important Notes:**

1. **News Integration Required:** The `IsNewsEvent()` function needs integration with an economic calendar API (e.g., Forex Factory, FXCM API). This is not implemented here due to platform limitations.

2. **Time Zone Handling:** The `ConvertCSTToServer()` function assumes a fixed 8-hour offset. You may need to adjust for daylight saving time changes.

3. **Range Calculation:** The EA calculates the initial range using the first 5-minute bars of the trading day.

4. **Risk Management:** Position sizing automatically calculates based on 1% risk and 25-point stop loss.

5. **Order Management:** Implements break-even functionality at 50 points profit.

For a complete implementation, you would need to:

1. Integrate a news feed API
2. Implement proper timezone conversion with DST handling
3. Add error handling for order operations
4. Implement the counter-trend trading logic described
5. Add comprehensive logging and debugging features

Respondido

1
Desenvolvedor 1
Classificação
(325)
Projetos
505
19%
Arbitragem
32
44% / 31%
Expirado
34
7%
Carregado
2
Desenvolvedor 2
Classificação
(51)
Projetos
69
35%
Arbitragem
4
25% / 75%
Expirado
0
Livre
3
Desenvolvedor 3
Classificação
(1)
Projetos
1
0%
Arbitragem
1
0% / 100%
Expirado
0
Livre
4
Desenvolvedor 4
Classificação
Projetos
0
0%
Arbitragem
1
0% / 100%
Expirado
0
Livre
5
Desenvolvedor 5
Classificação
(33)
Projetos
35
20%
Arbitragem
5
40% / 40%
Expirado
0
Livre
Publicou: 1 código
6
Desenvolvedor 6
Classificação
(7)
Projetos
12
17%
Arbitragem
12
17% / 50%
Expirado
3
25%
Trabalhando
Publicou: 20 artigos
7
Desenvolvedor 7
Classificação
(8)
Projetos
9
56%
Arbitragem
0
Expirado
0
Livre
8
Desenvolvedor 8
Classificação
(341)
Projetos
411
53%
Arbitragem
20
55% / 15%
Expirado
29
7%
Carregado
9
Desenvolvedor 9
Classificação
(5)
Projetos
8
13%
Arbitragem
3
0% / 33%
Expirado
2
25%
Livre
Publicou: 1 código
10
Desenvolvedor 10
Classificação
(77)
Projetos
243
74%
Arbitragem
7
100% / 0%
Expirado
1
0%
Livre
Publicou: 1 artigo
11
Desenvolvedor 11
Classificação
(250)
Projetos
256
30%
Arbitragem
0
Expirado
3
1%
Livre
Publicou: 2 códigos
12
Desenvolvedor 12
Classificação
(45)
Projetos
46
24%
Arbitragem
34
9% / 85%
Expirado
10
22%
Livre
13
Desenvolvedor 13
Classificação
(159)
Projetos
284
35%
Arbitragem
18
22% / 61%
Expirado
42
15%
Carregado
14
Desenvolvedor 14
Classificação
(28)
Projetos
39
23%
Arbitragem
14
0% / 93%
Expirado
4
10%
Trabalhando
15
Desenvolvedor 15
Classificação
(322)
Projetos
499
67%
Arbitragem
5
40% / 0%
Expirado
4
1%
Livre
Publicou: 8 códigos
16
Desenvolvedor 16
Classificação
(2)
Projetos
1
0%
Arbitragem
1
0% / 100%
Expirado
0
Livre
17
Desenvolvedor 17
Classificação
(1)
Projetos
2
0%
Arbitragem
2
50% / 50%
Expirado
0
Livre
Pedidos semelhantes
Key Requirements: ​ Zone Detection: The EA must read "Weak Support/Resistance" zones generated by my indicator (I will provide the .mq4/ex4 file). ​ Execution Logic: - Identify the candle with the longest wick within the detected liquidity zone. ​Place a Pending Order (Buy Stop/Sell Stop) 20 points (2 pips) before the breakout level of that wick. ​ Trade Management: ​Fixed SL: 40 points (4 pips). ​Fixed TP: 40 points
I have a open source Tradingview indicator that I want it to be converted to Ninja Trader8. I have attached it. Please let me know, if you can do it and for how muc
GOLF SAFE BOT 30 - 200 USD
#property strict input int FastMA = 20; input int SlowMA = 50; input double LotSize = 0.01; input double StopLoss = 300; // Gold points input double TakeProfit = 600; int fastMA, slowMA; //------------------------------------------------- int OnInit() { fastMA = iMA(_Symbol, PERIOD_M15, FastMA, 0, MODE_EMA, PRICE_CLOSE); slowMA = iMA(_Symbol, PERIOD_M15, SlowMA, 0, MODE_EMA, PRICE_CLOSE);
Looking for programmer help convert existing mt4 ea to mt5 ea EA use very simple MA strategy with trailing stop. afsd sadfwe erf rtgr yhff nbmv opou ef ih qa nv gg
hello great developer I need to copy trading signals from the Forex Precision app. I receive push notifications with the trades, and I must manually copy them into MetaTrader 4 (MT4), including the entry price, take profit, and stop loss. Is necessary Copy from Forex precision take the type AUD/JPY Copy the entry value and type sell or buy and put this info in mt4 and put the take profitt +10 and stop loss -10
I need help in modifying an amibroker AFL indicator the indicator already works but I need per symbol static variable isolation, parameters persistence per symbol after restart, non declining trailing stop logic, parameter auto restore when switching symbols and a global reset function for static variables. For better understanding As discussed, this is the official offer for restructuring my RAD Chandelier stop loss
I am looking for an experienced MQL5 developer who already has or can provide an advanced grid-style Expert Advisor based on Bollinger Bands, designed for trading multiple forex pairs simultaneously. The EA should use intelligent grid placement logic derived from Bollinger Band levels, with dynamic lot sizing, proper risk management, and optimized trade management to handle ranging and volatile market conditions
Hi, I have a clear MT5 EA wrapper project with locked TSCEA, requiring enhanced execution logic (“pending OR better market” order handling). I can share detailed spec. Please let me know your availability and quote range. Thanks, Tom Pike ------------------------------------------------------------------------------------------------------------------------------ Title: MT5 Wrapper EA – “Limit Order OR Better
ICT_OneTrade_2R 100 - 200 USD
🔥 ICT_OneTrade_2R Precision. Discipline. Consistency. ICT_OneTrade_2R is a professional Expert Advisor designed for traders who value structured execution and controlled risk. This system is built around a fixed Risk-to-Reward ratio of 1:2 (RR 2.0) — meaning every trade is planned with precision: Risk 1 → Target 2. No randomness. No overtrading. Just one high-quality trade per session. ⚙️ Key Features ✔ Fixed RR 1:2
Trade settings: --------------------------------- fixed lot size ….. 0.0 Buy /Sell distance market order…. 0.0 - 700.0 points Buy / Sell distance pending order Entry---- 0.0 - 700.0 points Max Trade------ 10.0 Min spread...… 0.0 points Max spread..... 3000.0 points Daily profit percentage ….. 0.0 - 100 % Global Stoploss Percentage----- 0.0 - 100 % Max Daily loss Percentage ------0.0 - 100 % Stop level = 0.0 point

Informações sobre o projeto

Orçamento
30 - 200 USD