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

Doske_Scalping_EA_ver1

doske_scalping_ea_ver1.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 общих тегов
Вы автор или правообладатель?

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

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

О программе

Данный товар представляет собой торгового советника (Expert Advisor) для платформы MetaTrader 4, написанный на языке MQL4. Советник предназначен для автоматического скальпинга на финансовых рынках и использует комбинацию нескольких технических индикаторов для формирования сигналов на открытие и закрытие позиций. В основе логики работы лежит анализ скользящих средних различных периодов и осцилляторов QQE для определения направления тренда и момента входа в сделку.

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

НастройкаОписание
EA_MAGIC_NUM Магический номер — Уникальный идентификатор ордеров советника для их последующей идентификации и управления
open day hour (iOpenHour) Час начала торговли — Час начала торгового окна в течение дня
HoursToTrade Длительность торгового окна — Количество часов, в течение которых советник активен в течение дня
Use275SMA Использовать фильтр 275 SMA — Включает или выключает дополнительную фильтрацию сигналов по 275-периодной простой скользящей средней
QQE5Buffer Буфер QQE 5 — Количество баров для подтверждения сигнала осциллятора QQE с периодом 5
QQE60Buffer Буфер QQE 60 — Количество баров для подтверждения сигнала осциллятора QQE с периодом 60
Slippage Допустимое проскальзывание — Максимально допустимое отклонение цены при открытии ордера в пунктах
TakeProfit Тейк-профит — Уровень фиксации прибыли в пунктах от цены входа; ноль отключает уровень
StopLoss Стоп-лосс — Уровень ограничения убытков в пунктах от цены входа; ноль отключает уровень
TrailingStop Трейлинг-стоп — Расстояние для трейлинг-стопа в пунктах
MoneyManagement Динамический расчёт лота — Включает автоматический расчёт размера лота на основе заданного процента риска
RiskPercent Риск в процентах — Процент от баланса, который советник готов рисковать на одну сделку
Lots Фиксированный лот — Размер лота для открытия сделки при отключённом динамическом расчёте
MaxLots Максимальный лот — Верхний предел размера лота при динамическом расчёте
MinLots Минимальный лот — Нижний предел размера лота при динамическом расчёте
Получить полный код

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

#include <stdlib.mqh>
#include <stderror.mqh>

#define ARRAY_SIZE    1000

extern int       EA_MAGIC_NUM = 113142;
extern int       iOpenHour = 6;  // open day hour 
extern int       HoursToTrade = 24;
extern bool      Use275SMA = true;
extern int       QQE5Buffer = 5;
extern int       QQE60Buffer = 5;

extern double    Slippage = 3.0;
extern int       TakeProfit = 0;
extern int       StopLoss = 0;
extern int       TrailingStop = 15;

extern bool      MoneyManagement = false;
extern double    RiskPercent = 1.0;
extern double    Lots = 0.1;
extern double    MaxLots = 15.0;
extern double    MinLots = 0.01;

string           msg = "";

int iCloseHour;
int DOSKE_MAGIC_NUM;

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

int deinit()
{

   return(0);
}

void WriteComment()
{
   msg = "";
   /*
   msg = msg + "GetGreenMA3Value: "+GetGreenMA3Value(0);
   msg = msg +" \nGetGreenMA5Value: "+GetGreenMA5Value(0);
   msg = msg + "\nGetGreenMA7Value: "+GetGreenMA7Value(0);
   msg = msg + "\nGetGreenMA9Value: "+GetGreenMA9Value(0);
   msg = msg +" \nGetGreenMA11Value: "+GetGreenMA11Value(0);
   msg = msg + "\nGetGreenMA13Value: "+GetGreenMA13Value(0);
   msg = msg + "\nGetPinkMA55Value: "+GetPinkMA55Value(0);
   msg = msg + "\nGetQQE5BlueLineValue: "+GetQQE5BlueLineValue(0);
   msg = msg + "\nGetQQE60BlueLineValue: "+GetQQE60BlueLineValue(0);
   msg = msg + "\nGetQQE60RedLineValue: "+GetQQE60RedLineValue(0);
   */

   Comment(msg);
}

double GetGreenMA3Value(int index)
{
   return (iMA(NULL, 0, 3, 0, MODE_EMA, PRICE_CLOSE, index));
}

double GetGreenMA5Value(int index)
{
   return (iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, index));
}

double GetGreenMA7Value(int index)
{
   return (iMA(NULL, 0, 7, 0, MODE_EMA, PRICE_CLOSE, index));
}

double GetGreenMA9Value(int index)
{
   return (iMA(NULL, 0, 9, 0, MODE_EMA, PRICE_CLOSE, index));
}

double GetGreenMA11Value(int index)
{
   return (iMA(NULL, 0, 11, 0, MODE_EMA, PRICE_CLOSE, index));
}

double GetGreenMA13Value(int index)
{
   return (iMA(NULL, 0, 13, 0, MODE_EMA, PRICE_CLOSE, index));
}

double GetPinkMA55Value(int index)
{
   return (iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, index));
}

double GetYellowMA275Value(int index)
{
   return (iMA(NULL, 0, 275, 0, MODE_SMA, PRICE_CLOSE, index));
}

double GetQQE5BlueLineValue(int index)
{
   return (iCustom(NULL,0,"QQE_Alert_MTF_v5",5,0," ",false,false,false,false,false,false,"","","","","","","","","","","","","","","",false,false,false,false,false,false,"",CLR_NONE,CLR_NONE,CLR_NONE,CLR_NONE,CLR_NONE,CLR_NONE,"",30,0,index));
}

double GetQQE60BlueLineValue(int index)
{
   return (iCustom(NULL,0,"QQE_Alert_MTF_v5",60,0," ",false,false,false,false,false,false,"","","","","","","","","","","","","","","",false,false,false,false,false,false,"",CLR_NONE,CLR_NONE,CLR_NONE,CLR_NONE,CLR_NONE,CLR_NONE,"",30,0,index));
}

double GetQQE60RedLineValue(int index)
{
   return (iCustom(NULL,0,"QQE_Alert_MTF_v5",60,0," ",false,false,false,false,false,false,"","","","","","","","","","","","","","","",false,false,false,false,false,false,"",CLR_NONE,CLR_NONE,CLR_NONE,CLR_NONE,CLR_NONE,CLR_NONE,"",30,1,index));
}

bool MAsSayBuy()
{
   if(GetGreenMA3Value(1)>GetPinkMA55Value(1) && GetGreenMA5Value(1)>GetPinkMA55Value(1) && GetGreenMA7Value(1)>GetPinkMA55Value(1) && GetGreenMA9Value(1)>GetPinkMA55Value(1) && GetGreenMA11Value(1)>GetPinkMA55Value(1) && GetGreenMA13Value(1)>GetPinkMA55Value(1))
   {
      if (Use275SMA)
      {
         if(GetGreenMA3Value(1)>GetYellowMA275Value(1) && GetGreenMA5Value(1)>GetYellowMA275Value(1) && GetGreenMA7Value(1)>GetYellowMA275Value(1) && GetGreenMA9Value(1)>GetYellowMA275Value(1) && GetGreenMA11Value(1)>GetYellowMA275Value(1) && GetGreenMA13Value(1)>GetYellowMA275Value(1))
         {
            return (true);
         }
      }
      else
      {
         return (true);
      }
   }
   return (false);
}

bool MAsSaySell()
{
   if(GetGreenMA3Value(1)<GetPinkMA55Value(1) && GetGreenMA5Value(1)<GetPinkMA55Value(1) && GetGreenMA7Value(1)<GetPinkMA55Value(1) && GetGreenMA9Value(1)<GetPinkMA55Value(1) && GetGreenMA11Value(1)<GetPinkMA55Value(1) && GetGreenMA13Value(1)<GetPinkMA55Value(1))
   {
      if (Use275SMA)
      {
         if(GetGreenMA3Value(1)<GetYellowMA275Value(1) && GetGreenMA5Value(1)<GetYellowMA275Value(1) && GetGreenMA7Value(1)<GetYellowMA275Value(1) && GetGreenMA9Value(1)<GetYellowMA275Value(1) && GetGreenMA11Value(1)<GetYellowMA275Value(1) && GetGreenMA13Value(1)<GetYellowMA275Value(1))
         {
            return (true);
         }
      }
      else
      {
         return (true);
      }
   }
   return (false);
}

bool QQE5SaysBuy()
{
   if(GetQQE5BlueLineValue(1)>50)
   {
      for (int i=2; i<=2+QQE5Buffer; i++)
      {
         if(GetQQE5BlueLineValue(i)<50)
         {
            return (true);
         }
      }
   }
   return (false);
}

bool QQE5SaysSell()
{
   if(GetQQE5BlueLineValue(1)<50)
   {
      for (int i=2; i<=2+QQE5Buffer; i++)
      {
         if(GetQQE5BlueLineValue(i)>50)
         {
            return (true);
         }
      }
   }
   return (false);
}

bool QQE60SaysBuy()
{
   if(GetQQE60BlueLineValue(1)>GetQQE60RedLineValue(1))
   {
      for (int i=2; i<=2+QQE60Buffer; i++)
      {
         if(GetQQE60BlueLineValue(i)<GetQQE60RedLineValue(i))
         {
            return (true);
         }
      }
   }
   return (false);
}

bool QQE60SaysSell()
{
   if(GetQQE60BlueLineValue(1)<GetQQE60RedLineValue(1))
   {
      for (int i=2; i<=2+QQE60Buffer; i++)
      {
         if(GetQQE60BlueLineValue(i)>GetQQE60RedLineValue(i))
         {
            return (true);
         }
      }
   }
   return (false);
}

bool ShouldBuy()
{
   if (MAsSayBuy() && QQE5SaysBuy() && QQE60SaysBuy())
   {
      return (true);
   }
   return (false);
}

bool ShouldSell()
{
   if (MAsSaySell() && QQE5SaysSell() && QQE60SaysSell())
   {
      return (true);
   }
   return (false);
}

double PositionSizeToOpen() // only works for JPY, CHF, CAD, GBP, NZD, AUD and USD secondary based pairs (apologies to exotic pairs traders)
{
   if (MoneyManagement && StopLoss != 0)
   {  
      double riskDollars = (AccountBalance()/100)*RiskPercent;
      double PositionSize;
      double USDCHFBid, USDJPYBid, USDCADBid, GBPUSDBid, AUDUSDBid, NZDUSDBid;

      if (StringSubstr(Symbol(), 3, 3)=="USD")
      {
         PositionSize = riskDollars / (StopLoss * Point) / 100000;
      }

      if (StringSubstr(Symbol(), 3, 3)=="CHF")
      {
         USDCHFBid = iClose("USDCHF",PERIOD_D1,1); // get yesterday's exchange rate between USD and CHF
         PositionSize = riskDollars / (StopLoss * Point * (1/USDCHFBid)) / 100000;
      }

      if (StringSubstr(Symbol(), 3, 3)=="JPY")
      {
         USDJPYBid = iClose("USDJPY",PERIOD_D1,1); // get yesterday's exchange rate between USD and JPY
         PositionSize = riskDollars / (StopLoss * Point * (1/USDJPYBid)) / 100000;
      }

      if (StringSubstr(Symbol(), 3, 3)=="CAD")
      {
         USDCADBid = iClose("USDCAD",PERIOD_D1,1); // get yesterday's exchange rate between USD and CAD
         PositionSize = riskDollars / (StopLoss * Point * (1/USDCADBid)) / 100000;
      }

      if (StringSubstr(Symbol(), 3, 3)=="GBP")
      {
         GBPUSDBid = iClose("GBPUSD",PERIOD

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

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

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

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

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

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

Стоимость полного кода
1 079,10₽ ≈ $13.19