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

Ilan_VS_TrendTrading_Trail

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

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

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

О программе

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

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

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

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

НастройкаОписание
??????????? ?????????? ???????? (PipStepExponent) Экспонента шага — Экспонента для расчёта шага между последовательными позициями.
?????????????? ???????? PipStep (DefaultPips) Базовый шаг (пункты) — Базовое значение шага в пунктах между последовательными позициями.
???????????? ???????? PipStep (MaxPips) Максимальный шаг (пункты) — Максимальное значение шага в пунктах между позициями.
?????? ???? ??? ?????? ?????? (Lots) Размер лота — Фиксированный размер лота для открытия позиции.
??????? ?????? ????? ??????? ? ???? ???????????? 0 - ?????????? ???? (1), 1 - ???????? (0.1), 2 - ?? (lotdecimal) Точность лота — Точность отображения размера лота: 0 — целые числа, 1 — десятые (0.1), 2 — сотые (0.01).
???? ????? ????? (Trail_TimeFrame) Таймфрейм трейлинга — Таймфрейм для расчёта уровня трейлинг-стопа.
???? ????? ?? (MA_TimeFrame) Таймфрейм скользящей — Таймфрейм для расчёта скользящей средней.
?????? ?? (MA_Period) Период скользящей — Период расчёта скользящей средней.
?? ??????? ?????? ?????????? ?? ?? ???????? ?????, ????? ?????? ???????? (MA_Delta) Дельта скользящей — Пороговое значение разницы между текущим и предыдущим значением скользящей средней для формирования торгового сигнала.
??????? ?? ?????? CCI ?? ???????, ???? ??????? ????????, ?? ????? ?? ????? ??????????? (CCIlevel) Уровень CCI — Уровень индикатора CCI для определения условий входа в позицию.
????????? ????? (???????? ????????? ???????? ???? ?????? ?? ?????) (MagicNumber) Магический номер — Идентификатор ордеров, принадлежащих данному советнику.
??????????? ?????????? ???????????? ???????? ??????? (MaxTrades) Максимум позиций — Максимальное количество одновременных позиций, управляемых советником.
MM Управление рисками — Включает или отключает автоматический расчёт размера лота на основе процента от баланса.
?? 0.01 - ???. (risk) Риск (% от баланса) — Процент от баланса, используемый для расчёта размера лота при включённом управлении рисками.
?????? ????????????????, ?? ?????? 1000 ???? ????? ????????? ??? ?? ???? (balans) Базовый баланс — Базовая сумма баланса, используемая при расчёте размера лота.
????????? ?????? ????? ??????? (ManualFirstOrder) Ручной первый вход — Определяет, требуется ли ручной контроль при открытии первой позиции.
debug Отладка — Включает режим отладки с выводом диагностических сообщений в лог.
Получить полный код

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

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

double Stoploss = 500.0;            // ??????? ?????????
double TrailStart = 10.0;
double TrailStop = 10.0;

string w1 = "??? Exponent 0-??????????/1-??????????/2-?????????";
int    TypeLotExponent = 0;  //??? ??????????:

double LotExponent = 1.4;              // ?? ??????? ???????? ??? ??? ??????????? ?????????? ??????. ??????: ?????? ??? 0.1, ?????: 0.16, 0.26, 0.43 ...
extern double  PipStepExponent = 1;     //??????????? ?????????? ????????
extern int     DefaultPips     = 50;    //?????????????? ???????? PipStep
extern int     MaxPips         = 100;   //???????????? ???????? PipStep
double         slip            = 4.0;   // ?? ??????? ????? ?????????? ???? ? ?????? ???? ?? ???????? ??????? (? ????????? ?????? ??????? ???????? ????)
extern double  Lots            = 0.1;   // ?????? ???? ??? ?????? ??????
extern int     lotdecimal      = 2;     // ??????? ?????? ????? ??????? ? ???? ???????????? 0 - ?????????? ???? (1), 1 - ???????? (0.1), 2 - ????? (0.01)
extern int     Trail_TimeFrame    = 3;     // ???? ????? ?????

extern int     MA_TimeFrame    = 7;     // ???? ????? ??

extern int     MA_Period       = 6;     // ?????? ??
extern int     MA_Delta        = 3;     // ?? ??????? ?????? ?????????? ?? ?? ???????? ?????, ????? ?????? ????????
extern int     CCIlevel = 160;          // ??????? ?? ?????? CCI ?? ???????, ???? ??????? ????????, ?? ????? ?? ????? ???????????
extern int     MagicNumber = 2222;      // ????????? ????? (???????? ????????? ???????? ???? ?????? ?? ?????)
int PipStep=0;

extern int MaxTrades = 10;                 // ??????????? ?????????? ???????????? ???????? ???????

extern bool    MM             = false;
extern double  risk           = 1;    // ?? 0.01 - ???.
extern int     balans         = 1000; // ?????? ????????????????, ?? ?????? 1000 ???? ????? ????????? ??? ?? ????

extern bool ManualFirstOrder = false;      // ????????? ?????? ????? ???????
extern bool debug = false; 

double  TakeProfit;
double AveragePrice,buf;
double LastBuyPrice, LastSellPrice, Spread, LastTP;
string EAName="Ilan_VS_TrendTrading_Trail";
int timeprev = 0;
int NumOfTrades = 0;
double iLots;
int cnt = 0, total, prev_total, i1, ma_tf, trail_tf;
bool LongTrade = FALSE, ShortTrade = FALSE;
int ticket, Error;
double Exponent, TP_Shift, LastTP_Lot, LastTP_Price_shift, TrailPrice;

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

int deinit() 
{
   return (0);
}

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

int CountOfOrders()
{
  int count = 0;
  for (int i = 0; i < OrdersTotal(); i++) 
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      if ((OrderSymbol() == Symbol()) && (OrderMagicNumber() == MagicNumber)) 
        if ((OrderType() == OP_SELL) || (OrderType() == OP_BUY)) 
          count++;
  return(count);
}

int SendMarketOrder(int Type, double Lots, int TP, int SL, int Magic, string Cmnt, int& Error)
{
  double Price, Take, Stop;
  int Ticket, Slippage, Color, Err; 
  bool Delay = False;
  if (debug) Print("??????? SendMarketOrder");
  while(!IsStopped())
  {
    if(!IsExpertEnabled())
    {
      Error = ERR_TRADE_DISABLED;
      Print("???????? ????????? ?????????! ?????? \"????????\" ??????.");
      return(-1);
    }
    if (debug) Print("???????? ????????? ?????????");
    if(!IsConnected())
    {
      Error = ERR_NO_CONNECTION;
      Print("????? ???????????!");
      return(-1);
    }
    Print("????? ? ???????? ???????????");
    if(IsTradeContextBusy())
    {
      Print("???????? ????? ?????!");
      Print("??????? 3 ???...");
      Sleep(3000);
      Delay =

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

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

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

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

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

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

Стоимость полного кода
1 238,80₽ ≈ $15.14