Работа завершена
Время выполнения 25 секунд
![](https://c.mql5.com/i/avatar/avatar_na2.png)
Отзыв от заказчика
Nice job :)
![](https://c.mql5.com/i/avatar/avatar_na2.png)
Отзыв от исполнителя
Perfect
Техническое задание
Hello,
Problem opening position
example:
When I have an order that opens either to bull or sell in the function
if(Counts () == 0
if it's a bull order and my stop loss is hit then it will go to the function
if (Counts () == 1 ect ...
what I want is when my function
if (Counts () == 2
is hit and a bull order is opened and my stop loss is hit then my function
if (Counts () == 3
will open a sell order.
and if my function
if (Counts () == 2
opens a sell order then my function
if (Counts () == 3
will open a bull command
//| test35.mq4 | //| xxx | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "xxx" #property link "http://www.mql5.com" #property version "1.00" #property strict extern double lots1 = 0.01; extern double lots2 = 0.03; extern double lots3 = 0.10; extern double lots4 = 0.01; extern double lots5 = 0.03; extern double lots6 = 0.10; extern double lots7 = 0.01; extern double lots8 = 0.03; extern double lots9 = 0.10; extern double lots10 = 0.01; extern double lots11 = 0.03; extern double lots12 = 0.10; input int TakeProfit1 = 10; input int StopLoss1 = 20; input int TakeProfit2 = 10; input int StopLoss2 = 20; input int TakeProfit3 = 10; input int StopLoss3 = 20; input int TakeProfit4 = 10; input int StopLoss4 = 20; input int TakeProfit5 = 10; input int StopLoss5 = 20; input int TakeProfit6 = 10; input int StopLoss6 = 20; input int TakeProfit7 = 10; input int StopLoss7 = 20; input int TakeProfit8 = 10; input int StopLoss8 = 20; input int TakeProfit9 = 10; input int StopLoss9 = 20; input int TakeProfit10 = 10; input int StopLoss10 = 20; input int TakeProfit11 = 10; input int StopLoss11 = 20; input int TakeProfit12 = 10; input int StopLoss12 = 20; input int period=14; // Averagin period for calculation input int period1=14; input int period2=14; input int period3=14; //input ENUM_APPLIED_PRICE appPrice=PRICE_HIGH; // Applied price input int OverBought=70; // Over bought level input int OverSold=30; // Over sold level input int OverBought1=75; // Over bought level input int OverSold1=25; // Over sold level input int OverBought2=80; // Over bought level input int OverSold2=20; // Over sold level input int OverBought3=85; // Over bought level input int OverSold3=15; // Over sold level extern int magic = 118516; //extern double Level = 1.3660; //extern double MaxDeviation = 9; // Max Deviation, points bool RunOnce=false; int last_order_check = false; datetime EaStartTime=TimeCurrent(); double takeprofit1=TakeProfit1; double stoploss1 =StopLoss1; double takeprofit2=TakeProfit2; double stoploss2 =StopLoss2; double takeprofit3=TakeProfit3; double stoploss3 =StopLoss3; double takeprofit4=TakeProfit4; double stoploss4 =StopLoss4; double takeprofit5=TakeProfit5; double stoploss5 =StopLoss5; double takeprofit6=TakeProfit6; double stoploss6 =StopLoss6; double takeprofit7=TakeProfit7; double stoploss7 =StopLoss7; double takeprofit8=TakeProfit8; double stoploss8 =StopLoss8; double takeprofit9=TakeProfit9; double stoploss9 =StopLoss9; double takeprofit10=TakeProfit10; double stoploss10 =StopLoss10; double takeprofit11=TakeProfit11; double stoploss11 =StopLoss11; double takeprofit12=TakeProfit12; double stoploss12 =StopLoss12; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { RunOnce=false; MathSrand(GetTickCount()); if(Digits==5 || Digits==3) { takeprofit1 =TakeProfit1*10; stoploss1 =StopLoss1*10; takeprofit2 =TakeProfit2*10; stoploss2 =StopLoss2*10; takeprofit3 =TakeProfit3*10; stoploss3 =StopLoss3*10; takeprofit4 =TakeProfit4*10; stoploss4 =StopLoss4*10; takeprofit5 =TakeProfit5*10; stoploss5 =StopLoss5*10; takeprofit6 =TakeProfit6*10; stoploss6 =StopLoss6*10; takeprofit7 =TakeProfit7*10; stoploss7 =StopLoss7*10; takeprofit8 =TakeProfit8*10; stoploss8 =StopLoss8*10; takeprofit9 =TakeProfit9*10; stoploss9 =StopLoss9*10; takeprofit10 =TakeProfit10*10; stoploss10 =StopLoss10*10; takeprofit11 =TakeProfit11*10; stoploss11 =StopLoss11*10; takeprofit12 =TakeProfit12*10; stoploss12 =StopLoss12*10; } return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnTimer() { OnTick(); } void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { if(IsLastOrderClose()) { OnInit(); Print("Ea Closed Manually "); EaStartTime=TimeCurrent(); } double rsi=iRSI(_Symbol,PERIOD_CURRENT,period,PRICE_HIGH,1); double rsi1=iRSI(_Symbol,PERIOD_CURRENT,period1,PRICE_HIGH,1); double rsi2=iRSI(_Symbol,PERIOD_CURRENT,period2,PRICE_HIGH,1); double rsi3=iRSI(_Symbol,PERIOD_CURRENT,period3,PRICE_HIGH,1); double MA_Fast1,MA_Low1,MA_Fast2,MA_Low2; MA_Fast1=iMA( NULL, PERIOD_M1, 1, 0, MODE_SMA, PRICE_TYPICAL, 0); // áûñòðàÿ ÌÀ MA_Low1=iMA( NULL, PERIOD_M1, 20, 7, MODE_SMA, PRICE_CLOSE, 0); // ìåäëåííàÿ ÌÀ MA_Fast2=iMA( NULL, PERIOD_M1, 1, 0, MODE_SMA, PRICE_TYPICAL, 1); // áûñòðàÿ ÌÀ MA_Low2=iMA( NULL, PERIOD_M1, 20, 7, MODE_SMA, PRICE_CLOSE, 1); // ìåäëåííàÿ ÌÀ int ticet; int t=MathRand(); if(CountVsego()==0) { if(t>16384) { if(Counts()==0&& (rsi<OverSold))//&&( Close[0] > High[1] ))// && (RunOnce || (Ask >=Level && Ask<=Level+(MaxDeviation*_Point) && Level !=0))) { ticet=OrderSend(Symbol(),OP_BUY,lots1,Ask,3,Bid-stoploss1*Point,Ask+takeprofit1*Point,"1",magic,0,clrGreen); if(ticet>0) { RunOnce=true;//OverSold } } } // Partie 1 else if(t<16384) { if(Counts()==0&&(rsi>OverBought ))//&&( Close[0] < Low[1] ))// && (RunOnce || (Bid <=Level && Bid >= Level-(MaxDeviation*_Point) && Level !=0))) { ticet=OrderSend(Symbol(),OP_SELL,lots1,Bid,3,Ask+stoploss1*Point,Bid-takeprofit1*Point,"1",magic,0,clrRed); if(ticet>0) { RunOnce=true; } } } // if(t>16384) // { if(Counts()==1&& (rsi1<OverSold1))// && MA_Fast2<MA_Low2 ))//&&( Close[0] > High[1] ))// && (RunOnce || (Ask >=Level && Ask<=Level+(MaxDeviation*_Point) && Level !=0))) { ticet=OrderSend(Symbol(),OP_BUY,lots2,Ask,3,Bid-stoploss2*Point,Ask+takeprofit2*Point,"2",magic,0,clrGreen); // if(ticet>0) // { // RunOnce=true; } // } // } // Partie 2 // else if(t<16384) // { if(Counts()==1&& (rsi1>OverBought1 ))// && MA_Fast2>MA_Low2 ))//&&( Close[0] < Low[1] ))// && (RunOnce || (Bid <=Level && Bid >= Level-(MaxDeviation*_Point) && Level !=0))) { ticet=OrderSend(Symbol(),OP_SELL,lots2,Bid,3,Ask+stoploss2*Point,Bid-takeprofit2*Point,"2",magic,0,clrRed); // if(ticet>0) // { // RunOnce=true; } // } // } // if(t>16384) // { if(Counts()==2&& (rsi2<OverSold2))// && MA_Fast4<MA_Low4 ))//&&( Close[0] > High[1] ))// && (RunOnce || (Ask >=Level && Ask<=Level+(MaxDeviation*_Point) && Level !=0))) { ticet=OrderSend(Symbol(),OP_BUY,lots3,Ask,3,Bid-stoploss3*Point,Ask+takeprofit3*Point,"3",magic,0,clrGreen); // if(ticet>0) // { // RunOnce=true; } // } // } //Partie 3 // else if(t<16384) // { if(Counts()==2&& (rsi2>OverBought2 ))// && MA_Fast4>MA_Low4 ))//&&( Close[0] < Low[1] ))// && (RunOnce || (Bid <=Level && Bid >= Level-(MaxDeviation*_Point) && Level !=0))) { ticet=OrderSend(Symbol(),OP_SELL,lots3,Bid,3,Ask+stoploss3*Point,Bid-takeprofit3*Point,"3",magic,0,clrRed); // if(ticet>0) //{ // RunOnce=true; } // } // } // if(t>16384) // { if(Counts()==3&&(rsi<OverSold))//&&( Close[0] > High[1] ))// && (RunOnce || (Ask >=Level && Ask<=Level+(MaxDeviation*_Point) && Level !=0))) { ticet=OrderSend(Symbol(),OP_BUY,lots4,Ask,3,Bid-stoploss4*Point,Ask+takeprofit4*Point,"4",magic,0,clrGreen); // if(ticet>0) // { // RunOnce=true; // } } // } // Partie 4 // else if(t<16384) // { if(Counts()==3&&(rsi>OverBought ))//&&( Close[0] < Low[1] ))// && (RunOnce || (Bid <=Level && Bid >= Level-(MaxDeviation*_Point) && Level !=0))) { ticet=OrderSend(Symbol(),OP_SELL,lots4,Bid,3,Ask+stoploss4*Point,Bid-takeprofit4*Point,"4",magic,0,clrRed); // if(ticet>0) // { // RunOnce=true; } // } // } // if(t>16384) // { if(Counts()==4&& (rsi1<OverSold1))// && MA_Fast2<MA_Low2 ))//&&( Close[0] > High[1] ))// && (RunOnce || (Ask >=Level && Ask<=Level+(MaxDeviation*_Point) && Level !=0))) { ticet=OrderSend(Symbol(),OP_BUY,lots5,Ask,3,Bid-stoploss5*Point,Ask+takeprofit5*Point,"5",magic,0,clrGreen); // if(ticet>0) // { // RunOnce=true; } // } // } // Partie 5 // else if(t<16384) // { if(Counts()==4&& (rsi1>OverBought1 ))// && MA_Fast2>MA_Low2 ))//&&( Close[0] < Low[1] ))// && (RunOnce || (Bid <=Level && Bid >= Level-(MaxDeviation*_Point) && Level !=0))) { ticet=OrderSend(Symbol(),OP_SELL,lots5,Bid,3,Ask+stoploss5*Point,Bid-takeprofit5*Point,"5",magic,0,clrRed); // if(ticet>0) // { // RunOnce=true; // } // } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int CountSELL() { int count=0; int i; for(i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderType()==OP_SELL) count++; } } return(count); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int CountBUY() { int count=0; int i; for(i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderType()==OP_BUY) count++; } } return(count); } //+------------------------------------------------------------------+ int Counts() { int count=0,i; for(i=OrdersHistoryTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) { if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderCloseTime()>=EaStartTime) { if(OrderProfit()>0) { if(count==0) { OnInit(); EaStartTime=TimeCurrent(); } return count; }else { count++; } } if(count > 11 && OrderCloseTime()>=EaStartTime) count=0; } } return(count); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int CountVsego() { int Vsego; Vsego=CountBUY()+CountSELL(); return(Vsego); } //+------------------------------------------------------------------+ bool IsLastOrderClose() { bool signal = false; for(int i=OrdersHistoryTotal()-1;i>=0;i--) { bool select = OrderSelect(i,SELECT_BY_POS,MODE_HISTORY); if(select && OrderSymbol()==_Symbol && OrderMagicNumber()==magic) { if(OrderType()==OP_BUY && OrderCloseTime()>=EaStartTime) { if(OrderClosePrice()>OrderStopLoss() && OrderClosePrice()<OrderTakeProfit()) { signal = true; } break; } else if(OrderType()==OP_SELL && OrderCloseTime()>=EaStartTime) { if(OrderClosePrice()<OrderStopLoss() && OrderClosePrice()>OrderTakeProfit()) { signal = true; } break; } break; } } return(signal); }
Откликнулись
1
Оценка
Проекты
138
41%
Арбитраж
30
7%
/
77%
Просрочено
17
12%
Свободен
2
Оценка
Проекты
134
14%
Арбитраж
41
22%
/
29%
Просрочено
14
10%
Свободен
3
Оценка
Проекты
148
59%
Арбитраж
16
38%
/
13%
Просрочено
25
17%
Свободен
4
Оценка
Проекты
680
57%
Арбитраж
25
16%
/
60%
Просрочено
228
34%
Свободен
Похожие заказы
Create mt4 ea
50+ USD
To convert the provided MT4 indicator script into an Expert Advisor (EA) and implement prompt functionality for user input, we need to modify the code to handle external parameters and provide a user-friendly interface. Below is the EA code that incorporates prompts for user inputs
I WRITE a code i want to conect this for automatic trading through vps .and als advanced features for this code .i attached afile please watch .and give me perfect ea
Hello The EA will work on particular zone choose by the user and can mark it on any TF and with some rules can open trades and mange the trade by some unique rules. the EA need to check the difference by RSI as well and with some extra rules . developer should have good attitude and good communication (englsih) with high performence and knowledge with coding EA. THREE TYPES OF ENTRIES 1: AGGRESSIVE 2: DIVERGENCE 3
Create a trade assistant
30 - 60 USD
I need a simple panel to execute both buy and sell operations with very basic things like stopp loss take profit that functions for both market orders such as buy stop sell stop buy limit sell limit I don't care about colors or design I just want how you can do it what interests me most are the functions
I want to create an EA that can take bids according to information of a logic I have developed to give indication of a BUY or SELL opportunity. The EA will then be able to activate the BUY at the lowest possible position once the indicator clears it for a BUY and take bid upwards or identify the highest point and clears it for a SELL and take bids downwards. As you can see from example of JULY 2024 data to see how
Next Candle Probability
50 - 150 USD
Hello, I‘m interested in an indicator to predict the next candles probability (bullish or bearish). But honestly I have no idea how to do this. Would be interested in your opinion how we can create such an indicator. Please let me know if you‘ve done similar work
Hey greetings. Am in need of a developer that has already made profitable MT4 or MT5 EA that I can buy with the backtesting and proven result. How is the draw down ? What is the winning rate ? Kindly reply and let proceed
I need a TradingView script converted to an Mt5 EA
70 - 100 USD
I need a TradingView script (not mine) converted to an Mt5 EA. There is some specifications for the robots on when to be able to take a trade. Attached bellow is the file of the script I want translated and converted to MT5 then EA
Create A EA Trade Manager for both MT4 & MT5
30 - 40 USD
GOODAY TO YOU I AM NEED OF A FAST, TALENTED AND HIGH QUALITY CODER TO THIS JOB FOR ME. THE EA TRADE MANAGER WILL HAVE THE FOLLOWING: STOPLOSS & TAKEPROFIT IN PIPS LOT SIZE IN PIPS NUMBER OF TRADES (1-30 TRADES MAXIMUM) PLEASE LOOK AT THE PICTURE ABOVE FOR A GUIDE
نجم الدين احمد
30+ USD
evalq({ #نوع دالة التنشيط. الحقيقة <- c( "sig" , #: sigmoid "sin" , #: sine "radbas" , #: radial basis "hardlim" , #: hard-limit "hardlims" , #: symmetric hard-limit "satlins" , #: satlins "tansig" , #: tan -sigmoid "tribas" , #: triangular basis "poslin" , #: positive linear "purelin" ) #: linear السندات
Информация о проекте
Бюджет
30+ USD
VAT (20%):
6
USD
Итого:
36
USD
Исполнителю
27
USD
Сроки выполнения
до 1 дн.