Техническое задание

//+------------------------------------------------------------------+
//|                   RSI + Bollinger Bands EA (MT5)                |
//|                        Built for Jonah                           |
//+------------------------------------------------------------------+
#property strict
#property version   "1.00"

//================ INPUTS =================
input string   SymbolName      = "XAUUSD";
input double   LotSize         = 0.01;
input int      RSIPeriod       = 14;
input double   RSI_Buy_Level   = 30;
input double   RSI_Sell_Level  = 70;
input int      BB_Period       = 20;
input double   BB_Deviation    = 2.0;
input double   MaxSpread       = 0.2;
input int      StopLossPoints  = 300;
input int      TakeProfitPoints= 600;

//================ HANDLES =================
int rsiHandle;
int bbHandle;

//================ INIT ====================
int OnInit()
{
   rsiHandle = iRSI(SymbolName, PERIOD_CURRENT, RSIPeriod, PRICE_CLOSE);
   bbHandle  = iBands(SymbolName, PERIOD_CURRENT, BB_Period, BB_Deviation, 0, PRICE_CLOSE);

   if(rsiHandle == INVALID_HANDLE || bbHandle == INVALID_HANDLE)
      return INIT_FAILED;

   return INIT_SUCCEEDED;
}

//================ TICK ====================
void OnTick()
{
   if(!SpreadOK()) return;
   if(PositionSelect(SymbolName)) return;

   double rsi[1];
   double upper[1], lower[1];
   double price = SymbolInfoDouble(SymbolName, SYMBOL_BID);

   CopyBuffer(rsiHandle, 0, 0, 1, rsi);
   CopyBuffer(bbHandle, 1, 0, 1, upper);
   CopyBuffer(bbHandle, 2, 0, 1, lower);

   // BUY CONDITION
   if(rsi[0] <= RSI_Buy_Level && price <= lower[0])
      OpenTrade(ORDER_TYPE_BUY);

   // SELL CONDITION
   if(rsi[0] >= RSI_Sell_Level && price >= upper[0])
      OpenTrade(ORDER_TYPE_SELL);
}

//================ SPREAD CHECK =================
bool SpreadOK()
{
   double spread = SymbolInfoDouble(SymbolName, SYMBOL_SPREAD);
   return spread <= MaxSpread;
}

//================ TRADE EXECUTION =================
void OpenTrade(ENUM_ORDER_TYPE type)
{
   MqlTradeRequest req;
   MqlTradeResult  res;
   ZeroMemory(req);

   double price = (type == ORDER_TYPE_BUY)
                  ? SymbolInfoDouble(SymbolName, SYMBOL_ASK)
                  : SymbolInfoDouble(SymbolName, SYMBOL_BID);

   req.action   = TRADE_ACTION_DEAL;
   req.symbol   = SymbolName;
   req.volume   = LotSize;
   req.type     = type;
   req.price    = price;
   req.sl       = (type == ORDER_TYPE_BUY)
                  ? price - StopLossPoints * _Point
                  : price + StopLossPoints * _Point;
   req.tp       = (type == ORDER_TYPE_BUY)
                  ? price + TakeProfitPoints * _Point
                  : price - TakeProfitPoints * _Point;
   req.deviation= 10;
   req.magic    = 111222;

   OrderSend(req, res);
}

//================ DEINIT =================
void OnDeinit(const int reason)
{
   IndicatorRelease(rsiHandle);
   IndicatorRelease(bbHandle);
}

Откликнулись

1
Разработчик 1
Оценка
(1)
Проекты
0
0%
Арбитраж
2
0% / 50%
Просрочено
0
Работает
2
Разработчик 2
Оценка
Проекты
0
0%
Арбитраж
1
0% / 100%
Просрочено
0
Свободен
3
Разработчик 3
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Работает
4
Разработчик 4
Оценка
(1)
Проекты
1
0%
Арбитраж
0
Просрочено
0
Свободен
Опубликовал: 2 статьи
5
Разработчик 5
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
Похожие заказы
// Add this to your EA after ExportState() function void SendToBase44(const string state, const string dir, double entry, double sl, double tp) { string url = " https://preview-sandbox--ee0a32a725b788974de435e8cef40b7a.base44.app/api/functions/receiveEAState "; string headers = "Content-Type: application/json\r\n"; string json = "{" "\"symbol\":\""+_Symbol+"\","
I recently purchased an off the shelf 'multiple positions executor' EA in order to open multiple trades simultaneously using MT5 however the orders would fail. It seems they would fail because the EA uses PIPs and the broker I use with MT5 uses Points. The EA was sending an order with SL/TP values that violated the broker’s symbol rules. I need an EA developed which Opens multiple market orders simultaneously
Description I need an very low latency MT5 Expert Advisor (EA) developed in MQL5 to automate TradingView alerts into MT5 trades for alerts set up done on trading view. The EA must work on both DEMO and LIVE accounts whichever will be attached to MT5 (XM, IC Markets and similar MT5 brokers) and be suitable for fast 1-minute timeframe scalping.End to End solution. Functional Requirements 1. TradingView Integration
1.Sinyal Perdagangan : Sinyal beli: garis MACD utama memotong garis sinyal ke atas (macd_current>signal_current && macd_previous<signal_previous). Sinyal jual: garis MACD utama memotong garis sinyal ke bawah (macd_current<signal_current && macd_previous>signal_previous). Gambar di bawah menunjukkan kasus beli dan jual. 2. Posisi ditutup pada sinyal yang berlawanan: Posisi beli ditutup pada sinyal jual, dan posisi
Title: Development of MT4/MT5 Expert Advisor for NASDAQ Hedging Strategy with Optimization & Backtesting Description: I am seeking an experienced MetaTrader 4/5 (MT4/MT5) developer to build a fully automated Expert Advisor (EA) based on a specific NASDAQ hedging strategy. The EA will run on two separate accounts simultaneously with randomized hedging logic. All timing references are in New York Time (UTC-5) . Trading
I have an MT5 expert advisor. The EA trades martingale strategy. I need it converted to a python bot to trade futures in binance, bybit, okx, kucoin and other dexes

Информация о проекте

Бюджет
30+ USD

Заказчик

Размещено заказов1
Количество арбитражей0