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

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

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

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

О программе

S.A.R.A. — советник для MetaTrader 4, который отображает на графике панель с информацией о текущей фазе тренда, направлении движения и анализе таймфреймов. Советник использует ленты скользящих средних EMA (периоды 8, 13, 34, 89), индикатор DPI и параболический SAR для формирования торговых сигналов. При совпадении сигналов советник может открывать сделки с динамической установкой стоп-лосса и тейк-профита.

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

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

НастройкаОписание
note Заголовок раздела настроек — Текстовый параметр для отображения заголовка раздела настроек аутентификации на панели.
username Имя пользователя — Текстовый параметр для ввода имени пользователя (используется в заблокированной функции аутентификации).
LotSize Размер лота — Фиксированный объём лота для открытия сделки. Если значение не нулевое, используется вместо расчёта по проценту риска.
RiskPercent Процент риска — Процент от депозита, рискуемый на одну сделку. Используется для автоматического расчёта размера лота.
Slippage Проскальгивание — Допустимое проскальгивание цены при исполнении ордеров, задаётся в пунктах.
MagicNumber Магическое число — Уникальный идентификатор магического числа для идентификации ордеров, открытых данным советником.
DynamicSLTP Динамический стоп-лосс и тейк-профит — Переключатель динамической установки стоп-лосса и тейк-профита на основе фрактального анализа ценовых данных.
TakeProfit Тейк-профит — Фиксированное значение тейк-профита в пунктах. Используется при отключённом динамическом тейк-профите.
StopLoss Стоп-лосс — Фиксированное значение стоп-лосса в пунктах. Используется при отключённом динамическом стоп-лоссе.
MinStopLoss Минимальный стоп-лосс — Минимально допустимое значение стоп-лосса в пунктах при динамической установке.
MaxStopLoss Максимальный стоп-лосс — Максимально допустимое значение стоп-лосса в пунктах при динамической установке.
PartialClose Частичное закрытие — Переключатель частичного закрытия позиции при достижении заданного уровня прибыли.
PartialClosePct Процент частичного закрытия — Процент от объёма позиции, который закрывается при частичном закрытии.
PartialCloseAtPipsProfit Прибыль для частичного закрытия (пункты) — Уровень прибыли в пунктах, при достижении которого активируется частичное закрытие позиции.
txt Заголовок раздела трейлинга — Текстовый параметр для отображения заголовка раздела настроек трейлинга на панели.
BreakEvenAtPct Процент для безубыточного стопа — Процент прибыли от открытия позиции, при достижении которого стоп-лосс перемещается в безубыточную зону.
BreakEvenPips Пункты безубыточного стопа — Количество пунктов, на которые сдвигается стоп-лосс при активации безубыточного режима.
UseTrailing Использовать трейлинг-стоп — Переключатель активации трейлинг-стопа для управления открытыми позициями.
TrailOnProfit Трейлинг на прибыли — Переключатель активации трейлинг-стопа только при наличии нереализованной прибыли по позиции.
TrailingStop Расстояние трейлинг-стопа — Расстояние трейлинг-стопа от цены открытия, измеряется в пунктах.
TrailingStep Шаг трейлинг-стопа — Шаг перемещения стоп-лосса при активном трейлинг-стопе, измеряется в пунктах.
SoundAlert Звуковое оповещение — Переключатель звукового оповещения при появлении нового торгового сигнала.
EntryPopUp Всплывающее подтверждение входа — Переключатель всплывающего диалогового окна с запросом подтверждения перед открытием сделки.
CloseOnReverse Закрытие при развороте — Переключатель автоматического закрытия текущей позиции при появлении сигнала на противоположное направление.
txtAdv Заголовок раздела расширенных настроек — Текстовый параметр для отображения заголовка раздела расширенных настроек на панели.
ConfirmWithDPI Подтверждение DPI — Переключатель использования индикатора DPI для подтверждения торговых сигналов.
ConfirmWith3rdEMA Подтверждение 3-й EMA — Переключатель использования третьей скользящей средней EMA (период 34) в качестве дополнительного подтверждения торгового сигнала.
ConfirmWith4thEMA Подтверждение 4-й EMA — Переключатель использования четвёртой скользящей средней EMA (период 89) в качестве дополнительного подтверждения торгового сигнала.
PipsAwayFromCandle Пункты от свечи — Количество пунктов от свечи, используемое в логике определения торговых сигналов.
SLColor Цель стоп-лосса — Цвет отображения стоп-лосса на графике.
TPColor Цель тейк-профита — Цвет отображения тейк-профита на графике.
BoxColor Цвет рамки панели — Цвет фоновой рамки информационной панели на графике.
NonSetupColor Цель неактивного состояния — Цвет элементов панели в неактивном или неопределённом состоянии.
UpColor Цель восходящего тренда — Цвет отображения восходящего тренда в общем индикаторе.
DownColor Цель нисходящего тренда — Цвет отображения нисходящего тренда в общем индикаторе.
UpTrendColor Цель восходящей фазы тренда — Цвет отображения восходящей фазы тренда на панели.
DownTrendColor Цель нисходящей фазы тренда — Цвет отображения нисходящей фазы тренда на панели.
CurrentUpColor Цвет текущего восходящего тренда — Цвет отображения текущего восходящего тренда на панели.
CurrentDownColor Цвет текущего нисходящего тренда — Цвет отображения текущего нисходящего тренда на панели.
cTrendBG Цель фона трендовых индикаторов — Цвет фоновой сетки трендовых индикаторов на панели.
Получить полный код

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

#include <WinUser32.mqh>
#import "wininet.dll"
   int InternetOpenA(string a0, int a1, string a2, string a3, int a4);
   int InternetOpenUrlA(int a0, string a1, string a2, int a3, int a4, int a5);
   int InternetReadFile(int a0, string a1, int a2, int& a3[]);
   int InternetCloseHandle(int a0);
#import

extern string note = " ======= Authentication SETTINGS ======";
extern string username = "";
extern string password = "";
extern double LotSize = 0.1;
extern double RiskPercent = 2.0;
extern int Slippage = 3;
extern int MagicNumber = 9869;
extern bool DynamicSLTP = TRUE;
extern int TakeProfit = 20;
extern int StopLoss = 10;
extern int MinStopLoss = 7;
extern int MaxStopLoss = 15;
extern bool PartialClose = FALSE;
extern int PartialClosePct = 70;
extern int PartialCloseAtPipsProfit = 10;
extern string txt = " ====== Trailing Settings ======";
extern double BreakEvenAtPct = 70.0;
extern int BreakEvenPips = 1;
extern bool UseTrailing = FALSE;
extern bool TrailOnProfit = TRUE;
extern int TrailingStop = 25;
extern int TrailingStep = 2;
extern bool SoundAlert = TRUE;
extern bool EntryPopUp = TRUE;
extern bool CloseOnReverse = FALSE;
bool gi_204 = FALSE;
extern string txtAdv = "====== !!!!! ADVANCED SETTINGS !!!!!  ======";
extern bool ConfirmWithDPI = TRUE;
extern bool ConfirmWith3rdEMA = TRUE;
extern bool ConfirmWith4thEMA = FALSE;
extern int PipsAwayFromCandle = 3;
extern color SLColor = Red;
extern color TPColor = Blue;
extern color BoxColor = Blue;
extern color NonSetupColor = Silver;
extern color UpColor = Green;
extern color DownColor = Blue;
extern color UpTrendColor = Lime;
extern color DownTrendColor = Red;
extern color CurrentUpColor = Yellow;
extern color CurrentDownColor = Red;
int gi_272 = 8;
int gi_276 = 13;
int gi_280 = 5;
int gi_284 = 13;
int gi_288 = 34;
int gi_292 = 89;
double gd_296 = 0.05;
double gd_304 = 0.5;
bool gi_312 = FALSE;
int gi_316 = 7;
int gi_320 = 30;
int gi_324 = 22;
int gi_328 = 30;
double gd_332;
double gd_340;
int gi_348 = 0;
int gi_352 = 0;
string gs_356 = "";
extern color cTrendBG = C'0x37,0x37,0x37';
double gd_368;
int gia_376[9] = {1, 5, 15, 30, 60, 240, 1440, 10080, 43200};
string gsa_380[9] = {"M1", "M5", "M15", "M30", "H1", "H4", "D1", "W1", "MN1",
   ""};
int gi_384 = 0;
int gi_388 = 0;
int gia_392[14];
int gia_396[14];
int gia_400[14];
int gia_404[14];
int gi_408;
bool gi_412 = FALSE;
int gi_416 = 0;
bool gi_420 = FALSE;
bool gi_424 = TRUE;
int gia_428[64] = {65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47};
int gi_432 = 1;
string gs_436;
int gi_444 = 0;
int gi_448 = 0;
int gi_452 = 0;
string gs_456;
int gia_464[1];
string gs_472 = "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";
int gt_480 = 0;

string ProcessURL(string as_0) {
   string ls_12;
   string ls_20;
   for (int li_8 = StringFind(as_0, " "); li_8 != -1; li_8 = StringFind(as_0, " ")) {
      ls_12 = StringTrimLeft(StringTrimRight(StringSubstr(as_0, 0, StringFind(as_0, " ", 0))));
      ls_20 = StringTrimLeft(StringTrimRight(StringSubstr(as_0, StringFind(as_0, " ", 0))));
      as_0 = ls_12 + "%20" + ls_20;
   }
   return (as_0);
}

void Base64Encode(string as_0, string &as_8) {
   int li_28;
   int li_32;
   int li_36;
   int li_40;
   int li_44;
   int li_48;
   int li_52;
   as_8 = "";
   int li_16 = 0;
   int li_20 = 0;
   int li_24 = StringLen(as_0);
   while (li_16 < li_24) {
      li_36 = StringGetChar(as_0, li_16);
      li_16++;
      if (li_16 >= li_24) {
         li_32 = 0;
         li_28 = 0;
         li_20 = 2;
      } else {
         li_32 = StringGetChar(as_0, li_16);
         li_16++;
         if (li_16 >= li_24) {
            li_28 = 0;
            li_20 = 1;
         } else {
            li_28 = StringGetChar(as_0, li_16);
            li_16++;
         }
      }
      li_40 = li_36 >> 2;
      li_44 = (li_36 & 3 * 16) | li_32 >> 4;
      li_48 = (li_32 & 15 * 4) | li_28 >> 6;
      li_52 = li_28 & 63;
      as_8 = as_8 + CharToStr(gia_428[li_40]);
      as_8 = as_8 + CharToStr(gia_428[li_44]);
      switch (li_20) {
      case 0:
         as_8 = as_8 + CharToStr(gia_428[li_48]);
         as_8 = as_8 + CharToStr(gia_428[li_52]);
         break;
      case 1:
         as_8 = as_8 + CharToStr(gia_428[li_48]);
         as_8 = as_8 + "=";
         break;
      case 2:
         as_8 = as_8 + "==";
      }
   }
}

string LoadURL(string as_0) {
   gi_452 = 0;
   for (gi_444 = FALSE; gi_452 < 3 && gi_444 == FALSE; gi_452++) {
      if (gi_448 != 0) gi_444 = InternetOpenUrlA(gi_448, as_0, 0, 0, -2079850240, 0);
      if (gi_444 == FALSE) {
         InternetCloseHandle(gi_448);
         gi_448 = InternetOpenA("mymt4InetSession", gi_432, 0, 0, 0);
      }
   }
   gs_456 = "";
   gia_464[0] = 1;
   while (gia_464[0] > 0) {
      InternetReadFile(gi_444, gs_472, 200, gia_464);
      if (gia_464[0] > 0) gs_456 = gs_456 + StringSubstr(gs_472, 0, gia_464[0]);
      if (StringSubstr(gs_472, 0, gia_464[0]) == "0") break;
      if (StringSubstr(gs_472, 0, gia_464[0]) == "4") break;
      if (StringSubstr(gs_472, 0, gia_464[0]) == "1") break;
   }
   InternetCloseHandle(gi_444);
   return (gs_456);
}

/* string authentication(string as_0, string as_8) {
   string ls_32;
   string ls_16 = "";
   string ls_24 = "";
   ls_16 = "mode=authenticate&username=" + as_0 + "&password=" + as_8;
   Base64Encode(ls_16, ls_24);
   return (LoadURL(ProcessURL("" + ls_24)));
} */

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

void update_timeframes() {
   double ld_0;
   double ld_8;
   double ld_16;
   double ld_24;
   int li_40;
   int li_32 = 5;
   int li_36 = 0;
   double ld_44 = iMA(NULL, 0, gi_280, 0, MODE_EMA, PRICE_CLOSE, 0);
   double ld_52 = iMA(NULL, 0, gi_284, 0, MODE_EMA, PRICE_CLOSE, 0);
   double ld_60 = iMA(NULL, 0, gi_288, 0, MODE_EMA, PRICE_CLOSE, 0);
   double ld_68 = iMA(NULL, 0, gi_292, 0, MODE_EMA, PRICE_CLOSE, 0);
   color li_76 = NonSetupColor;
   string ls_80 = "Unordered Phase";
   if (ld_68 > ld_60 && ld_60 > ld_52) {
      li_76 = DownTrendColor;
      ls_80 = "Trending Phase ";
   } else {
      if (ld_68 < ld_60 && ld_60 < ld_52) {
         li_76 = UpTrendColor;
         ls_80 = "Trending Phase ";
      } else {
         if (ld_68 < ld_60 && ld_52 < ld_68) {
            li_76 = DownTrendColor;
            ls_80 = "Emerging Phase";
         } else {
            if (ld_52 > ld_68 && ld_68 > ld_52) {
               li_76 = UpTrendColor;
               ls_80 = "Emerging Phase";
            }
         }
      }
   }
   ObjectSetText("SRT_Phase", ls_80, 12, "Verdana", li_76);
   int li_88 = 127;
   if (ld_44 > ld_52) {
      li_76 = UpTrendColor;
      li_88 = 241;
   } else {
      li_76 = DownTrendColor;
      li_88 = 242;
   }
   ObjectSetText("SRT_ST", "ST", 14, "Verdana", li_76);
   ObjectSetText("SRT_STArr", CharToStr(li_88), 18, "Wingdings", li_76);
   if (ld_52 > ld_60) {
      li_76 = UpTrendColor;
      li_88 = 241;
   } else {
      li_76 = DownTrendColor;
      li_88 = 242;
   }
   ObjectSetText("SRT_MT", "MT", 14, "Verdana", li_76);
   ObjectSetText("SRT_MTArr", CharToStr(li_88), 18, "Wingdings", li_76);
   if (ld_60 > ld_68) {
      li_76 = UpTrendColor;
      li_88 = 241;
   } else {
      li_76 = DownTrendColor;
      li_88 = 242;
   }
   ObjectSetText("SRT_LT", "LT", 14, "Verdana", li_76);
   ObjectSetText("SRT_LTArr", CharToStr(li_88), 18, "Wingdings", li_76);
   double ld_92 = iSAR(NULL, 0, gd_296, gd_304, 0);
   if (Bid > ld_92) {
      li_76 = UpTrendColor;
      li_88 = 241;
   } else {
      li_76 = DownTrendColor;
      li_88 = 242;
   }
   ObjectSetText("SRT_Psar", "psar", 14, "Verdana", li_76);
   ObjectSetText("SRT_PsarArr", CharToStr(li_88), 18, "Wingdings", li_76);
   ObjectSetText("SRT_Psar_points", ".....", 40, "Calibri", li_76);
   ema_trend_locations(ld_44, ld_52, ld_60, ld_68);
   for (int li_100 = gi_352; li_100 < gi_352 + 5; li_100++) {
      ld_0 = iCustom(NULL, gia_376[li_100], "DPI", gi_272, gi_276, 5, 0);
      ld_8 = iCustom(NULL, gia_376[li_100], "DPI", gi_272, gi_276, 6, 0);
      if (ld_0 < 0.0 && ld_8 < 0.0) ld_16 = -1;
      else {
         if (ld_0 > 0.0 && ld_8 > 0.0) ld_16 = 1;
         else {
            if (ld_8 > ld_0) {
               ld_24 = ld_8;
               ld_8 = ld_0;
               ld_0 = ld_24;
            }
            ld_8 = MathAbs(ld_8);
            ld_0 = MathAbs(ld_0);
            if (ld_0 > ld_8) ld_16 = 1;
            else ld_16 = -1;
         }
      }
      if (ld_16 < 0.0) li_40 = 10.0 * ld_16 + 10.0;
      else li_40 = 10.0 * ld_16;
      if (Period() == gia_376[li_100]) {
         for (li_36 = 1; li_36 <= 10; li_36++) {
            if (li_36 <= li_40) ObjectSetText("SRT_TF" + li_32 + "" + li_36, "-", 60, "Verdana", gia_400[li_36 - 1]);
            else ObjectSetText("SRT_TF" + li_32 + "" + li_36, "-", 60, "Verdana", gia_404[li_36 - 1]);
         }
         if (ld_16 < 0.0) {
            ObjectSetText("SRT_Direction2", "DOWN TREND", 14, "Verdana", CurrentDownColor);
            ObjectSetText("SRT_TitanPct", "DPI      DOWN", 14, "Verdana", CurrentDownColor);
            ObjectSetText("SRT_TitanArr", CharToStr(242), 18, "Wingdings", CurrentDownColor);
         } else {
            ObjectSetText("SRT_Direction2", "UP   TREND  ", 14, "Verdana", CurrentUpColor);
            ObjectSetText("SRT_TitanPct", "DPI         UP  ", 14, "Verdana", CurrentUpColor);
            ObjectSetText("SRT_TitanArr", CharToStr(241), 18, "Wingdings", CurrentUpColor);
         }
      } else {
         for (li_36 = 1; li_36 <= 10; li_36++) {
            if (li_36 <= li_40) ObjectSetText("S

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

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

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

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

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

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

Стоимость полного кода
2 214,40₽ ≈ $27.06