MQL5
Experts
Other
Forex
Trading robot/indicator debugging
Strategy optimization
Statistics and mathematics
C++
Strategy modules
Python
Panels and dialog boxes
C#
Stocks
Custom graphics
Futures
MySQL
Product Design
JavaScript
Options
Java
Collection of data on the internet
SQL
HTML
PHP
Uploading data to a website
Data mining
Text writing
Text translation
OpenCL
ALGLIB
PostgreSQL
Linux
Photoshop
R
RegExp
Specification
//+------------------------------------------------------------------+
//| 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);
}
//| 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);
}
Responded
1
Rating
Projects
0
0%
Arbitration
2
0%
/
50%
Overdue
0
Working
2
Rating
Projects
0
0%
Arbitration
1
0%
/
100%
Overdue
0
Free
3
Rating
Projects
0
0%
Arbitration
0
Overdue
0
Working
4
Rating
Projects
1
0%
Arbitration
0
Overdue
0
Free
Published: 2 articles
5
Rating
Projects
0
0%
Arbitration
0
Overdue
0
Free
Similar orders
SpikeEnginePro EA
30+ USD
// 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+"\","
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
can anyone help me with building a complete automated pine code strategy and indicator that work for both FXs & CFDs and have a high winning rate proved through back testing. I have a very complex current code that developed mostly using AI but lots of gaps are there although it translate exactly what I have in my mind. So, you are free to decide whether wo build a complete new code or fix my current working code ( i
Project information
Budget
30+ USD
Customer
Placed orders1
Arbitrage count0