An expect advisor based on rsi needed

MQL5 전문가

명시

//+------------------------------------------------------------------+
//| RSI + EMA Strategy with Sessions, MTF, and Trailing SL           |
//|                                    |
//+------------------------------------------------------------------+
#property strict

// === Inputs ===
input int      RSIPeriod       = 14;
input int      EMAPeriod       = 200;
input int      RSIOverbought   = 70;
input int      RSIOversold     = 30;
input double   LotSize         = 0.1;
input int      StopLoss        = 200;    // points
input int      TakeProfit      = 400;    // points
input int      Slippage        = 3;
input int      TSLTrigger      = 100;    // points in profit before trailing
input int      TSLStep         = 50;

input bool     AllowAsianSession   = true;
input bool     AllowLondonSession  = true;
input bool     AllowNewYorkSession = true;

input string   EntryTF         = "M15";
input string   TrendTF         = "H1";

//+------------------------------------------------------------------+
int OnInit() { return INIT_SUCCEEDED; }
//+------------------------------------------------------------------+
void OnTick()
{
   if (!WithinSession()) return;
   if (PositionsTotal() > 0) { ManageTrailingStop(); return; }

   double rsi = iRSIValue(_Symbol, EntryTF, RSIPeriod);
   double ema = iEMAValue(_Symbol, TrendTF, EMAPeriod);
   double price = SymbolInfoDouble(_Symbol, SYMBOL_BID);

   if (rsi < RSIOversold && price > ema)
      OpenOrder(ORDER_TYPE_BUY);

   if (rsi > RSIOverbought && price < ema)
      OpenOrder(ORDER_TYPE_SELL);
}
//+------------------------------------------------------------------+
void OpenOrder(ENUM_ORDER_TYPE type)
{
   double price = (type == ORDER_TYPE_BUY) ? SymbolInfoDouble(_Symbol, SYMBOL_ASK)
                                           : SymbolInfoDouble(_Symbol, SYMBOL_BID);
   double sl = (type == ORDER_TYPE_BUY) ? price - StopLoss * _Point
                                        : price + StopLoss * _Point;
   double tp = (type == ORDER_TYPE_BUY) ? price + TakeProfit * _Point
                                        : price - TakeProfit * _Point;

   MqlTradeRequest request;
   MqlTradeResult result;
   ZeroMemory(request); ZeroMemory(result);

   request.action = TRADE_ACTION_DEAL;
   request.symbol = _Symbol;
   request.volume = LotSize;
   request.type = type;
   request.price = NormalizeDouble(price, _Digits);
   request.sl = NormalizeDouble(sl, _Digits);
   request.tp = NormalizeDouble(tp, _Digits);
   request.deviation = Slippage;
   request.magic = 20250822;
   request.type_filling = ORDER_FILLING_IOC;

   if (OrderSend(request, result) && result.retcode == TRADE_RETCODE_DONE)
   {
      Print("Trade placed: #", result.order);
      LogTrade(result.order, type, price, sl, tp);
   }
   else
   {
      Print("Order failed: ", result.retcode);
   }
}
//+------------------------------------------------------------------+
void ManageTrailingStop()
{
   for (int i = 0; i < PositionsTotal(); i++)
   {
      ulong ticket = PositionGetTicket(i);
      if (PositionSelectByTicket(ticket))
      {
         double entry = PositionGetDouble(POSITION_PRICE_OPEN);
         double sl = PositionGetDouble(POSITION_SL);
         double price = (PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY)
                        ? SymbolInfoDouble(_Symbol, SYMBOL_BID)
                        : SymbolInfoDouble(_Symbol, SYMBOL_ASK);

         double profit = (PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY)
                         ? price - entry
                         : entry - price;

         if (profit / _Point >= TSLTrigger)
         {
            double newSL = (PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY)
                           ? price - TSLStep * _Point
                           : price + TSLStep * _Point;

            if (MathAbs(sl - newSL) > (_Point * 5))
            {
               MqlTradeRequest mod;
               MqlTradeResult res;
               ZeroMemory(mod); ZeroMemory(res);

               mod.action = TRADE_ACTION_SLTP;
               mod.symbol = _Symbol;
               mod.sl = NormalizeDouble(newSL, _Digits);
               mod.tp = PositionGetDouble(POSITION_TP);
               mod.position = ticket;
               if (OrderSend(mod, res))
                  Print("Trailing SL updated for order ", ticket);
            }
         }
      }
   }
}
//+------------------------------------------------------------------+
double iRSIValue(string symbol, string timeframe, int period)
{
   int tf = StringToTimeframe(timeframe);
   return iRSI(symbol, tf, period, PRICE_CLOSE, 0);
}

double iEMAValue(string symbol, string timeframe, int period)
{
   int tf = StringToTimeframe(timeframe);
   return iMA(symbol, tf, period, 0, MODE_EMA, PRICE_CLOSE, 0);
}

int StringToTimeframe(string tf)
{
   if(tf=="M1") return PERIOD_M1;
   if(tf=="M5") return PERIOD_M5;
   if(tf=="M15") return PERIOD_M15;
   if(tf=="M30") return PERIOD_M30;
   if(tf=="H1") return PERIOD_H1;
   if(tf=="H4") return PERIOD_H4;
   if(tf=="D1") return PERIOD_D1;
   return _Period;
}
//+------------------------------------------------------------------+
bool WithinSession()
{
   datetime now = TimeLocal();
   int hour = TimeHour(now);

   bool isAsian  = (hour >= 0 && hour < 8);       // 0–7 GMT
   bool isLondon = (hour >= 8 && hour < 17);      // 8–16 GMT
   bool isNY     = (hour >= 13 && hour < 22);     // 13–21 GMT

   if ((AllowAsianSession && isAsian) ||
       (AllowLondonSession && isLondon) ||
       (AllowNewYorkSession && isNY))
      return true;

   return false;
}
//+------------------------------------------------------------------+
void LogTrade(ulong ticket, ENUM_ORDER_TYPE type, double price, double sl, double tp)
{
   string filename = "rsibot_trade_log.csv";
   int file = FileOpen(filename, FILE_WRITE | FILE_READ | FILE_CSV | FILE_ANSI | FILE_SHARE_WRITE);
   if (file != INVALID_HANDLE)
   {
      FileSeek(file, 0, SEEK_END);
      string side = (type == ORDER_TYPE_BUY) ? "BUY" : "SELL";
      string log = TimeToString(TimeCurrent(), TIME_DATE | TIME_MINUTES) + "," +
                   _Symbol + "," + side + "," +
                   DoubleToString(price, _Digits) + "," +
                   DoubleToString(sl, _Digits) + "," +
                   DoubleToString(tp, _Digits) + "," +
                   DoubleToString(LotSize, 2) + "," +
                   IntegerToString(ticket);
      FileWrite(file, log);
      FileClose(file);
      Print("Trade logged to file.");
   }
   else
      Print("Failed to log trade.");
}

응답함

1
개발자 1
등급
(254)
프로젝트
375
25%
중재
22
59% / 23%
기한 초과
1
0%
바쁜
2
개발자 2
등급
(368)
프로젝트
472
24%
중재
51
61% / 20%
기한 초과
53
11%
로드됨
3
개발자 3
등급
(7)
프로젝트
8
25%
중재
0
기한 초과
0
로드됨
4
개발자 4
등급
(424)
프로젝트
747
49%
중재
61
16% / 49%
기한 초과
136
18%
작업중
5
개발자 5
등급
(13)
프로젝트
15
0%
중재
1
0% / 0%
기한 초과
0
작업중
6
개발자 6
등급
(4)
프로젝트
4
25%
중재
2
0% / 0%
기한 초과
0
바쁜
7
개발자 7
등급
(15)
프로젝트
34
24%
중재
3
0% / 33%
기한 초과
2
6%
작업중
8
개발자 8
등급
(284)
프로젝트
290
70%
중재
2
100% / 0%
기한 초과
0
무료
게재됨: 1 코드
9
개발자 9
등급
(45)
프로젝트
58
36%
중재
1
0% / 0%
기한 초과
1
2%
작업중
10
개발자 10
등급
(205)
프로젝트
308
34%
중재
56
38% / 38%
기한 초과
99
32%
무료
11
개발자 11
등급
(435)
프로젝트
556
38%
중재
95
42% / 28%
기한 초과
15
3%
바쁜
12
개발자 12
등급
(277)
프로젝트
328
51%
중재
12
42% / 0%
기한 초과
18
5%
로드됨
13
개발자 13
등급
(290)
프로젝트
520
36%
중재
62
34% / 35%
기한 초과
187
36%
작업중
14
개발자 14
등급
(8)
프로젝트
12
0%
중재
22
0% / 77%
기한 초과
4
33%
무료
15
개발자 15
등급
프로젝트
0
0%
중재
0
기한 초과
0
무료
16
개발자 16
등급
프로젝트
1
0%
중재
0
기한 초과
1
100%
무료
17
개발자 17
등급
프로젝트
0
0%
중재
0
기한 초과
0
무료
18
개발자 18
등급
(7)
프로젝트
16
38%
중재
1
0% / 100%
기한 초과
2
13%
작업중
19
개발자 19
등급
프로젝트
0
0%
중재
0
기한 초과
0
무료
20
개발자 20
등급
프로젝트
0
0%
중재
1
0% / 0%
기한 초과
0
작업중
21
개발자 21
등급
(156)
프로젝트
280
35%
중재
14
29% / 50%
기한 초과
42
15%
무료
22
개발자 22
등급
(170)
프로젝트
193
42%
중재
9
11% / 44%
기한 초과
9
5%
작업중
게재됨: 3 코드
23
개발자 23
등급
프로젝트
0
0%
중재
0
기한 초과
0
무료
24
개발자 24
등급
프로젝트
0
0%
중재
0
기한 초과
0
무료
25
개발자 25
등급
프로젝트
0
0%
중재
0
기한 초과
0
무료
26
개발자 26
등급
프로젝트
0
0%
중재
0
기한 초과
0
무료
27
개발자 27
등급
(4)
프로젝트
4
75%
중재
0
기한 초과
0
무료
28
개발자 28
등급
(11)
프로젝트
11
18%
중재
1
0% / 0%
기한 초과
1
9%
무료
29
개발자 29
등급
프로젝트
0
0%
중재
0
기한 초과
0
무료
30
개발자 30
등급
(4)
프로젝트
2
0%
중재
1
0% / 0%
기한 초과
1
50%
작업중
31
개발자 31
등급
프로젝트
0
0%
중재
0
기한 초과
0
무료
32
개발자 32
등급
프로젝트
0
0%
중재
0
기한 초과
0
무료
33
개발자 33
등급
(229)
프로젝트
267
77%
중재
10
80% / 0%
기한 초과
4
1%
작업중
비슷한 주문
MORE WINS GOLD SCALPER 50 - 100 USD
I need someone who can create a scalping trading bot for me. With a 1 - 5 minutes timeframe entry. A good robot that automatically opens a trade and close in profit. BOT should have a 80 percent win rate. Opens only one trade at a time. Closes a trade before opening a new one . Trading strictly GOLD/USD PLEASE TAKE NOTE PROGRAMMER SHOULD BE ABLE TO REMOTELY INSTALL AND SETUP THE BOT AS WELL PROGRAMMER SHOULD ALSO
A few months ago, I started conducting some trading funding tests. I want to develop a management system that allows me to apply it to any account, regardless of the funding company. The idea is that ONLY from 11:00 PM to midnight, Monday through Friday, and on Saturday and Sunday, I can indicate the maximum number of trades allowed per day for each account. This means that if the system detects that I have already
Sharp scalping 30 - 100 USD
I have $1 million account that I need a scalping box for with a 90% win rate I attached a photo of the daily draw down and the max draw down of the account because it is a prop firm challenge. I need it in Pine script for trading view. Thanks
Gold robot 35+ USD
Hello, i need a Gold robot which is safe to be run on a $100 account. This robot should be smart and not include heavy graphics. It should be able to run on its own via VPS without fear. I will need source code. I you have any to show just send me a sample test. NOTE that i will ignore developers who just say hello, simply show up with what you have we talk. The EA must give me descent equity curve. I know nothing is
I need a web-based licensing system for EA/Indicator licensing. I want to sell EAs & Indicators (both MT4 & MT5). I will allow only one account per purchase. I need to be able to add the licensed accounts numbers with reference to a purchase order number. This should work for both MT4/MT5 I should be able to search and find purchase order numbers or account numbers from the database via a web interface. I should be
Project Overview Development of an advanced MetaTrader 5 Expert Advisor (EA) implementing Smart Money Concepts (SMC) trading methodology with comprehensive risk management and an intuitive trading panel interface. The EA will automate the identification and execution of high-probability setups based on institutional trading behavior analysis. Smart Money Concepts Implementation Market Structure Analysis Automated
High Frequency Trading Algorithm Project Project Overview Development of an autonomous high-frequency trading (HFT) system designed to execute algorithmic trading strategies across multiple financial markets with microsecond-level latency optimization. The system will capitalize on short-term market inefficiencies through rapid order execution and sophisticated market microstructure analysis. Technical Architecture
RSI AND MACD EA 150 - 300 USD
I want an MQL5 EA that will trade with macd and RSI. The strategy is simple but I need to add MA news filter, money management and other feature to make it complete. Please bid if you can do the job
thats all……. want to find a Developer to perform this work and settle payments in this Application. I undertake not to communicate with Applicants anywhere else except this Application, including third-party messengers, personal correspondence or emails. I understand that violators will
MCB BOT 30 - 45 USD
I need a ready-made or create a new US30, USTECH, DE30 fully automated robot based on level trading taking advantage of the range formed during the London session, New York session, Asian session and executing strategic trades at the New York open where the highest liquidity and volatility occur. It should be based on key market levels. Must have Built-in risk management to protect capital. Should be 100% automated

프로젝트 정보

예산
30 - 50 USD
기한
에서 1  5 일

고객

넣은 주문2
중재 수0