ma-rsi-ea.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «ma-rsi-ea.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Он использует два технических индикатора — скользящую среднюю (MA) и индекс относительной силы (RSI) — для принятия решений об открытии сделок. На каждом новом свечном баре советник проверяет, достиг ли RSI уровней перекупленности или перепроданности, и сравнивает текущую цену с значением скользящей средней, после чего открывает позицию BUY или SELL.
Советник также отслеживает совокупный прибыль/убыток по открытым позициям и при положительном результате закрывает все ордера. Размер лота может задаваться фиксированным значением или как процент от баланса/эквити. На графике отображаются метки с информацией о текущем прибыль/убытке, эквити и балансе.
В качестве идентификатора ордеров используется магический номер. Торговые операции выполняются через стандартные функции MetaTrader 4. Советник обрабатывает событие OnTick и корректно освобождает созданные графические объекты при деинициализации.
Настройки программы
| Настройка | Описание |
|---|---|
| Lot Value Mode (LotOption) | Режим размера лота — Режим определения размера лота: фиксированный, процент от эквити или процент от баланса |
| Fixed Lot (LotSize) | Фиксированный лот — Фиксированный размер лота при соответствующем режиме |
| Percentage of Balance (PercentOfBalance) | Процент баланса — Процент баланса для расчёта размера лота при соответствующем режиме |
| Percentage of Equity (PercentOfEquity) | Процент эквити — Процент эквити для расчёта размера лота при соответствующем режиме |
| MA Period (FastMAperiod) | Период MA — Период расчёта скользящей средней |
| MA Shift (FastMAshift) | Сдвиг MA — Сдвиг скользящей средней в барах |
| MA Method (FastMAmethod) | Метод MA — Метод расчёта скользящей средней (например, линейно-взвешенная, простая и т.д.) |
| MA Price (FastMAprice) | Цена MA — Тип цены, используемой для расчёта скользящей средней |
| RSIperiod | Период RSI — Период расчёта индекса относительной силы |
| RSIprice | Цена RSI — Тип цены, используемой для расчёта RSI |
| RSIoverbought | RSI перекупленности — Пороговое значение RSI, при превышении которого рассматривается сигнал на продажу |
| RSIoversold | RSI перепроданности — Пороговое значение RSI, при снижении до которого рассматривается сигнал на покупку |
| Magic | Магический номер — Магический номер для идентификации ордеров советником |
Поиск по коду файла
#property version "1.00"
#property strict
enum OptLot{Fixed=0,/*Fixed Lot*/Equity=1,/*% Equity*/Balance=2/*% Balance*/};
input OptLot LotOption = Fixed; //Lot Value Mode
input double LotSize = 0.01; //*Fixed Lot
input double PercentOfBalance = 0.02; //*Percentage of Balance
input double PercentOfEquity = 0.03; //*Percentage of Equity
input int FastMAperiod = 4; //MA Period
input int FastMAshift = 0; //MA Shift
input ENUM_MA_METHOD FastMAmethod = MODE_LWMA; //MA Method
input ENUM_APPLIED_PRICE FastMAprice = PRICE_OPEN; //MA Price
input int RSIperiod = 4;
input ENUM_APPLIED_PRICE RSIprice = PRICE_OPEN;
input int RSIoverbought = 80;
input int RSIoversold = 20;
input int Magic=1;
int intSellsOpen,intBuysOpen; double CumulativePL;
double dRSI(){return(iRSI(NULL,0,RSIperiod,RSIprice,0));}
double dMA(){return(iMA(NULL,0,FastMAperiod,0,FastMAmethod,FastMAprice,0));}
bool newCandle(){ static datetime nCandle; if(nCandle==Time[0]) return(False); nCandle=Time[0]; return(True); }
void LABEL(string sName,string sText,string sFont,int iFontSize,color cFontColor,int iCorner,int iX,int iY)
{
if(ObjectFind(sName)==-1){ ObjectCreate(sName,OBJ_LABEL,0,0,0); }
else{ if(!IsTesting()){ ObjectDelete(sName);ObjectCreate(sName,OBJ_LABEL,0,0,0); } }
ObjectSetText(sName,sText,iFontSize,sFont,cFontColor);
ObjectSet(sName,OBJPROP_CORNER,iCorner);
ObjectSet(sName,OBJPROP_XDISTANCE,iX);
ObjectSet(sName,OBJPROP_YDISTANCE,iY);
}
int OnInit(){
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
HideTestIndicators(true);
ObjectDelete("LABEL1");
ObjectDelete("Показано первые 50% кода (символов: 3092)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.