Modify an Expert Advisor so it will trade

İş tamamlandı

Tamamlanma süresi: 3 dakika
Müşteri tarafından geri bildirim
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.
Geliştirici tarafından geri bildirim
Thank you very much!

İş Gereklilikleri

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", "");
     }
  }

Yanıtlandı

1
Geliştirici 1
Derecelendirme
(192)
Projeler
232
30%
Arabuluculuk
1
100% / 0%
Süresi dolmuş
9
4%
Serbest
Yayınlandı: 2 kod
2
Geliştirici 2
Derecelendirme
(139)
Projeler
181
24%
Arabuluculuk
23
22% / 39%
Süresi dolmuş
13
7%
Serbest
3
Geliştirici 3
Derecelendirme
(174)
Projeler
199
12%
Arabuluculuk
38
37% / 34%
Süresi dolmuş
5
3%
Çalışıyor
Yayınlandı: 2 kod
4
Geliştirici 4
Derecelendirme
(250)
Projeler
256
30%
Arabuluculuk
0
Süresi dolmuş
3
1%
Serbest
Yayınlandı: 2 kod
5
Geliştirici 5
Derecelendirme
(188)
Projeler
212
58%
Arabuluculuk
9
11% / 89%
Süresi dolmuş
8
4%
Serbest
6
Geliştirici 6
Derecelendirme
Projeler
0
0%
Arabuluculuk
0
Süresi dolmuş
0
Serbest
7
Geliştirici 7
Derecelendirme
(126)
Projeler
151
48%
Arabuluculuk
6
83% / 17%
Süresi dolmuş
2
1%
Serbest
8
Geliştirici 8
Derecelendirme
(54)
Projeler
53
17%
Arabuluculuk
7
0% / 100%
Süresi dolmuş
5
9%
Serbest
9
Geliştirici 9
Derecelendirme
(33)
Projeler
49
12%
Arabuluculuk
16
0% / 88%
Süresi dolmuş
10
20%
Serbest
10
Geliştirici 10
Derecelendirme
(69)
Projeler
146
34%
Arabuluculuk
13
8% / 62%
Süresi dolmuş
26
18%
Serbest
Yayınlandı: 6 kod
11
Geliştirici 11
Derecelendirme
(295)
Projeler
472
40%
Arabuluculuk
102
40% / 24%
Süresi dolmuş
78
17%
Meşgul
Yayınlandı: 2 kod
12
Geliştirici 12
Derecelendirme
(23)
Projeler
45
20%
Arabuluculuk
25
28% / 48%
Süresi dolmuş
12
27%
Serbest
13
Geliştirici 13
Derecelendirme
(59)
Projeler
81
43%
Arabuluculuk
27
11% / 70%
Süresi dolmuş
8
10%
Serbest
14
Geliştirici 14
Derecelendirme
(2633)
Projeler
3349
67%
Arabuluculuk
77
48% / 14%
Süresi dolmuş
342
10%
Çalışıyor
Yayınlandı: 1 kod
15
Geliştirici 15
Derecelendirme
(772)
Projeler
1039
44%
Arabuluculuk
50
8% / 50%
Süresi dolmuş
116
11%
Serbest
16
Geliştirici 16
Derecelendirme
(22)
Projeler
30
20%
Arabuluculuk
8
63% / 13%
Süresi dolmuş
9
30%
Serbest
17
Geliştirici 17
Derecelendirme
(87)
Projeler
114
26%
Arabuluculuk
7
29% / 57%
Süresi dolmuş
5
4%
Serbest
18
Geliştirici 18
Derecelendirme
(52)
Projeler
89
25%
Arabuluculuk
8
75% / 13%
Süresi dolmuş
44
49%
Yüklendi
19
Geliştirici 19
Derecelendirme
(7)
Projeler
8
63%
Arabuluculuk
1
0% / 100%
Süresi dolmuş
1
13%
Serbest
20
Geliştirici 20
Derecelendirme
(33)
Projeler
46
59%
Arabuluculuk
0
Süresi dolmuş
6
13%
Serbest
21
Geliştirici 21
Derecelendirme
(574)
Projeler
945
47%
Arabuluculuk
309
58% / 27%
Süresi dolmuş
125
13%
Serbest
Benzer siparişler
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);
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
​ Description: I am looking for a professional MQL4 developer/quant trader with a proven track record in EA optimization. This project involves optimizing a third-party EA that currently has a 2-year live track record. ​ The Task: ​ In-Sample Optimization: Optimize the EA parameters using historical data prior to January 1, 2024. ​ Out-of-Sample (Walk-Forward): Validate the optimized settings against the period of
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
Hi , I have some indicators that I want set up on my TV chart and want to create one chart for some and another chart for some others. Plus I want to set up the brackets orders so I can trade from the chart. I have these set up somewhat but need it cleaned up and the way I want them. how much would something like this cost to do? I'm in California and would like you to show me so I can learn to do this when I want to

Proje bilgisi

Bütçe
100+ USD
Son teslim tarihi
to 1 gün