Modify an Expert Advisor so it will trade

MQL4 Indikatoren Experten Forex

Auftrag beendet

Ausführungszeit 3 Minuten
Bewertung des Kunden
I am fairly new to all this and was amazed with the skill and patience from my developer. I will always use him in the future.
Bewertung des Entwicklers
Thank you very much!

Spezifikation

I created an EA online through EA Builder.com, but it will not initiate any trades. I keep receiving an error stating:  "OrderSend error #4051 invalid function parameter value" and "invalid lots amount for OrderSend function".I have tried every lot size I can think of, but I still get this same error message.

Here is what I want this EA to be able to do:

1.  I want to be able for it to initiate a trade, long and/or short in the lot size I can specify.

2.  I want to be able to set trading times of day in 30 minute intervals.  For example, I can turn the system on at 4pm and stop initiating trades at 6pm.

3.  That's All!


Here is the current EA that I am using that will not initiate any trades:

//+------------------------------------------------------------------+
//|                                         Strategy: RJS QQE EA.mq4 |
//|                                       Created with EABuilder.com |
//|                                        https://www.eabuilder.com |
//+------------------------------------------------------------------+
#property copyright "Created with EABuilder.com"
#property link      "https://www.eabuilder.com"
#property version   "1.00"
#property description ""

#include <stdlib.mqh>
#include <stderror.mqh>

int LotDigits; //initialized in OnInit
int MagicNumber = 1532634;
extern double TradeSize = 0.1;
int MaxSlippage = 3; //adjusted in OnInit
bool crossed[1]; //initialized to true, used in function Cross
bool Push_Notifications = true;
int MaxOpenTrades = 1;
int MaxLongTrades = 1;
int MaxShortTrades = 1;
int MaxPendingOrders = 1;
int MaxLongPendingOrders = 1;
int MaxShortPendingOrders = 1;
bool Hedging = false;
int OrderRetry = 5; //# of retries if sending order returns error
int OrderWait = 5; //# of seconds to wait if sending order returns error
double myPoint; //initialized in OnInit

bool Cross(int i, bool condition) //returns true if "condition" is true and was false in the previous call
  {
   bool ret = condition && !crossed[i];
   crossed[i] = condition;
   return(ret);
  }

void myAlert(string type, string message)
  {
   if(type == "print")
      Print(message);
   else if(type == "error")
     {
      Print(type+" | RJS QQE EA @ "+Symbol()+","+IntegerToString(Period())+" | "+message);
      if(Push_Notifications) SendNotification(type+" | RJS QQE EA @ "+Symbol()+","+IntegerToString(Period())+" | "+message);
     }
   else if(type == "order")
     {
      Print(type+" | RJS QQE EA @ "+Symbol()+","+IntegerToString(Period())+" | "+message);
      if(Push_Notifications) SendNotification(type+" | RJS QQE EA @ "+Symbol()+","+IntegerToString(Period())+" | "+message);
     }
   else if(type == "modify")
     {
     }
  }

int TradesCount(int type) //returns # of open trades for order type, current symbol and magic number
  {
   int result = 0;
   int total = OrdersTotal();
   for(int i = 0; i < total; i++)
     {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == false) continue;
      if(OrderMagicNumber() != MagicNumber || OrderSymbol() != Symbol() || OrderType() != type) continue;
      result++;
     }
   return(result);
  }

int myOrderSend(int type, double price, double volume, string ordername) //send order, return ticket ("price" is irrelevant for market orders)
  {
   if(!IsTradeAllowed()) return(-1);
   int ticket = -1;
   int retries = 0;
   int err = 0;
   int long_trades = TradesCount(OP_BUY);
   int short_trades = TradesCount(OP_SELL);
   int long_pending = TradesCount(OP_BUYLIMIT) + TradesCount(OP_BUYSTOP);
   int short_pending = TradesCount(OP_SELLLIMIT) + TradesCount(OP_SELLSTOP);
   string ordername_ = ordername;
   if(ordername != "")
      ordername_ = "("+ordername+")";
   //test Hedging
   if(!Hedging && ((type % 2 == 0 && short_trades + short_pending > 0) || (type % 2 == 1 && long_trades + long_pending > 0)))
     {
      myAlert("print", "Order"+ordername_+" not sent, hedging not allowed");
      return(-1);
     }
   //test maximum trades
   if((type % 2 == 0 && long_trades >= MaxLongTrades)
   || (type % 2 == 1 && short_trades >= MaxShortTrades)
   || (long_trades + short_trades >= MaxOpenTrades)
   || (type > 1 && type % 2 == 0 && long_pending >= MaxLongPendingOrders)
   || (type > 1 && type % 2 == 1 && short_pending >= MaxShortPendingOrders)
   || (type > 1 && long_pending + short_pending >= MaxPendingOrders)
   )
     {
      myAlert("print", "Order"+ordername_+" not sent, maximum reached");
      return(-1);
     }
   //prepare to send order
   while(IsTradeContextBusy()) Sleep(100);
   RefreshRates();
   if(type == OP_BUY)
      price = Ask;
   else if(type == OP_SELL)
      price = Bid;
   else if(price < 0) //invalid price for pending order
     {
      myAlert("order", "Order"+ordername_+" not sent, invalid price for pending order");
   return(-1);
     }
   int clr = (type % 2 == 1) ? clrRed : clrBlue;
   while(ticket < 0 && retries < OrderRetry+1)
     {
      ticket = OrderSend(Symbol(), type, NormalizeDouble(volume, LotDigits), NormalizeDouble(price, Digits()), MaxSlippage, 0, 0, ordername, MagicNumber, 0, clr);
      if(ticket < 0)
        {
         err = GetLastError();
         myAlert("print", "OrderSend"+ordername_+" error #"+IntegerToString(err)+" "+ErrorDescription(err));
         Sleep(OrderWait*1000);
        }
      retries++;
     }
   if(ticket < 0)
     {
      myAlert("error", "OrderSend"+ordername_+" failed "+IntegerToString(OrderRetry+1)+" times; error #"+IntegerToString(err)+" "+ErrorDescription(err));
      return(-1);
     }
   string typestr[6] = {"Buy", "Sell", "Buy Limit", "Sell Limit", "Buy Stop", "Sell Stop"};
   myAlert("order", "Order sent"+ordername_+": "+typestr[type]+" "+Symbol()+" Magic #"+IntegerToString(MagicNumber));
   return(ticket);
  }

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {  
   //initialize myPoint
   myPoint = Point();
   if(Digits() == 5 || Digits() == 5)
     {
      myPoint *= 10;
      MaxSlippage *= 10;
     }
   //initialize LotDigits
   double LotStep = MarketInfo(Symbol(), MODE_LOTSTEP);
   if(NormalizeDouble(LotStep, 5) == round(LotStep))
      LotDigits = 0;
   else if(NormalizeDouble(10*LotStep, 5) == round(10*LotStep))
      LotDigits = 1;
   else if(NormalizeDouble(100*LotStep, 5) == round(100*LotStep))
      LotDigits = 5;
   else LotDigits = 5;
   int i;
   //initialize crossed
   for (i = 0; i < ArraySize(crossed); i++)
      crossed[i] = true;
   return(INIT_SUCCEEDED);
  }

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
  }

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   int ticket = -1;
   double price;  
  
  
   //Open Buy Order, instant signal is tested first
   if(Cross(0, iCustom(NULL, PERIOD_CURRENT, "QQE averages histo + alerts + arrows", 1, 5, 14, 0, 4.236, 70, 30, "Alerts Settings", false, false, true, false, false, false, true, false, "alert2.wav", true, "qqe Arrows1", 1.5, false, DeepSkyBlue, Red, 233, 234, 1, 1, true, DeepSkyBlue, Red, 233, 234, 3, 3, 3, 0) > iCustom(NULL, PERIOD_CURRENT, "QQE averages histo + alerts + arrows", 1, 5, 14, 0, 4.236, 70, 30, "Alerts Settings", false, false, true, false, false, false, true, false, "alert2.wav", true, "qqe Arrows1", 1.5, false, DeepSkyBlue, Red, 233, 234, 1, 1, true, DeepSkyBlue, Red, 233, 234, 3, 3, 4, 0)) //QQE averages histo + alerts + arrows crosses above QQE averages histo + alerts + arrows
   )
     {
      RefreshRates();
      price = Ask;  
      if(IsTradeAllowed())
        {
         ticket = myOrderSend(OP_BUY, price, TradeSize, "");
         if(ticket <= 0) return;
        }
      else //not autotrading => only send alert
         myAlert("order", "");
     }
  }

Bewerbungen

1
Entwickler 1
Bewertung
(192)
Projekte
232
30%
Schlichtung
1
100% / 0%
Frist nicht eingehalten
9
4%
Frei
2
Entwickler 2
Bewertung
(139)
Projekte
181
24%
Schlichtung
23
22% / 39%
Frist nicht eingehalten
13
7%
Frei
3
Entwickler 3
Bewertung
(167)
Projekte
191
10%
Schlichtung
37
38% / 35%
Frist nicht eingehalten
5
3%
Arbeitet
4
Entwickler 4
Bewertung
(190)
Projekte
194
27%
Schlichtung
0
Frist nicht eingehalten
3
2%
Frei
5
Entwickler 5
Bewertung
(188)
Projekte
212
58%
Schlichtung
9
11% / 89%
Frist nicht eingehalten
8
4%
Frei
6
Entwickler 6
Bewertung
Projekte
0
0%
Schlichtung
0
Frist nicht eingehalten
0
Frei
7
Entwickler 7
Bewertung
(126)
Projekte
151
48%
Schlichtung
6
83% / 17%
Frist nicht eingehalten
2
1%
Frei
8
Entwickler 8
Bewertung
(54)
Projekte
53
17%
Schlichtung
7
0% / 100%
Frist nicht eingehalten
5
9%
Frei
9
Entwickler 9
Bewertung
(33)
Projekte
49
12%
Schlichtung
16
0% / 88%
Frist nicht eingehalten
10
20%
Frei
10
Entwickler 10
Bewertung
(66)
Projekte
143
34%
Schlichtung
11
9% / 55%
Frist nicht eingehalten
26
18%
Arbeitet
11
Entwickler 11
Bewertung
(251)
Projekte
402
38%
Schlichtung
82
41% / 20%
Frist nicht eingehalten
70
17%
Arbeitet
12
Entwickler 12
Bewertung
(23)
Projekte
45
20%
Schlichtung
24
29% / 42%
Frist nicht eingehalten
12
27%
Arbeitet
13
Entwickler 13
Bewertung
(54)
Projekte
73
44%
Schlichtung
21
14% / 67%
Frist nicht eingehalten
8
11%
Frei
14
Entwickler 14
Bewertung
(2398)
Projekte
3011
65%
Schlichtung
76
47% / 14%
Frist nicht eingehalten
340
11%
Arbeitet
15
Entwickler 15
Bewertung
(769)
Projekte
1033
44%
Schlichtung
50
8% / 50%
Frist nicht eingehalten
117
11%
Frei
16
Entwickler 16
Bewertung
(21)
Projekte
29
21%
Schlichtung
8
63% / 13%
Frist nicht eingehalten
9
31%
Frei
17
Entwickler 17
Bewertung
(87)
Projekte
114
26%
Schlichtung
7
29% / 57%
Frist nicht eingehalten
5
4%
Frei
18
Entwickler 18
Bewertung
(48)
Projekte
80
28%
Schlichtung
8
75% / 13%
Frist nicht eingehalten
41
51%
Frei
19
Entwickler 19
Bewertung
(7)
Projekte
8
63%
Schlichtung
1
0% / 100%
Frist nicht eingehalten
1
13%
Frei
20
Entwickler 20
Bewertung
(33)
Projekte
46
59%
Schlichtung
0
Frist nicht eingehalten
6
13%
Frei
21
Entwickler 21
Bewertung
(561)
Projekte
928
48%
Schlichtung
301
59% / 25%
Frist nicht eingehalten
123
13%
Beschäftigt
Ähnliche Aufträge
Bot name: Blues🚀ProFx The bot should work with the 5mins time frame and it must move with the market price bar when it moves up 5pips and above let 10 trades be opened in the up direction and each having a stop loss of 20pips. After every 5mins if a new candle forms in the same direction let another 10 trades be opened in the same manner. Then when the market trend changes and a bearish candle starts to form and
GOLD Edge est un EA conçu spécifiquement pour GOLD(XAUUSD) et peut également être utilisé sur n’importe quel instrument financier, n’importe quelle paire. Cet EA négocie en suivant les tendances en utilisant des moyennes mobiles et des RSI multi-périodes. Utilisez GRID trade. Cet EA se ferme avec la fonction « DD Reduce » lors du tirage vers le bas. Vous pouvez définir un stop suiveur pour la fonction « GRID trading
Hello, I need an EA for both MQL4 and MQL5 that complies with the following rules; A maximum daily drawdown of 4%. This means it should close all trades after a 4% loss and not trade for the rest of the day. It should not use martingale, No grid trading, No trade stacking (opening three or more trades at the same time in the same direction), trades should spends minutes before closing. The EA should also be able to
Hi i need a indicator be turned into forex robot THOSE TWO INDICATORS ARE REVERSAL INDICATORS I WANT THEM TO BE COMBINED BUY ON UPTREND SELL ON DOWNTREND CONTINUE TO OPEN TRADES ACCORDING TO THE TREND USING BUILT-IN RISK 1% OF THE ACCOUNT PARAMETER LOTS SIZE, STOPLOSS THE EA MUST WORK ON EVERYTIME FRAME BE ABLE TO TRADE INDICES, FX PAIRS, COMMODITIES
I want someone who can turn my trading strategy in a bot.... To execute automated trades... Strategy is simply based on two moving averages, when they cross pass. Bot must be fully automated
Hello everyone, I need a simple Hedging EA that won't open opposing trades right away. The key is to avoid Hedging with the aim to lock in a price/spread arbitrage. If you already have a profitable EA that is similar and that has result I would be more than welcome to take a look at it or if you can build one for me I am more than welcome to pay for it. It must be an MT5 EA
Seeking an expert in LSTM (Long Short-Term Memory) for MT4 to implement the most cutting-edge and advanced form of LSTM with full feature integration. The ideal candidate will possess extensive experience in leveraging LSTM technology within MT4, ensuring optimal performance and profitability. Join us in revolutionizing trading strategies with state-of-the-art LSTM algorithms tailored for MT4. Add a zig zag to the
Need an expert to create an EA based on my strategy for any broker,fast execution of opening and closing trade,also with a condition for take profit,lot size isn't fixed,it should be easy to change without editing the code for a no programmer
Hello there, I have a functional EA that I need a modification done to. Previous developer is overloaded with work and has been dragging his feet. Basically what I need is a modification to the Auto Lot option. Currently you can set a lot size per x amount of account balance and it will auto trade readjusting the lots based on account balance. What I am looking for is a modification that allows me to specify the
Please note that my budget is for both mt4 and mt5 platforms The EA should have 1. An option that I can change it parameters, that's the period, method and application 2. The EA should sell when on every bullish candle that closes under the MA 3. The EA should buy on every bearish candle that forms Above the EA. It's should close trades on reverse cross. I mean when it's in a buy trade and crosses the MA for a sell

Projektdetails

Budget
100+ USD
Für die Entwickler
90 USD
Ausführungsfristen
bis 1 Tag(e)