MQL5
Uzman Danışmanlar
Diğer
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
İş Gereklilikleri
//+------------------------------------------------------------------+
//| 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);
}
Yanıtlandı
1
Derecelendirme
Projeler
0
0%
Arabuluculuk
2
0%
/
50%
Süresi dolmuş
0
Çalışıyor
2
Derecelendirme
Projeler
0
0%
Arabuluculuk
1
0%
/
100%
Süresi dolmuş
0
Serbest
3
Derecelendirme
Projeler
0
0%
Arabuluculuk
0
Süresi dolmuş
0
Çalışıyor
4
Derecelendirme
Projeler
1
0%
Arabuluculuk
0
Süresi dolmuş
0
Serbest
Yayınlandı: 2 makale
5
Derecelendirme
Projeler
0
0%
Arabuluculuk
0
Süresi dolmuş
0
Serbest
Benzer siparişler
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
Proje bilgisi
Bütçe
30+ USD
Müşteri
Verilmiş siparişler1
Arabuluculuk sayısı0