← К каталогу
Исходный код · ID 687

trendtrading_ea_v1.1.mq4

Похожие материалы по тегам

#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 1 общих теговsma crossover scalper ea for mt4.mq4MQL4 / MetaTrader 4 · 1 общих теговr15 pivot points expert advisor by @fundedmillionairess.mq4MQL4 / MetaTrader 4 · 1 общих теговnewstrader.mq5MQL5 / MetaTrader 5 · 1 общих теговmm3.0_flip_codepro_v3.1_with_cooldown@lifeindreamsworld.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Данный продукт представляет собой торгового советника для платформы MetaTrader 4, написанный на языке MQL4. Советник анализирует ценовые данные с использованием нескольких скользящих средних, осциллятора Awesome, параболического SAR и индикатора ADX с линиями Plus/Minus DI.

Советник формирует сигналы на открытие и закрытие позиций на основе комбинированных условий указанных индикаторов. Для управления рисками предусмотрены стоп-лосс, тейк-профит и трейлинг-стоп, а также проверка свободного маржинального баланса перед открытием сделки.

Реализован режим обработки каждого тика или завершённого бара, что позволяет гибко настраивать частоту проверки условий. При наступлении торговых событий советник способен отправлять уведомления по электронной почте. Все ордера идентифицируются с помощью магического числа.

Настройки программы

НастройкаОписание
SignalMail Уведомления по email — Переключатель, включающий или отключающий отправку email-уведомлений при открытии и закрытии позиций.
Choose_EachTickMode Режим обработки тиков — Текстовый параметр, задающий режим обработки: режим обработки каждого тика или режим обработки завершённого бара.
EachTickMode Обработка каждого тика — Переключатель, определяющий, обрабатываются ли сигналы при каждом новом тике или только при формировании нового бара.
Lots Объём сделки — Объём торговой позиции в лотах.
Slippage Проскальзывание — Допустимое проскальзывание цены при исполнении ордеров, в пунктах.
UseStopLoss Использовать стоп-лосс — Переключатель, включающий или отключающий использование стоп-лосса.
StopLoss Стоп-лосс — Расстояние до уровня стоп-лосса от цены открытия, в пунктах.
UseTakeProfit Использовать тейк-профит — Переключатель, включающий или отключающий использование тейк-профита.
TakeProfit Тейк-профит — Расстояние до уровня тейк-профита от цены открытия, в пунктах.
UseTrailingStop Использовать трейлинг-стоп — Переключатель, включающий или отключающий использование трейлинг-стопа.
TrailingStop Трейлинг-стоп — Расстояние трейлинг-стопа от текущей цены, в пунктах.
MagicNumber Магическое число — Числовой идентификатор, присваиваемый ордерам для их распознавания и фильзации.
Получить полный код

Поиск по коду файла

#define SIGNAL_NONE 0
#define SIGNAL_BUY   1
#define SIGNAL_SELL  2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4

extern bool SignalMail           = False;
extern string Choose_EachTickMode= "True=Each Tick, False=Complete Bar";
extern bool EachTickMode         = True;
extern double Lots               = 0.1;
extern int Slippage              = 3;
extern bool UseStopLoss          = False;
extern int StopLoss              = 200;
extern bool UseTakeProfit        = False;
extern int TakeProfit            = 200;
extern bool UseTrailingStop      = False;
extern int TrailingStop          = 100;
extern int MagicNumber           = 26784599;

int BarCount;
int Current;
bool TickCheck = False;

int init() {
      // код доступен только после оплаты
   }

int deinit() {
   return(0);
}

int start() {
      // код доступен только после оплаты
   }
   int Order = SIGNAL_NONE;
   int Total, Ticket;
   double StopLossLevel, TakeProfitLevel;

   if (EachTickMode && Bars != BarCount) TickCheck = False;
   Total = OrdersTotal();
   Order = SIGNAL_NONE;

double MA0_0         = iMA(NULL, 0, 10, 0, MODE_SMA, PRICE_CLOSE, Current + 0);  
double MA0_1         = iMA(NULL, 0, 10, 0, MODE_SMA, PRICE_CLOSE, Current + 1); 

double MA1_0         = iMA(NULL, 0, 30, 0, MODE_SMA, PRICE_CLOSE, Current + 0);  
double MA1_1         = iMA(NULL, 0, 30, 0, MODE_SMA, PRICE_CLOSE, Current + 1); 
double MA1_5         = iMA(NULL, 0, 30, 0, MODE_SMA, PRICE_CLOSE, Current + 5);
double MA1_6         = iMA(NULL, 0, 30, 0, MODE_SMA, PRICE_CLOSE, Current + 6);

double MA2_0         = iMA(NULL, 0, 50, 0, MODE_SMA, PRICE_CLOSE, Current + 0);  
double MA2_1         = iMA(NULL, 0, 50, 0, MODE_SMA, PRICE_CLOSE, Current + 1);
double MA2_2         = iMA(NULL, 0, 50, 0, MODE_SMA, PRICE_CLOSE, Current + 2); 

double MA3_0         = iMA(NULL, 0, 100, 0, MODE_SMA, PRICE_CLOSE, Current + 0);  

double AO_0          = iAO(NULL, 0, Current + 0);
double AO_1          = iAO(NULL, 0, Current + 1);

double SAR_0         =iSAR(NULL, 0, 0.01, 0.1, Current + 0);
double SAR_1         =iSAR(NULL, 0, 0.01, 0.1, Current + 1);

double ADX_Plus_DI_0 =iADX(NULL, 0, 14, PRICE_CLOSE, MODE_PLUSDI, Current + 0);
double ADX_Minus_DI_0=iADX(NULL, 0, 14, PRICE_CLOSE, MODE_MINUSDI, Current + 0);
double ADX_Plus_DI_1 =iADX(NULL, 0, 14, PRICE_CLOSE, MODE_PLUSDI, Current + 1);
double ADX_Minus_DI_1=iADX(NULL, 0, 14, PRICE_CLOSE, MODE_MINUSDI, Current + 1);

double MA_Buy        = MA1_0 > MA2_0 && MA2_0 > MA3_0 && MA1_0 > MA1_5 && MA1_1 > MA1_6 && MA2_0 > MA2_1 && MA2_1 > MA2_2 && Close[0] > MA3_0 && Close[0] > MA2_0 && MA0_0 > MA1_0 && MA0_1 > MA1_1 && SAR_0 > MA3_0;

double AO_Buy        = AO_0 > 0.0 && AO_1 > 0.0;
double SAR_Buy       = SAR_0 < Low[0] && SAR_1 < Low[1];
double ADX_Buy       = ADX_Plus_DI_0 > ADX_Minus_DI_0 && ADX_Plus_DI_1 > ADX_Minus_DI_1;

double MA_Sell       = MA1_0 < MA2_0 && MA2_0 < MA3_0 && MA1_0 < MA1_5 && MA1_1 < MA1_6 && MA2_0 < MA2_1 && MA2_1 < MA2_2 && Close[0] < MA3_0 && Close[0] < MA2_0 && MA0_0 < MA1_0 && MA0_1 < MA1_1 && SAR_0 < MA3_0;

double AO_Sell       = AO_0 < 0.0 && AO_1 < 0.0;
double SAR_Sell      = SAR_0 > High[0] && SAR_1 > High[1];
double ADX_Sell      = ADX_Plus_DI_0 < ADX_Minus_DI_0 && ADX_Plus_DI_1 < ADX_Minus_DI_1;

   bool IsTrade = False;

   for (int i = 0; i < Total; i ++) {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if(OrderType() <= OP_SELL &&  OrderSymbol() == Symbol()) {
         IsTrade = True;
         if(OrderType() == OP_BUY) {

                     if (MA1_0 < MA2_0 || MA0_0 < MA2_0 || Bid < MA3_0) Order = SIGNAL_CLOSEBUY;

            if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
               OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
               if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
               if (!EachTickMode) BarCount = Bars;
               IsTrade = False;
               continue;
            }

  

Показано первые 50% кода (символов: 5672)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
567,20₽ ≈ $6.93