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

forex graphic interactive display.mq4

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

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

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

О программе

Советник для MetaTrader 4, реализующий сетевую торговую стратегию на таймфрейме M1. Отслеживает рыночные цены и открывает позиции BUY или SELL по заданным условиям, используя фиксированный или увеличивающийся размер лота. Поддерживает фиксированный Take Profit, трейлинг-стоп и защиту по equity.

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

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

НастройкаОписание
ShowTradeComment Показывать комментарий сделки — Включает или отключает отображение информационной панели с данными по сделкам на графике
Lots Лот — Базовый размер лота для новых ордеров
MultiLotsFactor Множитель лота — Множитель, на который увеличивается лот при каждом следующем ордере
StepLots Шаг лота — Шаг изменения размера лота при расчёте сетевых позиций
TakeProfit Тейк-профит — Фиксированный уровень фиксации прибыли в пунктах для каждой позиции
UseTrailing Использовать трейлинг-стоп — Включает или отключает трейлинг-стоп для открытых позиций
TrailStart Старт трейлинга — Расстояние в пунктах от цены входа, при котором начинается трейлинг-стоп
TrailStop Стоп трейлинга — Расстояние в пунктах от текущей цены для фиксации трейлинг-стопа
MaxOpenOrders Максимум открытых ордеров — Максимальное количество одновременно открытых позиций
SafeEquityStopOut Стоп-аут по equity — Включает автоматическое закрытие всех позиций при падении equity ниже заданного порога
SafeEquityRisk Риск equity — Процент снижения equity от баланса, при достижении которого срабатывает стоп-аут
Slippage Слиппаж — Максимально допустимое проскальзывание в пунктах при открытии ордеров
MagicNumber Магический номер — Идентификатор ордеров советника для фильтрации позиций
FreezeAfterTP Заморозка после тейк-профита — Запрещает открытие новых сделок после срабатывания тейк-профита
Close_All_Orders Закрыть все ордера — При включении принудительно закрывает все открытые позиции
TradeComment Комментарий сделки — Текстовый префикс комментария, добавляемый к каждому ордеру
______________ Разделитель планировщика — Текстовая метка-разделитель в настройках для группы параметров планировщика
StartHour Час начала торговли — Час начала торгового окна (UTC)
StartMinute Минута начала торговли — Минута начала торгового окна
StopHour Час окончания торговли — Час окончания торгового окна (UTC)
StopMinute Минута окончания торговли — Минута окончания торгового окна
StartingTradeDay День начала торговли — День недели начала торговли (0 — воскресенье)
EndingTradeDay День окончания торговли — День недели окончания торговли (7 — суббота)
Получить полный код

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

string modver = "M6 (TLP public)";
input bool ShowTradeComment = TRUE;

input double Lots = 0.01;
input double MultiLotsFactor = 1.6;
input double StepLots = 15.0;
input double TakeProfit = 23.0;
input bool UseTrailing = FALSE;
input double TrailStart = 38.0;
input double TrailStop = 18.0;
input int MaxOpenOrders = 15;
input bool SafeEquityStopOut = FALSE;
input double SafeEquityRisk = 0.5;
input double Slippage = 3.0;
input int MagicNumber = 2024536;
input bool FreezeAfterTP = FALSE;
input bool Close_All_Orders = FALSE;
input string TradeComment = "FXGT";
input string ______________ = "Планировщик:";
input int StartHour = 0;
input int StartMinute = 0;
input int StopHour = 0;
input int StopMinute = 0;
input int StartingTradeDay = 0;
input int EndingTradeDay = 7;
/*input*/ bool UseLotFix = TRUE;
bool gi_184 = FALSE;
double gd_188 = 48.0;
double gd_196 = 500.0;
double gd_204 = 0.0;
bool gi_212 = TRUE;
bool gi_216 = FALSE;
int gi_220 = 1;
double gd_224;
double gd_232;
double gd_240;
double gd_248;
double gd_256;
double gd_264;
double gd_272;
double gd_280;
bool gi_HaveNewOpenOrders;
int gt_292 = 0;
int gi_296;
int gi_300 = 0;
double gd_304;
int gi_312 = 0;
int gi_OrdersOpen;
double gd_320 = 0.0;
bool gi_328 = FALSE;
bool gi_332 = FALSE;
bool gi_336 = FALSE;
int gi_340;
bool gi_344 = FALSE;
int gi_348 = 0;
int gi_352 = 0;
double gd_356;
double gd_364;
string gs_off_372 = "OFF";
string gs_live_380 = "REAL";
string gs_396 = "";
bool gi_408 = TRUE;
bool gi_412 = TRUE;
int gi_416 = 0;
int gi_420;
int gStartMinutes, gStopMinutes;
double PipToTP, MaxDD = 0;

bool IsTradeTime()
  {
   if(FreezeAfterTP)
      return(false);
   bool AllowTrade = true;
   gStartMinutes = 60 * StartHour + StartMinute;
   gStopMinutes = 60 * StopHour + StopMinute;
   int day = DayOfWeek();
   if(day < StartingTradeDay || day > EndingTradeDay)
      AllowTrade = false;
   int minuntes = 60 * TimeHour(TimeCurrent()) + TimeMinute(TimeCurrent());
   if(day <= StartingTradeDay && gStartMinutes >= minuntes)
      AllowTrade = false;
   if(day >= EndingTradeDay && gStopMinutes < minuntes)
      AllowTrade = false;
   return(AllowTrade);
  }

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

void OnDeinit(const int reason)
  {
   Comment("");
   if(ObjectFind("BG") >= 0)
      ObjectDelete("BG");
   if(ObjectFind("BG1") >= 0)
      ObjectDelete("BG1");
   if(ObjectFind("BG2") >= 0)
      ObjectDelete("BG2");
   if(ObjectFind("BG3") >= 0)
      ObjectDelete("BG3");
   if(ObjectFind("BG4") >= 0)
      ObjectDelete("BG4");
   if(ObjectFind("BG5") >= 0)
      ObjectDelete("BG5");
   if(ObjectFind("NAME") >= 0)
      ObjectDelete("NAME");

  }

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

void f0_13()
  {
   if(ShowTradeComment)
     {
      if(IsTesting() && !IsVisualMode())
         return;
      if(ObjectFind("BG") < 0)
        {
         ObjectCreate("BG", OBJ_LABEL, 0, 0, 0);
         ObjectSetText("BG", "g", 210, "Webdings", Orange);
         ObjectSet("BG", OBJPROP_CORNER, 0);
         ObjectSet("BG", OBJPROP_BACK, TRUE);
         ObjectSet("BG", OBJPROP_XDISTANCE, 0);
         ObjectSet("BG", OBJPROP_YDISTANCE, 15);
        }
      if(ObjectFind("BG1") < 0)
        {
         ObjectCreate("BG1", OBJ_LABEL, 0, 0, 0);
         ObjectSetText("BG1", "g", 210, "Webdings", DimGray);
         ObjectSet("BG1", OBJPROP_BACK, FALSE);
         ObjectSet("BG1", OBJPROP_XDISTANCE, 0);
         ObjectSet("BG1", OBJPROP_YDISTANCE, 42);
        }
      if(ObjectFind("BG2") < 0)
        {
         ObjectCreate("BG2", OBJ_LABEL, 0, 0, 0);
         ObjectSetText("BG2", "g", 210, "Webdings", DimGray);
         ObjectSet("BG2", OBJPROP_CORNER, 0);
         ObjectSet("BG2", OBJPROP_BACK, TRUE);
         ObjectSet("BG2", OBJPROP_XDISTANCE, 0);
         ObjectSet("BG2", OBJPROP_YDISTANCE, 42);
        }
      if(ObjectFind("NAME") < 0)
        {
         ObjectCreate("NAME", OBJ_LABEL, 0, 0, 0);
         ObjectSetText("NAME", "FOREX GRID TRADER EA - " + Symbol(), 9, "Arial Bold", White);
         ObjectSet("NAME", OBJPROP_CORNER, 0);
         ObjectSet("NAME", OBJPROP_BACK, FALSE);
         ObjectSet("NAME", OBJPROP_XDISTANCE, 5);
         ObjectSet("NAME", OBJPROP_YDISTANCE, 23);
        }
      if(ObjectFind("BG3") < 0)
        {
         ObjectCreate("BG3", OBJ_LABEL, 0, 0, 0);
         ObjectSetText("BG3", "g", 110, "Webdings", DimGray);
         ObjectSet("BG3", OBJPROP_CORNER, 0);
         ObjectSet("BG3", OBJPROP_BACK, TRUE);
         ObjectSet("BG3", OBJPROP_XDISTANCE, 0);
         ObjectSet("BG3", OBJPROP_YDISTANCE, 73);
        }
      if(ObjectFind("BG5") < 0)
        {
         ObjectCreate("BG5", OBJ_LABEL, 0, 0, 0);
         ObjectSetText("BG5", "g", 210, "Webdings", DimGray);
         ObjectSet("BG5", OBJPROP_CORNER, 0);
         ObjectSet("BG5", OBJPROP_BACK, FALSE);
         ObjectSet("BG5", OBJPROP_XDISTANCE, 0);
         ObjectSet("BG5", OBJPROP_YDISTANCE, 73);
        }
      f0_3();
     }
  }

double f0_10(double ad_0)
  {
   return (NormalizeDouble(ad_0, Digits));
  }

int f0_1(bool ai_0 = TRUE, bool ai_4 = TRUE)
  {
   int li_8 = 0;
   for(int li_12 = OrdersTotal() - 1; li_12 >= 0; li_12--)
     {
      if(OrderSelect(li_12, SELECT_BY_POS, MODE_TRADES))
        {
         if(OrderSymbol() == Symbol()

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

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

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

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

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

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

Стоимость полного кода
1 709,30₽ ≈ $20.89