RSI-R2 v1.3
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rsi-r2 ea ver1.3 (2).mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
RSI-R2 v1.3 — торговый советник для MetaTrader 4, который анализирует ценовые данные на дневном таймфрейме, используя индикатор RSI и скользящую среднюю для определения направления рынка и формирования торговых сигналов. Советник открывает и закрывает позиции в соответствии с полученными сигналами, а также управляет защитой позиций с помощью механизма трейлинг-стопов на основе Parabolic SAR. Встроенный модуль управления денежными средствами рассчитывает размер лота на основе остатка на счёте и заданного процента риска. Для множества валютных пар предусмотрены индивидуальные настройки периода RSI, а также настраиваемые уровни перекупленности и перепроданности, стоп-лосс, тейк-профит и другие параметры.
Настройки программы
| Настройка | Описание |
|---|---|
| LotSize | Размер лота — Размер лота при ручном управлении размером позиции |
| Slippage | Проскальзывание — Допустимое отклонение цены при исполнении ордеров |
| StopLoss | Стоп-лосс — Уровень стоп-лосса для ордеров |
| TakeProfit | Тейк-профит — Уровень тейк-профита для ордеров |
| RiskPercent | Процент риска — Процент риска от остатка на счёте при автоматическом расчёте размера лота |
| UseMoneyMgmt | Использовать управление денежными средствами — Включение автоматического расчёта размера лота на основе процента риска |
| BrokerPermitsFractionalLots | Брокер разрешает дробные лоты — Разрешение брокера на использование дробных лотов |
| UseDefaultRSI_Period | Использовать стандартный период RSI — Использовать стандартный период RSI вместо пары-специфичных значений |
| RSI_Period | Период RSI — Период расчёта индикатора RSI |
| RSI_Overbought_Value | Уровень перекупленности RSI — Уровень перекупленности RSI для закрытия длинных позиций |
| RSI_Oversold_Value | Уровень перепроданности RSI — Уровень перепроданности RSI для закрытия коротких позиций |
Поиск по коду файла
extern double LotSize=10;
extern int Slippage=3;
extern double StopLoss=0;
extern double TakeProfit=700;
extern double RiskPercent=2.0;
extern bool UseMoneyMgmt=false;
extern bool BrokerPermitsFractionalLots = true;
extern bool UseDefaultRSI_Period = false;
extern int RSI_Period = 4;
extern double RSI_Overbought_Value = 75.0;
extern double RSI_Oversold_Value = 25.0;
int MagicNumber = 0;
int ticket;
int OpenBuyOrders = 0;
int OpenSellOrders = 0;
int i;
bool Buy_Mode = false, Sell_Mode = false;
double RSI_Day_1 = 0, RSI_Day_2 = 0, RSI_Day_3 = 0, SMA200_Day3 = 0;
double MM_MinLotSize = 0;
double MM_MaxLotSize = 0;
double MM_LotStep = 0;
double MM_Decimals = 0;
double MM_OrderLotSize = 0;
int MM_AcctLeverage = 0;
int MM_CurrencyLotSize = 0;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
int start()
{
// код доступен только после оплаты
}
Calc_Money_Management();
SMA200_Day3 = iMA(NULL,PERIOD_D1,200, 0, MODE_SMA, PRICE_CLOSE, 1);
RSI_Day_1 = iRSI(NULL, PERIOD_D1, RSI_Period, PRICE_CLOSE, 3);
RSI_Day_2 = iRSI(NULL, PERIOD_D1, RSI_Period, PRICE_CLOSE, 2);
RSI_Day_3 = iRSI(NULL, PERIOD_D1, RSI_Period, PRICE_CLOSE, 1);
if (RSI_Day_1 < 65 && RSI_Day_2 < RSI_Day_1 && RSI_Day_3 < RSI_Day_2 && Close[1] > SMA200_Day3)
{
Buy_Mode=true;
} else {
Buy_Mode=false;
}
if (RSI_Day_1 > 35 && RSI_Day_2 > RSI_Day_1 && RSI_Day_3 > RSI_Day_2 && Close[1] < SMA200_Day3)
{
Sell_Mode=true;
} else {
Sell_Mode=false;
}
if (OpenBuyOrders == 1 && (RSI_Day_3 > RSI_Overbought_Value || Close[1] < SMA200_Day3))
{
CloseLongs(MagicNumber);
OpenBuyOrders = 0;
}
if (OpenSellOrders == 1 && (RSI_Day_3 < RSI_Oversold_Value || Close[1] > SMA200_Day3))
{
CloseShorts(MagicNumber);
OpenSellOrders = 0;
}
OpenBuyOrders=0;
OpenSellOrders=0;
for (i = 0; i <= OrdersTotal(); i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if ((OrderSymbol() == Symbol()) && (OrderMagicNumber() == MagicNumber))
{
if (OrderType() == OP_BUY)
{
OpenBuyOrders++;
if ((iSAR(NULL,0,0.02,0.2,1) > OrderStopLoss()) && (Bid > iSAR(NULL,0,0.02,0.2,1)) && (OrderOpenPrice() < iSAR(NULL,0,0.02,0.2,1)) && (iSAR(NULL,0,0.02,0.2,1) > iSAR(NULL,0,0.02,0.2,2)))
{
OrderModify(OrderTicket(),OrderOpenPrice(),iSAR(NULL,0,0.02,0.2,1),OrderTakeProfit(),0,Blue);
Print("Order # ",OrderTicket()," updated at ",Hour(),":",Minute(),":",Seconds());
return(0);
}
}
if (OrderType() == OP_SELL)
{
OpenSellOrders++;
if ((iSAR(NULL,0,0.02,0.2,1) < OrderStopLoss()) && (Ask < iSAR(NULL,0,0.02,0.2,1)) && (OrderOpenPrice() > iSAR(NULL,0,0.02,0.2,1)) && (iSAR(NULL,0,0.02,0.2,1) < iSAR(NULL,0,0.02,0.2,2)))
{
OrderModify(OrderTicket(),OrderOpenPrice(),iSAR(NULL,0,0.02,0.2,1),OrderTakeProfit(),0,Blue);
Print("Order # ",OrderTicket()," updated at ",Hour(),":",Minute(),":",Seconds());
return(0);
}
}
}
}
if (Buy_Mode==true && OpenBuyOrders==0)
{
if(OpenSellOrders > 0)
{
CloseShorts(MagicNumber);
OpenSellOrders = 0;
}
if(Показано первые 50% кода (символов: 8522)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.