Convert a mql4 EA to a mql5

MQL5 전문가

작업 종료됨

실행 시간 1 일
피고용인의 피드백
Great customer - it was a pleasure to work with him!

명시

Hi, 

I need help to convert a mql4 EA to a Mql5 EA.

Looking forward to hear from you.

Thanks, Fertik

 

 

 



extern string R ="=========Réglages de base==========";

extern double PF_Départ       = 5000;  

extern double Lots            = 0.1;  

extern double TakeProfit      = 50;

extern double TakeProfit0     = 40;

extern double TakeProfit1     = 30;

extern double TakeProfit2     = 20;

extern double TakeProfit3     = 10;

extern double StopLoss        = 200;

extern double Coefflosse0     = 1;  

extern double Coefflosse1     = 2;   

extern double Coefflosse2     = 4;  

extern double Coefflosse3     = 6;  

double     MyPoint;  

int           Dg,i;

//============================================//

int init() 

   {

   ModifPoint(); 

   }

//===========================================//

int start() 

   {

   int y;

   double pr=0; // profit;

for (y = 0; y < OrdersTotal(); y++)

   {

      OrderSelect (y, SELECT_BY_POS, MODE_TRADES);

      if ((OrderMagicNumber()==301210) && (OrderSymbol()==Symbol()) && ((OrderType()==OP_BUY)||(OrderType()==OP_SELL))) {

          pr=pr+OrderProfit();

      }

   }

//==========================================+

//| Nombre de pertes consécutives           |

//==========================================+

   int    orders=HistoryTotal(); 

   int    losses=0;

   double pr1=0; 

   for( i=orders-1;i>=0;i--)

   {

      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; }

      if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;

         //----

      if(OrderProfit()>0) break;

      if(OrderProfit()<0) losses++;

         pr1=pr1+OrderProfit();

   }

   double pr3 = pr+pr1;       

//+============================+

   double P_PF,P_PF1;

   string Infos = "";

   /*int i=0;*/

   int    spread=MarketInfo("EURUSD",MODE_SPREAD);

   P_PF1 =((AccountBalance()-PF_Départ)/PF_Départ)*100;

   P_PF  =(AccountBalance()-PF_Départ);


   int li_28;

   double lp72,lp88,lp89,lp90,ll96;

   double SL=StopLoss*MyPoint;

  

   if (pr >= (500*Lots)+ MathAbs(pr1))  {

      for (int l_ord_total_0 = OrdersTotal(); l_ord_total_0 >= 0; l_ord_total_0--) {

        OrderSelect(l_ord_total_0, SELECT_BY_POS, MODE_TRADES);

         if (OrderSymbol() == Symbol() && OrderMagicNumber() == 301210) {

            if (OrderType() == OP_BUY || OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 5, CLR_NONE);

                if (OrderType() != OP_BUY && OrderType() != OP_SELL) OrderDelete(OrderTicket()); 

         }

      }return (0);

   }

 //===========================================================  

   int lt4 = 0;

   int lt8 = 0;

   int lt12 = 0;

   int lt16 = 0;

   double ll40 = 0;

   double ll48 = 0;

   double lo56 = 0;

   double lo64 = 0;

   double ltp104 = 0;

   double ltp112 = 0;

   double ll136 = 0;

   double ll144 = 0;

   double mA5= iMA(NULL,0,3,0,1,PRICE_HIGH,0);

   double mA6= iMA(NULL,0,3,0,1,PRICE_HIGH,1);

   double mA7= iMA(NULL,0,3,0,1,PRICE_LOW,0);

   double mA8= iMA(NULL,0,3,0,1,PRICE_LOW,1);

           

   if ( mA7 > mA8)li_28=2;

   if (mA5 < mA6)li_28=1; 


//==============================+

//Mode Close Orders             |

//==============================+      

   for (int l_pos_284 = 0; l_pos_284 < OrdersTotal(); l_pos_284++) {

        OrderSelect(l_pos_284, SELECT_BY_POS, MODE_TRADES);

      if (OrderSymbol() == Symbol() && OrderMagicNumber() == 301210) {

         if (OrderType() == OP_BUY && lt4 < OrderTicket()) {

            ll40 = OrderLots();

            lo56 = OrderOpenPrice();

            lt4 = OrderTicket();

            ltp112 = OrderTakeProfit();

         }

         if (OrderType() == OP_SELL && lt8 < OrderTicket()) {

            ll48 = OrderLots();

            lo64 = OrderOpenPrice();

            lt8 = OrderTicket();

            ltp104 = OrderTakeProfit();

         }

         if (OrderType() == OP_BUYSTOP) {

            lt12 = OrderTicket();

            ll136 = OrderLots();

         }

         if (OrderType() == OP_SELLSTOP) {

            lt16 = OrderTicket();

            ll144 = OrderLots();

         }

      }

   }

  

   if (lt4 == 0 && lt16 != 0) OrderDelete(lt16);

      if ((lt16== 0 && lt4 != 0)&&(OrderOpenPrice()-Ask>SL)&&(OrderLots()==Lots)) OrderClose(lt4, OrderLots(), OrderClosePrice(), 5, CLR_NONE);

        if (lt4 == 0 && lt16 == 0) {

            lp88 = Ask + TakeProfit * MyPoint;  

             if ((DayOfWeek() == 5 && (losses >0))||(DayOfWeek() == 1 && Hour() > 3)||(DayOfWeek() == 2)||(DayOfWeek() == 3)||(DayOfWeek() == 4)||(DayOfWeek() == 7 && Hour() > 24)){

               if (li_28 == 2 && lt8 == 0)  {

                  if (AccountFreeMarginCheck(Symbol(), OP_BUY, Lots * 50) >= 0.0) {

                     OrderSend(Symbol(), OP_BUY, Lots, Ask, 3,Ask-SL,lp88, "Magic = " + 301210, 301210, 0, DodgerBlue);

                     }

               }

            }

         }

        

   if (lt8 == 0 && lt12 != 0) OrderDelete(lt12);

      if ((lt12== 0 && lt8 != 0)&&(Bid-OrderOpenPrice()>SL)&&(OrderLots()==Lots)) OrderClose(lt8, OrderLots(), OrderClosePrice(), 5, CLR_NONE);

         if (lt8 == 0 && lt12 == 0) {

             lp88 = Bid - TakeProfit * MyPoint;

               if ((DayOfWeek() == 5 && (losses >0))||(DayOfWeek() == 1 && Hour() > 3)||(DayOfWeek() == 2)||(DayOfWeek() == 3)||(DayOfWeek() == 4)||(DayOfWeek() == 7 && Hour() > 24)){

                  if (li_28 == 1 && lt4 == 0)  {

                     if (AccountFreeMarginCheck(Symbol(), OP_SELL, Lots * 50) >= 0.0) { 

                        OrderSend(Symbol(), OP_SELL, Lots, Bid, 3,Bid+SL,lp88, "Magic = " + 301210, 301210, 0, Red);

                    }

               }

            }

         }

        

   if (lt4 != 0 && lt16 ==0) {

      if (AccountFreeMarginCheck(Symbol(), OP_BUY, 2.0 * ll40) >= 0.0) {

         lp72 = lo56 - SL;

            if (losses <0){ll96 = NormalizeDouble( Lots, 2);}else {ll96 = NormalizeDouble(Coefflosse0*ll40, 2);lp88 = lp72 - (TakeProfit0 * MyPoint);}

            if (losses ==1){ll96 = NormalizeDouble( Coefflosse1 * ll40 , 2);lp89 = lp72 - (TakeProfit1 * MyPoint);}

            if (losses ==2){ll96 = NormalizeDouble( Coefflosse2 * ll40 , 2);lp89 = lp72 - (TakeProfit2 * MyPoint);}

            if (losses ==3){ll96 = NormalizeDouble( Coefflosse3 * ll40 , 2);lp89 = lp72 - (TakeProfit3 * MyPoint);}

               OrderSend(Symbol(), OP_SELLSTOP, ll96, lp72, 3,lo56,lp89, "Magic = " + 301210, 301210, 0, OrangeRed);

            }

         }

     

   if (lt8 != 0 && lt12 ==0) {

      if (AccountFreeMarginCheck(Symbol(), OP_SELL, 2.0 * ll48) >= 0.0) {

         lp72 = lo64 + SL;

            if (losses <0){ll96 = NormalizeDouble( Lots, 2);}else {ll96 = NormalizeDouble(Coefflosse0*ll48, 2);lp88 = lo64 + SL + (TakeProfit0 * MyPoint);}

            if (losses ==1){ll96 = NormalizeDouble( Coefflosse1 * ll48 , 2);lp90 = lp72 + (TakeProfit1 * MyPoint);}

            if (losses ==2){ll96 = NormalizeDouble( Coefflosse2 * ll48 , 2);lp90 = lp72 + (TakeProfit2 * MyPoint);}

            if (losses ==3){ll96 = NormalizeDouble( Coefflosse3 * ll48 , 2);lp90 = lp72 + (TakeProfit3 * MyPoint);}

               OrderSend(Symbol(), OP_BUYSTOP, ll96, lp72, 3,lo64,lp90, "Magic = " + 301210, 301210, 0, DodgerBlue);

                }  

         } 

 //=====================================================================

  Infos =      "PROGRESSION PF: " +  DoubleToStr(P_PF,2) + "€"+"..."+DoubleToStr(P_PF1,2)+ "%" ; 

 Comment(Infos);

 return (0);

}


 void ModifPoint ()

{

   if (Digits == 5 || Digits == 3) 

   {

      MyPoint = Point*10;

      Dg = (Digits - 1);

   }

   else  

   { 

      MyPoint = Point; 

      Dg = Digits;

   }

   }

응답함

1
개발자 1
등급
(90)
프로젝트
159
61%
중재
40
18% / 63%
기한 초과
70
44%
무료
2
개발자 2
등급
(15)
프로젝트
65
58%
중재
6
17% / 33%
기한 초과
39
60%
무료
3
개발자 3
등급
(187)
프로젝트
367
56%
중재
45
22% / 56%
기한 초과
188
51%
무료
게재됨: 1 기고글, 6 코드
4
개발자 4
등급
(48)
프로젝트
91
31%
중재
28
29% / 43%
기한 초과
42
46%
무료
게재됨: 1 코드
5
개발자 5
등급
(63)
프로젝트
80
28%
중재
17
12% / 76%
기한 초과
48
60%
무료
6
개발자 6
등급
(64)
프로젝트
144
46%
중재
19
42% / 16%
기한 초과
32
22%
작업중
비슷한 주문
I am looking to purchase a proven scalping Expert Advisor with verified live account performance. Requirements: • Minimum 6 months live trading history • Proven profitability with controlled drawdown • Scalping strategy with Buy and Sell trades • Works on XAUUSD (Gold), MT5 preferred • Includes Stop Loss and Take Profit • Suitable for small accounts ($100) • Reasonable one time price Please share live performance
Trade Copier from MT4/ MT5 to MT4/ MT5 (local) , i am looking for some local copier where i can copy trade from meta trader 4 to meta trader 5 or meta trader 5 to meta trader 4 , looking for fast execution
I. YÊU CẦU DỰ ÁN Tôi đang tìm cách phát triển một hệ thống giao dịch tự động (Expert Advisor) được xây dựng trên nền tảng Smart Money Concepts (SMC), tích hợp Trí tuệ Nhân tạo (AI) và có cơ chế quản lý vốn tiên tiến. EA (Expert Advisor) phải được tối ưu hóa cho cả thị trường biến động mạnh như Vàng (XAUUSD) cũng như các thị trường ổn định, có xu hướng như EURUSD. Nó phải thân thiện với người mới bắt đầu nhưng cũng đủ
Hello, I want a grid trading bot for the Gate.io crypto exchange. I currently have a working grid bot written in MQL5, and I want a similar bot implemented in Python. The MQL5 bot can be translated, but the codebase is large and it was not designed to be easily ported to Python. Therefore, I prefer that the final Python bot preserves the same core grid logic, but is implemented cleanly in Python rather than doing a
Chancefxbot1 400 - 600 USD
– MA20/30/50 Alignment + MA50 Slope + Swing SL + Step Trail + News Filter Symbol: XAUUSD Timeframe: M5 Language: MQL5 Trading: 24/5 (no session filter) 1) Indicators (Inputs) MA20, MA30, MA50 MA type selectable: EMA or SMA Applied to Close Inputs: MA periods and MA method 2) Entry Rules (Alignment + Slope) BUY: MA20 > MA30 > MA50 MA50 slope filter passes: Slope = MA50(current) − MA50(10 candles ago) Require slope ≥
I need an MT5 Expert Advisor for manual trading execution with precise risk-in-money control and automatic position splitting. FUNCTIONAL REQUIREMENTS: 1. Input: Total risk per trade in money (USD). 2. Input: Stop Loss in points/pips (or read from chart SL line). 3. EA must calculate position size based on total risk and SL distance. 4. EA must detect broker maximum lot size per position. 5. If calculated lot size
Tuyển dụng chuyên gia MQL4 để tối ưu hóa và hoàn thiện hệ thống giao dịch tự động (EA) I. Tổng quan Tôi đang tìm kiếm một nhà phát triển MQL4 giàu kinh nghiệm để tinh chỉnh, tối ưu hóa và hoàn thiện một Expert Advisor (EA) được thiết kế riêng cho nền tảng MetaTrader 4 (MT4). Logic cốt lõi đã được phát triển; mục tiêu chính là nâng cao hiệu suất và đảm bảo tính ổn định sẵn sàng cho môi trường sản xuất. II. Yêu cầu kỹ
The EA should only set TP and SL( Both Optional, We can set one at the time or no one at the same time or both active at the same time) 1. We active trade ourself , But in The EA this should ask if what the the TP and SL in form of USD we need. We'll put the Exact Required profit and or loss. This EA should calculate and set the tps and Sls itself to all the trades, and when we change the USD profit from info meter
Hello, I am looking for a trading idea, Expert Advisor (EA), or signal service that can achieve around 10% monthly profit (or close to it) in a realistic and consistent manner. 🔹 Very Important : Before any discussion or explanation, you must provide solid and verifiable proof of performance. The proof must be available on one of the following platforms: SignalStart MQL5 Myfxbook ❌ Backtests are NOT accepted and are
Pro EA 30+ USD
Hi, I want to build a trading robot specifically for passing a prop firm challenge. The EA should focus on strict risk management, low drawdown, and consistency suitable for prop firm rules. My current budget for this project is $30. Please let me know what is achievable within this budget and the strategy you recommend

프로젝트 정보

예산
20 - 60 USD
기한
에서 2  15 일