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

liquidex full.mq4

Вы автор или правообладатель?

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

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

О программе

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

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

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

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

НастройкаОписание
DispEquityProtection Отображение защиты equity — Текстовый заголовок для параметра защиты equity
EquityProtection Защита equity — Включает защиту equity: при достижении заданного процента от баланса торговля приостанавливается
AverageEquityProtection Средняя защита equity — Текстовый заголовок для параметра средней защиты equity
UseMM Использовать управление рисками — Включает автоматический расчёт размера лотов по проценту от свободного маржи; при выключении используется фиксированный размер лотов
Lots Размер лотов — Фиксированный размер лотов (используется при отключённом автоматическом расчёте)
MinLots Минимум лотов — Минимально допустимый размер лотов
MaxLots Максимум лотов — Максимально допустимый размер лотов
Risk Риск — Процент риска от свободного маржи для автоматического расчёта размера лотов
BarAndMA_Mode Режим свеча и MA — Режим проверки расположения свечи относительно скользящей средней (0 — не использовать, 1–3 — различные варианты сравнения)
RangeFilter Фильтр диапазона — Минимальный размер тела свечи в пунктах для генерации торгового сигнала
StopLoss Стоп-лосс — Стоп-лосс в пунктах; 0 — без стоп-лосса
TakeProfit Тейк-профит — Тейк-профит в пунктах; 0 — без тейк-профита
MoveToBE Перемещение в безубыток — Уровень прибыли в пунктах для перемещения стоп-лосса в безубыток; 0 — без перемещения
MoveToBE_Offset Смещение безубытка — Отступ нового уровня стоп-лосса от цены открытия ордера в пунктах
TrailingLimit Лимит трейлинга — Расстояние в пунктах для модификации отложенных ордеров
TrailingDistance Дистанция трейлинг-стопа — Расстояние трейлинг-стопа в пунктах; 0 — без трейлинг-стопа
MAPeriod Период MA — Период скользящей средней
MAShift Сдвиг MA — Сдвиг скользящей средней по времени
MAMethod Метод MA — Метод расчёта скользящей средней (0–3)
MaxSpreadWithCommission Макс. спред с комиссией — Максимально допустимый реальный спред с учётом комиссии в пунктах
DefaultCommisionPoints Комиссия по умолчанию — Стандартная комиссия в пунктах
RangeFilterNote Примечание фильтра диапазона — Примечание с пояснением значений фильтра диапазона
MAMethodNote Примечание метода MA — Примечание с пояснением методов скользящей средней
Slippage Проскальзывание — Максимальное допустимое проскальзывание цены при открытии и закрытии ордеров в пунктах
MagicNumber Магический номер — Магический номер для идентификации ордеров советника
TradeComment Комментарий сделки — Комментарий, добавляемый к каждому ордеру
ColorBuy Цель покупки — Цвет стрелок для ордеров на покупку
ColorSell Цель продажи — Цвет стрелок для ордеров на продажу
ShowComment Показать комментарий — Включает или отключает отображение комментария на графике
WriteDebugLog Запись отладочного лога — Включает или отключает запись отладочной информации в лог
___Keltner_Channel____ Разделитель канала Кельтнера — Разделитель группы параметров канала Кельтнера
UseFilterKeltnerChannel Фильтр канала Кельтнера — Включает использование индикатора «Каналы Кельтнера» в качестве дополнительного фильтра
KC_Period Период KC — Период индикатора «Каналы Кельтнера»
partInRange Диапазон времени — Описание диапазона торгового времени
EntryHourFrom Час входа с — Начальный час для входа в торговлю
EntryHourTo Час входа до — Конечный час для входа в торговлю
FridayEndHour Конец в пятницу — Час окончания торгов в пятницу
part_iVAR Описание iVAR — Описание фильтра iVAR для подавления ложных входов
TimeFrameiVAR Таймфрейм iVAR — Таймфрейм для индикатора iVAR
periods Периоды — Период расчёта iVAR
a1 Параметр a1 — Параметр iVAR — верхняя граница
a2 Параметр a2 — Параметр iVAR — нижняя граница
a3 Параметр a3 — Параметр iVAR — верхний порог
a4 Параметр a4 — Параметр iVAR — нижний порог
TicksPeriod Период тиков — Период анализа тикового потока
Length Длина — Период оценки средних значений быков и медведей
MA_Mode Режим MA — Режим скользящей средней (0 — SMA, 1 — EMA, 2 — SMMA, 3 — LWMA)
NumTicks Количество тиков — Таймфрейм в тиках (0 — если используется NumSecs)
NumSecs Секунды — Таймфрейм в секундах (0 — если используется NumTicks)
DispMaxBars Отображение макс. баров — Текстовый заголовок для параметра максимального количества баров
MaxBars Макс. бары — Максимальное количество баров для анализа
UseRSI Использовать RSI — Включает или отключает дополнительную фильтрацию по RSI
Получить полный код

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

#define Account_Number                  ******     // write here the number of account; 0 = does not check the number of account
#define IndicatorFileName_KC            "Keltner Channels"

extern string    DispEquityProtection         = "if true, then the expert will protect the account equity to the percent specified";
extern bool      EquityProtection            = true;          // if true, then the expert will protect the account equity to the percent specified
extern string    AverageEquityProtection      ="percent of the account to protect on a set of trades";
extern int       AccountEquityPercentProtection= 75; // percent of the account to protect on a set of trades

extern bool   UseMM                           = true;   // enable/disable auto-calculation for size of lots: false = constant size of lots (value of parameter "Lots"); true = calculate size of lots by percent from FreeMargin (parameter "Risk")
extern double Lots                            = 0.01;   // size of lots (used if UseMM = false)
extern double MinLots                         = 0.01;
extern double MaxLots                         = 100000.0;
extern double Risk                            = 3.0;
extern int    BarAndMA_Mode                   = 0; //2;      // (0-3) mode for rule "bullish(bearish) bar should be above(below) MA": 0 = does not use this rule; 1 = Close of bar should be above(below) MA; 2 = body of bar should be above(below) MA; 3 = Low(High) of bar should be above(below) MA
extern int    RangeFilter                     = 10;      // (amount pips) minimum body of candle for trading signal
extern double StopLoss                        = 0;     // (amount pips) stop-loss; 0 = without stop-loss
extern double TakeProfit                      = 10;      // (amount pips) take profit; 0 = without take profit
extern double MoveToBE                        = 5;     // (amount pips) profit when move the stop-loss level to opening price; 0 = without move to BE (option is disabled)
extern double MoveToBE_Offset                 = 2;      // (amount pips) offset of the new level stop-loss from the opening price of order, positive_value = offset to side of profit, negative_value = offset to side of loss
extern int    TrailingLimit                   = 3;      // (amount pips) distance to pending order
extern int    TrailingDistance                = 1;      // (amount pips) trailing stop; 0 = without trailing-stop
extern int    MAPeriod                        = 7;
extern int    MAShift                         = 0;
extern int    MAMethod                        = MODE_LWMA; // (0-3)
extern double MaxSpreadWithCommission         = 20.0;   // (amount pips)
extern double DefaultCommisionPoints          = 0;      // (amount pips)
extern string RangeFilterNote                 = "H-S 0-0: 250 0-1: 300 1-0: 80 1-1: 250";
extern string MAMethodNote                    = "SMA: 0 EMA: 1 SMMA: 2 LWMA 3";
extern int    Slippage                        = 3;      // (amount pips) maximum price slippage at open and close orders
extern int    MagicNumber                     = 41403;
extern string TradeComment                    = "Liquidex_MKH-M15";
extern color  ColorBuy                        = clrLime;   // color arrows of Buy-orders
extern color  ColorSell                       = clrOrange; // color arrows of Sell-orders
extern bool   ShowComment                     = true;   // enable/disable show comment on chart
extern bool   WriteDebugLog                   = false;  // enable/disable write to log the debug information
extern string ___Keltner_Channel____          = "---------------------------------------------";
extern bool   UseFilterKeltnerChannel         = false;   // true = use indicator "Keltner Channels"; false = does not use indicator "Keltner Channels"
extern int    KC_Period                       = 6; //12;     // parameter for indicator "Keltner Channels"

extern string partInRange = "sur EURJPY par de trades entre 23h et 2 heures du mat";
extern int     EntryHourFrom = 2;          
extern int     EntryHourTo   = 24;        
extern int     FridayEndHour = 22;        

extern string part_iVAR = " Ivar to remove false entries periods = 5 by default ";
extern int TimeFrameiVAR = 1;
extern int    periods = 5;
extern double a1    = 0.01;
extern double a2    = 0.01;
extern double a3    = 0.55;
extern double a4    = 0.54;

extern int     TicksPeriod =    33;
extern int     Length      =    33; //14; //Period of evaluation for AVG Bears and Bulls by default 14
extern int     MA_Mode     =     3; //2; //MA Mode: 0-SMA,1-EMA,2-Wilder(SMMA),3-LWMA
extern int     NumTicks    =     0; //TimeFrame in ticks (=0 if NumSecs  > 0)
extern int     NumSecs     =    70; // 0; //20; //TimeFrame in secs  (=0 if NumTicks > 0)
extern string  DispMaxBars =  " MaxBars is matrix 'size, correlated to volatility check out";

extern int     MaxBars     =    350 ;// 150; //Max Number of Bars
int maxsize                =  1200; // 1200 *0.2 (minimal time) gives a Time frame 4MN

double Ticks[];
double Bulls[];
double Bears[];
double AvgBulls[];
double AvgBears[];
double tRSI;

extern bool    UseRSI      =  false;
int  RSIdirection          = 0;

double   Hi;
double   Lo;
double   tOpen;
double   tClose;
int      tickCounter=0, barCounter, pSecs;
datetime pTime;
string   short_name, t;

int LastTm;
double max =  -1000000.0;
double min =   1000000.0;

double stoplevel, freezelevel;
string message;

int    slippage;
int    digits;
double point;
int    my_digits;
double my_point;
int    pips_digits;
int    lots_digits;
double minlots;
double maxlots;
string symbol;
double risk;
double maxSpreadWithCommission;
double trailingLimit;
double trailingDistance;
double rangeFilter;
bool   gotCommissionPointsFromTrade;
double commissionPoints;
double spreadHistory[30];
int    spreadHistoryCount = 0;
string objname_hline;
bool   is_testing;
double main_sl;
double main_tp;
double main_be_profit;
double main_be_offset;
static int      account_number;
static bool     is_ok;

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

bool InRange()
{
       bool Result=false;
       if((EntryHourFrom<=EntryHourTo && Hour()>=EntryHourFrom && Hour()<=EntryHourTo) ||
          (EntryHourFrom>EntryHourTo && (Hour()>=EntryHourFrom || Hour()<=EntryHourTo)))
          Result=true;
       return(Result);
}

bool IsSafetyForTrade()
{
         bool Result=false;

       if(DayOfWeek()!=5 || FridayEndHour<0 || DayOfWeek()!= 0 ||
         (DayOfWeek()==5 && EntryHourFrom<=EntryHourTo && Hour()<FridayEndHour) ||
         (DayOfWeek()==5 && EntryHourFrom>EntryHourTo && FridayEndHour>=EntryHourFrom && Hour()<FridayEndHour) ||
         (DayOfWeek()==5 && EntryHourFrom>EntryHourTo && FridayEndHour<EntryHourFrom && Hour()<FridayEndHour) ||
         (DayOfWeek()==5 && EntryHourFrom>EntryHourTo && FridayEndHour<EntryHourFrom && Hour()>=FridayEndHour && Hour()>=EntryHourFrom))
         Result=true;
       return(Result);
}

bool iVAR()
{
       bool Result=false;
       double iVAR_1=iCustom(symbol,TimeFrameiVAR,"iVAR_nmc",periods,0,1);
       double iVAR_2=iCustom(symbol,TimeFrameiVAR,"iVAR_nmc",periods,0,2);
             if(iVAR_2>a1 && iVAR_1>a2 && iVAR_2<a3  && iVAR_1<a4)
          Result=true;
       return(Result);
}

bool isNewBar()
{
   bool res=false;
   if (Time[0]!=pTime)
   {
   res=true;
   pTime=Time[0];
   }  

   return(res);
}

void OnDeinit(const int reason)
  {
   if(ShowComment) Comment("");
   return;
  }

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

void PrintLineLine(string text)
  {
   int start_pos;
   int position = -1;
   while(position < StringLen(text))
     {
      start_pos = position + 1;
      position = StringFind(text,"\n",start_pos);
      if(position == -1)
        {
         Print(StringSubstr(text,start_pos));
         return;
        }
      Print(StringSub

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

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

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

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

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

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

Стоимость полного кода
4 338,80₽ ≈ $53.03