Need Help with adding additional functions to this EA

Работа завершена

Время выполнения 6 дней
Отзыв от заказчика
GOOD JOB
Отзыв от исполнителя
I enjoyed working on the Project. The work ahead is explained properly. Very patient to explain gray areas around the project. Highly Recommend. Will love to work with Again 🙌🏾

Техническое задание

I want to add

  • Maximum trades per day
  • trailing stops
  • close partials
  • Break even 

I want to be able to manually set how much trades to be taken on each day Eg:

  • Monday 2 trades     
  • Tuesday 3 trades
  • Wednesday 4 trades
  • Thursday 3 trades
  • Friday 2 trades

I also want to be able to manually set a time when each trade are taken on each day Eg:

  • Monday          2 trades      10:00am
  • Tuesday         3 trades        05:00am
  • Wednesday    4 trades         07:00pm
  • Thursday       3 trades          03:00pm
  • Friday           2 trades          01:00pm


CODE TO BE EDITED

//+------------------------------------------------------------------+

//|                                                      ProjectName |

//|                                      Copyright 2020, CompanyName |

//|                                       http://www.companyname.net |

//+------------------------------------------------------------------+


#property copyright "Copyright 2023, MetaQuotes Ltd."

#property link      "https://www.mql5.com"

#property version   "1.00"

#include <Trade\Trade.mqh>

CTrade trade;



//DYNAMIC LOTSIZING INPUT

double PositionSize(){

double lot;

double lot_min = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);

double lot_max = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);

double AcctEquity = AccountInfoDouble(ACCOUNT_EQUITY);


lot = 3.00/50*AcctEquity;

if(lot<=lot_min){

lot=lot_min;

}

if(lot>=lot_max){

lot=lot_max;

}

return(lot);

}




//static input long inpMagicnumber =54321;

input int inpBars=20; //bars for high/low

static input double inpLots=1.00;

input int inpStopLoss=400;

input int inpTakeProfit=1500;



///GLOBAL VARIBLES

double high=0;

double low=0;

MqlTick currentTick, previousTick;


//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+




datetime Expire_Time = D'2024.01.15 12:59:00';

int OnInit()

  {



 trade.SetExpertMagicNumber(5243);

        if(TimeCurrent() > Expire_Time)

        {

         Alert("The EA has expired...");

         ExpertRemove();

        }

        


  

//set magicnumber

//trade.SetExpertMagicNumber(inpMagicnumber);


   return(INIT_SUCCEEDED);

  }



//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+

void OnDeinit(const int reason)

  {


  }

//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+11                                                                                                                                                                                                                                    11 11111111111111111111111111111111111111111111111111

void OnTick()

  {

   double Lotsize = NormalizeDouble(PositionSize(),2); 

  //Get tick

  previousTick=currentTick;

  if(!SymbolInfoTick(_Symbol,currentTick)){Print("fail to get currenttick");return;}

  

  ///count open positions

  int cntBuy, cntSell;

  if(!CountOpenPositions(cntBuy,cntSell)){return;}

  

  //check for buy position

  if(cntBuy==0 && high!=0 && previousTick.ask>high && currentTick.ask<=high){

  

  

  

  // calculte stoploss /take profit

  double sl=inpStopLoss==0?0:currentTick.ask+inpStopLoss*_Point;

  double tp=inpTakeProfit==0?0:currentTick.ask-inpTakeProfit*_Point;

  if(!NormalizePrice(sl)){return;}

  if(!NormalizePrice(tp)){return;}

  

  trade.PositionOpen(_Symbol,ORDER_TYPE_SELL,Lotsize,currentTick.ask,sl,tp,"highbreakout");

  

  }

  

  

   //check for sell position

 if(cntSell==0 && low!=0 && previousTick.bid>low && currentTick.bid<=low){

  

  // calculte stoploss /take profit

  double sl=inpStopLoss==0?0:currentTick.ask+inpStopLoss*_Point;

  double tp=inpTakeProfit==0?0:currentTick.ask-inpTakeProfit*_Point;

  if(!NormalizePrice(sl)){return;}

  if(!NormalizePrice(tp)){return;}

  

  trade.PositionOpen(_Symbol,ORDER_TYPE_SELL,Lotsize,currentTick.bid,sl,tp,"highbreakout");

  

  Print("open sell position");

  }

  

  

  

  

//CALCULATE HIGH AND LOW

   high =iHigh(_Symbol,PERIOD_CURRENT,iHighest(_Symbol,PERIOD_CURRENT,MODE_HIGH,inpBars,0));

   low =iLow(_Symbol,PERIOD_CURRENT,iLowest(_Symbol,PERIOD_CURRENT,MODE_LOW,inpBars,0));

  // DrawObjects();

}

void DrawObjects(){

 


datetime time =iTime(_Symbol,PERIOD_CURRENT,inpBars);


//RESISTANCE/HIGH LEVELS

ObjectDelete(NULL,"high");

ObjectCreate(NULL,"high",OBJ_TREND,0,time,high,TimeCurrent(),high);

ObjectSetInteger(NULL,"high",OBJPROP_WIDTH,2);

ObjectSetInteger(NULL,"high",OBJPROP_COLOR,clrBlack);


//SUPPORTS/LOW LEVELS

ObjectDelete(NULL,"low");

ObjectCreate(NULL,"low",OBJ_TREND,0,time,low,TimeCurrent(),low);

ObjectSetInteger(NULL,"low",OBJPROP_COLOR,clrRed);


}


 bool CountOpenPositions(int &cntBuy,int &cntSell){

ObjectSetInteger(NULL,"low",OBJPROP_WIDTH,2);

  

  cntBuy=0;

  cntSell=0;

  int total= PositionsTotal();

  for (int i=total-1; i>=0; i--){

  ulong ticket = PositionGetTicket(1);

  if(ticket<=0){Print("failed to get position ticket");return false;}

  if(!PositionSelectByTicket(ticket)){Print("failed to select position");return false;}

  long magic;

  if(!PositionGetInteger(POSITION_MAGIC,magic)){Print("failed to get position magicnumber");return false;}

  if(magic==5243){

  long type;

  if(!PositionGetInteger(POSITION_TYPE,type)){Print("failed to get position type");return false;}

  if(type==POSITION_TYPE_BUY){cntBuy++;}

  if(type==POSITION_TYPE_SELL){cntSell++;}

  }

  }

  return true;

  }

  

//Normalize price

bool NormalizePrice(double &price){

double tickSize=0;

if(!SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE,tickSize)){

Print("failed to get tick size");

}

return true;



price= NormalizeDouble(MathRound(price/tickSize)*tickSize,_Digits);

return true;


}











Откликнулись

1
Разработчик 1
Оценка
(258)
Проекты
323
30%
Арбитраж
34
26% / 65%
Просрочено
10
3%
Работает
2
Разработчик 2
Оценка
(206)
Проекты
333
35%
Арбитраж
66
12% / 58%
Просрочено
87
26%
Свободен
3
Разработчик 3
Оценка
(28)
Проекты
37
32%
Арбитраж
3
67% / 0%
Просрочено
7
19%
Работает
4
Разработчик 4
Оценка
(1)
Проекты
7
29%
Арбитраж
2
50% / 50%
Просрочено
2
29%
Свободен
5
Разработчик 5
Оценка
(52)
Проекты
67
43%
Арбитраж
8
0% / 100%
Просрочено
3
4%
Свободен
6
Разработчик 6
Оценка
(12)
Проекты
9
33%
Арбитраж
11
0% / 100%
Просрочено
2
22%
Свободен
7
Разработчик 7
Оценка
(130)
Проекты
184
32%
Арбитраж
18
28% / 67%
Просрочено
27
15%
Свободен
Опубликовал: 1 пример
8
Разработчик 8
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
9
Разработчик 9
Оценка
(85)
Проекты
174
44%
Арбитраж
3
100% / 0%
Просрочено
5
3%
Свободен
Опубликовал: 1 пример
10
Разработчик 10
Оценка
(258)
Проекты
265
29%
Арбитраж
0
Просрочено
3
1%
Свободен
Опубликовал: 2 примера
11
Разработчик 11
Оценка
(363)
Проекты
436
54%
Арбитраж
22
50% / 14%
Просрочено
30
7%
Загружен
12
Разработчик 12
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
13
Разработчик 13
Оценка
(96)
Проекты
143
76%
Арбитраж
0
Просрочено
2
1%
Свободен
14
Разработчик 14
Оценка
(69)
Проекты
146
34%
Арбитраж
13
8% / 62%
Просрочено
26
18%
Свободен
Опубликовал: 6 примеров
Похожие заказы
Hi,I am looking for an experienced developer specializing in the creation of Expert Advisors (EAs) for trading platforms. I would like to commission the development of an EA based on the open-source LuxAlgo code. The entry strategy will be based, among other things, on Martingale and Grid trading concepts. A detailed specification covering trade management, position sizing, and risk management rules will be provided
Hi! I’m looking for someone to make TPO Market profile, volume profile, footprint, delta for Sierra charts I need it to be set up to give me these for Nasdaq, ES/NQ and also the minii’s. Is this something you can help me with
I have a EA for XAUUSD which works awesome in sideways and trending market as well, capital requirement is only 2000USd and weekly profit is around 1500-2000 USD. I am using this bot from 3 months and getting continuous good result
I’m looking for an experienced MT4 developer to create a custom indicator (or EA) with mobile push notifications based on the following strategy. Trend Filter (Daily Timeframe) Daily Close above 50 EMA = Bullish Bias Daily Close below 50 EMA = Bearish Bias Entry Timeframe (H1) RSI Settings RSI Period: 14 (default) Upper Level: 65 Lower Level: 35 Buy Signal Generate a BUY signal when: Daily bias is Bullish (Daily
Expert should be able to place trades across all Forex symbols (solution is advised) . xauusd live chart execution error . Deletion and Cleaning the Code (if required) . Live Chart Only
Dear All i am working on strategy in forex market specifically in xausud and i just want someone to make it automatic execution mode as per my requirements with propee risk management my broker is exness and i have an account in MT5
✅ MT4 EA Developer Checklist (For Your Ladder EA) 1️⃣ Indicator Integration EA reads signals from provided custom indicator (.ex4 or .mq4) Detects “Buy Next” / “Sell Next” signals on current candle Works with arrow-based or buffer-based signals 2️⃣ Next Candle Execution EA does not trade on the candle where the signal appears Orders placed only at first tick of the next candle Timeframes supported: M1, M5, M15
Hi to all, I need a modification of an existing grid EA with the following instructions: Add the following optional external inputs to the attached Expert Advisor: input bool TradeModeAgainstTrend ( TMAT ) = true ; input int CounterTrendLotsToStartTMAT = 0.15 ; input double CoefficientForTrendLots = 0.30 ; input double MaxTrendLot = 0.08 ; input bool OneSideTMATOnly = true ; input double CombinedClosureAmount = 10.0
Hello, i need expert developer that have been develop so many profitable AI bots that work for mt5 and ctrader autonomously if you know you can easily execute this requirement bid for it. NOTE:- YOU MUST COME WITH SAMPLE FOR THE 2 TRADING PLATFORM. While i take a look at your profile and reach out to you thanks
Dear developers I want to create an expert advisor for my strategy. The entry signals quite simple using OHLC, Bollinger, SuperTrend. (Possibly: ICT/FVG) The money and risk management is more difficult using martingale and trailing stops. I also need help to design this before any development

Информация о проекте

Бюджет
30+ USD
Сроки выполнения
от 1 до 10 дн.