s.a.r.a..mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «s.a.r.a..mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.