ea_rsi_stocho_ma.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «ea_rsi_stocho_ma.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Советник для MetaTrader 4, работающий на валютном рынке. Использует три технических индикатора — RSI, стохастик и скользящую среднюю — для формирования торговых сигналов на покупку и продажу. Советник отслеживает открытые позиции и управляет ими с помощью стоп-лосса и трейлинг-стопа.
Открытие позиций происходит при совпадении условий по всем трём индикаторам: направление цены относительно MA, уровень RSI и положение стохастика. При достижении прибыльного уровня по стохастику позиция закрывается или трейлинг-стоп перемещается в прибыльную зону. Также предусмотрена возможность принудительного закрытия при достижении допустимого убытка.
Все торговые операции выполняются с проверкой допустимости торговли, контролем лота и многократными попытками исполнения ордеров при возникновении ошибок. Параметры настроек позволяют гибко управлять индикаторными уровнями, размером позиции, риск-менеджментом и идентификатором ордеров.
Настройки программы
| Настройка | Описание |
|---|---|
| RSi (nameInd1) | Название RSI — Текстовая метка для индикатора RSI в настройках. |
| RSi period (RSI_period) | Период RSI — Период расчёта индикатора RSI. |
| RSi applied price (RSI_applied_price) | Применяемая цена RSI — Тип цены, используемой для расчёта RSI. |
| level up - RSi (RSI_up_level) | Верхний уровень RSI — Верхний пороговый уровень RSI для сигнала. |
| level down - RSi (RSI_dn_level) | Нижний уровень RSI — Нижний пороговый уровень RSI для сигнала. |
| Stochastic (nameInd2) | Название Стохастик — Текстовая метка для индикатора Стохастик в настройках. |
| K period (STh_K_period) | Период K стохастика — Период линии %K индикатора Стохастик. |
| D period (STh_D_period) | Период D стохастика — Период линии %D индикатора Стохастик. |
| slowing (STh_slowing) | Замедление стохастика — Фактор замедления стохастика. |
| Stochastic method (STh_method) | Метод стохастика — Метод сглаживания линий стохастика. |
| 0 - Low/High; 1 - Close/Close (STh_price_field) | Поле цены стохастика — Выбор ценового поля для расчёта стохастика: Low/High или Close/Close. |
| level up - Stochastic (STh_up_level) | Верхний уровень стохастика — Верхний пороговый уровень стохастика для сигнала. |
| level down - Stochastic (STh_dn_level) | Нижний уровень стохастика — Нижний пороговый уровень стохастика для сигнала. |
| MA (nameInd3) | Название MA — Текстовая метка для индикатора скользящей средней в настройках. |
| MA period (MA_period) | Период MA — Период расчёта скользящей средней. |
| MA shift (MA_shift) | Сдвиг MA — Горизонтальный сдвиг скользящей средней по графику. |
| MA method (MA_method) | Метод MA — Тип скользящей средней для расчёта. |
| MA applied price (MA_applied_price) | Применяемая цена MA — Тип цены, используемой для расчёта скользящей средней. |
| Expert properties (EA_properties) | Свойства советника — Текстовая метка группы свойств эксперта в настройках. |
| Lot (Lot) | Лот — Размер торговой позиции в лотах. |
| allow Loss, 0 - close by Stocho (AllowLoss) | Допустимый убыток — Допустимый убыток в пунктах; при нуле убыток не контролируется. |
| Trailing Stop, 0 - close by Stocho (TrailingStop) | Трейлинг-стоп — Размер трейлинг-стопа в пунктах; при нуле трейлинг не используется. |
| Slippage (Slippage) | Слиппаж — Максимально допустимое отклонение цены исполнения в пунктах. |
| number of trade attempts (NumberOfTry) | Количество попыток — Количество повторных попыток выполнения торговой операции. |
| Magic Number (MagicNumber) | Магический номер — Идентификатор ордеров советника для фильтрации позиций. |
Поиск по коду файла
#property version "1.00"
#property strict
extern string nameInd1 = "___________RSI__________"; // RSi
extern int RSI_period = 3; // RSi period
extern ENUM_APPLIED_PRICE RSI_applied_price = PRICE_CLOSE; // RSi applied price
extern int RSI_up_level = 80; // level up - RSi
extern int RSI_dn_level = 20; // level down - RSi
extern string nameInd2 = "________Stochastic______"; // Stochastic
extern int STh_K_period = 6; // K period
extern int STh_D_period = 3; // D period
extern int STh_slowing = 3; // slowing
extern ENUM_MA_METHOD STh_method = MODE_SMA; // Stochastic method
extern int STh_price_field = 0; // 0 - Low/High; 1 - Close/Close
extern int STh_up_level = 70; // level up - Stochastic
extern int STh_dn_level = 30; // level down - Stochastic
extern string nameInd3 = "___________MA___________"; // MA
extern int MA_period = 150; // MA period
extern int MA_shift = 0; // MA shift
extern ENUM_MA_METHOD MA_method = MODE_SMA; // MA method
extern ENUM_APPLIED_PRICE MA_applied_price = PRICE_CLOSE; // MA applied price
extern string EA_properties = "_________Expert_________"; // Expert properties
extern double Lot = 0.01; // Lot
extern int AllowLoss = 300; // allow Loss, 0 - close by Stocho
extern int TrailingStop = 300; // Trailing Stop, 0 - close by Stocho
extern int Slippage = 30; // Slippage
extern int NumberOfTry = 5; // number of trade attempts
extern int MagicNumber = 5577555; // Magic Number
string NameEA="Expert_RSI_Stochastic_MA";
string Symb;
datetime candleTime=0;
string txt="";
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason) { Comment(""); }
void OnTick()
{
// код доступен только после оплаты
}
if(!IsTradeAllowed())
{
string _txt_new="You must allow trading!";
if(txt!=_txt_new) { txt=_txt_new; Print(txt); Comment(txt);}
return;
}
double _ma = iMA (Symb, 0, MA_period, MA_shift, MA_method, MA_applied_price, 0);
double _rsi = iRSI (Symb, 0, RSI_period, RSI_applied_price, 0);
double _STh_0_0 = iStochastic(Symb, 0, STh_K_period, STh_D_period, STh_slowing, STh_method, STh_price_field, 0, 0);
double _STh_1_0 = iStochastic(Symb, 0, STh_K_period, STh_D_period, STh_slowing, STh_method, STh_price_field, 1, 0);
string _dn_up="DOWN price"; if(Bid>_ma) _dn_up="UP price";
txt="\n"+NameEA+"\nMA = "+double_to_str(_ma,Digits)+" ---> "+_dn_up
+"\nRSI ("+(string)RSI_dn_level+"/"+(string)RSI_up_level+") = "+double_to_str(_rsi)
+"\nStochastic ("+(string)STh_dn_level+"/"+(string)STh_up_level+") = "+double_to_str(_STh_0_0)+" _ "+double_to_str(_STh_1_0);
Comment(txt);
double _openPriceBuy = OpenPrice(0);
double _openPriceSell = OpenPrice(1);
if(_openPriceBuy!=0 && _openPriceBuy>Bid)
{
if(AllowLoss==0)
{
if(_STh_0_0>STh_up_level) { CloseOpenPos(0); return;} // negative result - close
} else {
if(_openPriceBuy-Bid>=AllowLoss*Point && _STh_0_0>STh_dn_level)
{ // close by allow loss
CloseOpenPos(0);
return;
}
}
}
if(_openPriceSell!=0 && _openPriceSell<Ask)
{
if(AllowLoss==0)
{
if(_STh_0_0<STh_dn_level) { CloseOpenPos(1); return;} // negative result - close
} else {
if(Ask-_openPriceSell>=AllowLoss*Point && _STh_0_0<STh_up_level)
{ // close by allow loss
CloseOpenPos(1);
return;
}
}
}
if(_openPriceBuy!=0 && _STh_0_0>STh_up_level && _openPriceBuy<=Bid)
{
if(TrailingStop>0)
{
if(candleTime!=Time[0])
{
Modify_SL_trail(0,TrailingStop);
candleTime=Time[0];
}
}
else CloseOpenPos(0); // close
}
Показано первые 50% кода (символов: 7568)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.