Specification
This is what I got so far with deepseek: Could you create an Expert Advisor (EA) based on the following detailed trading strategy?
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:
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).
```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
Responded
1
Rating
Projects
515
19%
Arbitration
35
46%
/
31%
Overdue
34
7%
Working
2
Rating
Projects
71
37%
Arbitration
4
25%
/
75%
Overdue
1
1%
Free
Published: 1 code
3
Rating
Projects
1
0%
Arbitration
1
0%
/
100%
Overdue
0
Free
4
Rating
Projects
0
0%
Arbitration
1
0%
/
100%
Overdue
0
Free
5
Rating
Projects
35
20%
Arbitration
5
40%
/
40%
Overdue
0
Free
Published: 1 code
6
Rating
Projects
13
15%
Arbitration
13
23%
/
46%
Overdue
3
23%
Free
Published: 41 articles
7
Rating
Projects
9
56%
Arbitration
0
Overdue
0
Free
8
Rating
Projects
459
55%
Arbitration
24
58%
/
17%
Overdue
31
7%
Working
9
Rating
Projects
8
13%
Arbitration
3
0%
/
33%
Overdue
2
25%
Free
Published: 1 code
10
Rating
Projects
247
74%
Arbitration
7
100%
/
0%
Overdue
1
0%
Free
Published: 2 articles, 1 code
11
Rating
Projects
269
29%
Arbitration
2
50%
/
0%
Overdue
3
1%
Working
Published: 2 codes
12
Rating
Projects
46
24%
Arbitration
34
9%
/
85%
Overdue
10
22%
Free
13
Rating
Projects
289
35%
Arbitration
18
22%
/
61%
Overdue
43
15%
Free
14
Rating
Projects
39
23%
Arbitration
14
0%
/
93%
Overdue
4
10%
Free
15
Rating
Projects
499
67%
Arbitration
5
40%
/
0%
Overdue
4
1%
Free
Published: 8 codes
16
Rating
Projects
1
0%
Arbitration
1
0%
/
100%
Overdue
0
Free
17
Rating
Projects
2
0%
Arbitration
2
50%
/
50%
Overdue
0
Free
Similar orders
SECTION 1: OVERVIEW AND COMPONENT ARCHITECTURE The objective of this project is to build a fully automated Trading System in native MQL5 that integrates a pre-trained Open Neural Network Exchange (ONNX) machine learning model into MetaTrader 5. The EA must be engineered using strict Object-Oriented Programming (OOP) paradigms, featuring clean decoupling between signal inference, execution handlers, and risk
The purpose of this order is ONLY to test and implement my H1 POI (Point of Interest) identification logic correctly. I am not requesting the complete EA at this stage. I will provide the exact rules for identifying the H1 POI after selecting the developer. The developer must convert those rules into clear, deterministic MQL5 logic. Requirements: Analyze H1 candles according to the rules I provide. Identify and mark
Diusang
50 - 533 USD
TITLE: Diusang EA - [ e.g. Gold M1 Scalping Robot ] 1. PLATFORM: MT4 or MT5 ? 2. PAIR / TIMEFRAME: e.g. XAUUSD M1, M5 3. STRATEGY LOGIC: - Entry Buy when: ... - Entry Sell when: ... - Indicator settings: ... 4. RISK MANAGEMENT: - Lot size: Fixed 0.01 / Auto lot from balance? - Stop Loss: ... pips - Take Profit: ... pips - Max trades: ... 5. OTHER FEATURES: - Trailing stop? Yes/No - Trading hours
Title: Fully Automatic MT5 Trading Bot (Expert Advisor) with Risk Management I want a fully automated trading robot (Expert Advisor) for MetaTrader 5, written in MQL5. The bot must automatically analyse market data, identify trading opportunities, execute BUY and SELL orders, manage open positions, and close trades according to predefined rules without requiring manual confirmation for each trade. Requirements
Hello, I’m looking for an experienced developer to research, build, test, and install a fully automated MetaTrader 5 trading bot for gold, XAUUSD. My total development and installation budget is $300, including all agreed work and fees. My goal is to pass a $100,000 FTMO US Two-Step Standard evaluation and sustainably maintain the funded account. I need a day-trading strategy that can buy in bullish markets and sell
MT4 expert advisor
500+ USD
I have three indicators that operate independently. I want to combine them into one indicator with custom expert programming that automatically enters trades when a signal is generated by one of the indicators. I will pay for this service Thanks you
Existing EA: NEW_CORE_ORB_M5_v021 | MT5 | XAUUSD M5 Early-stage research prototype, not a new EA from scratch. Need an experienced MQL5 developer to audit, complete, repair, improve and test BOTH independent strategies equally: Opening Range Breakout (ORB) and Scalp. Keep code lightweight and preserve an untouched baseline. No unnecessary rewrite or complex filters. 1. ORB Strategy Verify opening-range construction
Espert
30+ USD
I want to create a robot with 10 indicators.All to take a trade and all in stop folowing. Thanks to put in THE PARAMETERS Yes/No for the indicators to entry in position AND to the stop A trade with 2 takes profit and a breakeaven at the first TP. The goal is to be able to try the multiple combinations with these indicators
Hello International Developer, I need LIFETIME MT5 EA for XAUUSD Gold. REQUIREMENTS: 1. Lifetime bot - No expiry date, unlimited accounts, unlimited installations 2. Must include source code .mq5 file - This makes it lifetime 3. Every trade MUST have Stop Loss 300 points and Take Profit 600 points 4. No martingale, No grid, No averaging - Clean safe strategy 5. Auto lot size = 1% risk per trade for good margin growth
Expert advisor
150+ USD
Hiring: Forex Strategist & MQL5 Developer for Long-Term EA Development I am looking for an experienced Forex Strategist and MT5 (MQL5) Developer to work with me on an ongoing project to develop, test, improve, and optimize a profitable Forex Expert Advisor (EA). My Message to the Developer My budget is $150 . However, this is not intended to be a one-time payment for a finished product. I want an ongoing working
Project information
Budget
30 - 200 USD