wallstreetforexrobot_v4.5_nodll
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «wallstreetforexrobot_v4.5_nodll.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Wall Street Forex Robot — торговый советник для MetaTrader 4, который анализирует ценовые данные с использованием индикаторов (Moving Average, Williams %R, ATR, CCI) на таймфрейме M15 и автоматически открывает и закрывает позиции на основании сформированных торговых сигналов. Советник поддерживает управление рисками через стоп-лосс, тейк-профит и secure profit, а также включает фильтр новостей, скачивающий данные экономического календаря с wallstreet-forex.com для предотвращения торговли важных событий.
Робот предлагает функции управления капиталом: AutoMM для автоматического расчёта лотов на основе свободного маржинального баланса, режим восстановления позиций после убытков, а также скрытый режим торговли. Торговля может ограничиваться по времени (час начала в понедельник, выход в пятницу) и правилами NFA/FIFO. Поддерживаются пользовательские настройки для различных валютных пар с индивидуальными оптимизационными параметрами.
Версия «nodll» исключает зависимость от проприетарной библиотеки WALLSTREET.dll (ее импорт закомментирован), реализуя логику сигналов непосредственно в MQL4-коде. Для работы фильтра новостей по-прежнему используется интернет-соединение через стандартный WinInet API.
Настройки программы
| Настройка | Описание |
|---|---|
| Magic | Магический номер — Магический номер для идентификации ордеров, открытых данным советником |
| EA_Comment | Комментарий советника — Текстовый комментарий, добавляемый к открытым ордерам |
| MaxSpread | Максимальный спред — Максимально допустимый спред в пунктах для открытия позиций |
| Slippage | Проскальгивание — Допустимое проскальгивание в пунктах при исполнении ордеров |
| StealthMode | Скрытый режим — При включении скрывает ордера от счётчика позиций и отключает отображение стоп-лосса/тейк-профита при открытии |
| CloseOnlyOnProfit | Закрытие только при прибыли — При включении закрывает позиции только при наличии прибыли |
| NFA | Ограничение NFA/FIFO — При включении запрещает открытие нескольких позиций в одном направлении (правила FIFO/NFA) |
| No_Hedge | Запрет хеджирования — При включении запрещает открытие позиции в направлении, противоположном существующей (без хеджирования) |
| CS | Заголовок пользовательских настроек — Заголовок секции пользовательских настроек |
| StopLoss | Стоп-лосс — Стоп-лосс в пунктах (если >= 0, переопределяет пользовательские настройки) |
| TakeProfit | Тейк-профит — Тейк-профит в пунктах (если >= 0, переопределяет пользовательские настройки) |
| SecureProfit | Гарантированная прибыль — Уровень прибыли для активации secure profit (при использовании пользовательских настроек) |
| SecureProfitTriger | Триггер гарантированной прибыли — Порог срабатывания для перемещения стоп-лосса в безубыток (при использовании пользовательских настроек) |
| UseCustomPair | Использовать пользовательскую пару — При включении использует параметры из UseSettingsFrom вместо автоматического определения по символу |
| UseSettingsFrom | Источник настроек пары — Название валютной пары, из которой берутся оптимизационные параметры (например, EURUSD, GBPUSD) |
| MM | Заголовок управления рисками — Заголовок секции управления рисками |
| RecoveryMode | Режим восстановления — Включает режим восстановления позиций с пересчётом лотов на основе истории убытков |
| FixedLots | Фиксированный лот — Фиксированный размер лота при отключённом AutoMM |
| AutoMM | Автоматическое управление лотом — Автоматический расчёт размера лота на основе процента от свободного маржинального баланса (0 = отключено) |
| AutoMM_Max | Максимальный лот AutoMM — Максимальный размер лота при автоматическом управлении |
| FE | Заголовок правил торговли по дням — Заголовок секции правил торговли с понедельника по пятницу |
| MondayStartHour | Час начала торговли в понедельник — Час начала торговли в понедельник (0 = открытие в любое время) |
| FridayExit | Выход из торговли в пятницу — При включении закрывает все позиции в пятницу в соответствии с ExitHour |
| LastTradeHour | Последний час торговли в пятницу — Последний допустимый час для открытия новых позиций в пятницу |
| ExitHour | Час выхода из торговли — Час завершения торговли в конце торгового дня |
| NF | Заголовок настроек фильтра новостей — Заголовок секции настроек фильтра новостей |
| Avoid_News | Фильтр новостей — Включает фильтр экономических новостей с сайта wallstreet-forex.com для блокировки торговли в период важных событий |
| GMT_Offset | Смещение GMT — Смещение часового пояса сервера относительно GMT для фильтра новостей |
| DST_Usage | Использование перехода на летнее время — Учёт летнего/зимнего времени при расчёте часового пояса для фильтра новостей |
| Include_Medium_News | Включить новости средней важности — Включает новости средней важности в фильтр (по умолчанию — только высокая важность) |
| Wait_Before_News | Ожидание перед новостью — Время ожидания в минутах до публикации новости для блокировки торговли |
| Wait_After_News | Ожидание после новости — Время ожидания в минутах после публикации новости перед возобновлением торговли |
| //////////////////////////////////////////////////////////////////////////////////////////////////// (O1) | Метка оптимизационных настроек 1 — Текстовый параметр-метка для группы оптимизационных настроек |
| /|EURUSD|EURUSD| EUR33 |GBPUSD|GBPUSD| GBP52 |GBP52T| GBP30 |USDJPY|USDJPY|USDCHF|USDCAD|AUDUSD|NZDU (O2) | Метка оптимизационных настроек 2 — Текстовый параметр-метка для группы оптимизационных настроек |
| /////|------| _new |-------|------| _new |-------|------|-------|------| _new |------|------|------| (O3) | Метка оптимизационных настроек 3 — Текстовый параметр-метка для группы оптимизационных настроек |
| /|//////|///////|//////|//////|///////|//////|///////|//////|//////|//////|//////|//////|//////| (O4) | Метка оптимизационных настроек 4 — Текстовый параметр-метка для группы оптимизационных настроек |
| 1 | 75 | 75 | 75 | 75 | 75 | 75 | 75 | 75 | 85 | 85 | 70 | 65 | 75 | 45 | (iMA_Period) | Период MA (пользовательские) — Период расчёта скользящей средней (при использовании пользовательских настроек) |
| 2 | 39 | 30 | 42 | 33 | 34 | 30 | 21 | 39 | 21 | 10 | 25 | 15 | 33 | 70 | (iMA_Filter_Open_b) | Фильтр MA открытия b — Параметр фильтра открытия на основе скользящей средней (при использовании пользовательских настроек) |
| 3 | 5 | 5 | 5 | 6 | 6 | 6 | 6 | 6 | 5 | 3 | 9 | 11 | 2 | 2 | (iWPR_Filter_OpenSignal_b) | Сигнальный фильтр WPR открытия b — Параметр сигнального фильтра WPR для открытия (при использовании пользовательских настроек) |
| 4 | 15 | 17 | 42 | 12 | 12 | 12 | 3 | 13 | 5 | -14 | 8 | 5 | 13 | 14 | (iMA_Filter_Open_a) | Фильтр MA открытия a — Параметр фильтра открытия на основе скользящей средней (при использовании пользовательских настроек) |
| 5 | 1 | 1 | 5 | 1 | 1 | 2 | 3 | 2 | 1 | 1 | 5 | 1 | 2 | 2 | (iWPR_Filter_OpenSignal_a) | Сигнальный фильтр WPR открытия a — Параметр сигнального фильтра WPR для открытия (при использовании пользовательских настроек) |
| 6 | 19 | 15 | 14 | 19 | 19 | 25 | 33 | 22 | 27 | 28 | 22 | 6 | 12 | -5 | (iWPR_Filter_Close) | Фильтр WPR закрытия — Параметр фильтра закрытия на основе Williams %R (при использовании пользовательских настроек) |
| 7 | -65 | 0 | -5 |-200 | -30 | -30 | -25 | -50 | -80 |-200 | -40 | -30 | -40 | -40 | (MaxLossPoints) | Максимальный убыток в пунктах — Максимальный допустимый убыток в пунктах для закрытия позиции (при использовании пользовательских настроек) |
| 8 | 11 | 11 | 10 | 12 | 12 | 12 | 12 | 22 | 12 | 12 | 12 | 16 | 18 | 15 | (iWPR_Period) | Период WPR (пользовательские) — Период расчёта индикатора Williams %R (при использовании пользовательских настроек) |
| 9 | 14 | 14 | 14 | 18 | 13 | 10 | 13 | 11 | 13 | 10 | 11 | 14 | 8 | 20 | (Price_Filter_Close) | Ценовой фильтр закрытия — Параметр ценового фильтра при закрытии позиций (при использовании пользовательских настроек) |
| 10 | 1 | 3 | 5 | 2 | 14 | 4 | 7 | 0 | 2 | 13 | 0 | 2 | 1 | 10 | (SecureProfit_) | Гарантированная прибыль (пользовательские) — Уровень прибыли для активации secure profit (при использовании пользовательских настроек) |
| 11 | 10 | 11 | 13 | 24 | 23 | 20 | 20 | 20 | 14 | 15 | 15 | 10 | 16 | 40 | (SecureProfitTriger_) | Триггер гарантированной прибыли (пользовательские) — Порог срабатывания для перемещения стоп-лосса в безубыток (при использовании пользовательских настроек) |
| 12 | -1 | -1 | -2 | -1 | -1 | -5 | -3 | -3 | -1 | -1 | -2 | -4 | -1 | -2 | (iWPR_Filter_Open_unknown) | Неизвестный фильтр WPR открытия — Неизвестный параметр фильтра WPR открытия (при использовании пользовательских настроек) |
| 13 | -1 | -1 | -5 | -1 | 0 | 0 | 0 | 0 | -2 | -2 | -1 | -1 | -1 | -5 | (iWPR_Filter_Close_unknown) | Неизвестный фильтр WPR закрытия — Неизвестный параметр фильтра WPR закрытия (при использовании пользовательских настроек) |
| 14 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | (iWPR_Close_Period) | Период WPR закрытия (пользовательские) — Период расчёта Williams %R для фильтра закрытия (при использовании пользовательских настроек) |
| 15 | 6 | 6 | 6 | 6 | 5 | 5 | 5 | 5 | 0 | 8 | 3 | 4 | 0 | 0 | (FilterATR) | Фильтр ATR для открытия — Минимальное значение ATR для допуска новой позиции (фильтр волатильности) |
| 16 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 36 | 14 | 14 | 14 | 14 | (iATR_Period) | Период ATR (пользовательские) — Период расчёта индикатора ATR (при использовании пользовательских настроек) |
| 17 | 150 | 155 | 190 | 290 | 250 | 240 | 160 | 240 |2000 | 190 | 170 | 130 | 140 | 120 | (iCCI_OpenFilter) | Фильтр CCI для открытия — Пороговое значение CCI для фильтра открытия позиций (при использовании пользовательских настроек) |
| 18 | 18 | 18 | 5 | 12 | 11 | 10 | 12 | 10 | 12 | 12 | 14 | 12 | 18 | 18 | (iCCI_Period) | Период CCI (пользовательские) — Период расчёта индикатора CCI (при использовании пользовательских настроек) |
| 19 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | (Unknown_1) | Неизвестный параметр 1 — Неизвестный параметр, не используется в текущей версии (значение по умолчанию 0) |
| 20 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | (Unknown_2) | Неизвестный параметр 2 — Неизвестный параметр, не используется в текущей версии (значение по умолчанию 0) |
| 21 | 120 | 80 | 33 | 120 | 95 | 52 | 52 | 30 | 130 | 120 | 120 | 150 | 150 | 130 | (StopLoss_) | Стоп-лосс (пользовательские) — Стоп-лосс в пунктах (при использовании пользовательских настроек) |
| 22 | 26 | 30 | 30 | 50 | 50 | 70 | 40 | 90 | 27 | 65 | 17 | 14 | 70 | 50 | (TakeProfit_) | Тейк-профит (пользовательские) — Тейк-профит в пунктах (при использовании пользовательских настроек) |
Поиск по коду файла
/*
Generated by ex4-to-mq4 decompiler FREEWARE 4.0.451.7
Website: h t t P : //WwW . m E tAQuotES.N e T
E-mail : S U ppo r t @M E t AQuOT ES .neT
*/
#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 "WALLSTREET.dll"
int SessionInit(int a0, int a1, int a2, int a3, string a4);
int SessionDeinit(int a0, int a1, int a2, int a3, string a4);
int ParamValue(int a0, int a1);
bool CheckCloseLong(int a0, double a1, double a2, double a3, double a4, double a5, double a6, double a7, double a8, double a9);
bool CheckCloseShort(int a0, double a1, double a2, double a3, double a4, double a5, double a6, double a7, double a8, double a9);
bool CheckOpenLong(int a0, double a1, double a2, double a3, double a4, double a5, double a6, double a7, double a8);
bool CheckOpenShort(int a0, double a1, double a2, double a3, double a4, double a5, double a6, double a7, double a8);
#import */
extern int Magic = 4698523;
extern string EA_Comment = "";
extern double MaxSpread = 3.5;
extern int Slippage = 2;
int Gi_100 = 3;
int Gi_104 = 3;
extern bool StealthMode = FALSE;
bool Gi_112 = TRUE;
extern bool CloseOnlyOnProfit = FALSE;
extern bool NFA = FALSE;
extern bool No_Hedge = FALSE;
extern string CS = "==== Custom Settings ====";
extern int StopLoss = -1;
extern int TakeProfit = -1;
extern int SecureProfit = -1;
extern int SecureProfitTriger = -1;
extern bool UseCustomPair = TRUE;
extern string UseSettingsFrom = "EURUSD";
extern string MM = "==== Risk Management ====";
extern bool RecoveryMode = FALSE;
extern double FixedLots = 0.1;
extern double AutoMM = 0.0;
extern double AutoMM_Max = 20.0;
extern int MaxAccountTrades = 0;
extern string FE = "==== Monday-Friday Rules ====";
extern int MondayStartHour = 0;
extern bool FridayExit = FALSE;
extern int LastTradeHour = 19;
extern int ExitHour = 20;
extern string NF = "==== News Filter Settings ====";
extern bool Avoid_News = FALSE;
extern int GMT_Offset = 2;
extern bool DST_Usage = TRUE;
extern bool Include_Medium_News = TRUE;
extern int Wait_Before_News = 30;
extern int Wait_After_News = 30;
extern string O1="==== OPTIMIZATION PARAMETERS ====";///////////////////////////////////////////////////////////////////////////////////////////////////////////|
extern string O2="=========== DISABLED IF ============";///|EURUSD|EURUSD| EUR33 |GBPUSD|GBPUSD| GBP52 |GBP52T| GBP30 |USDJPY|USDJPY|USDCHF|USDCAD|AUDUSD|NZDUSD|
extern string O3="==== <USECUSTOMPAIR> = TRUE ====";///////|------| _new |-------|------| _new |-------|------|-------|------| _new |------|------|------|------|
extern string O4="======= Use it only for optimization ======";///|//////|///////|//////|//////|///////|//////|///////|//////|//////|//////|//////|//////|//////|
extern int iMA_Period = 75; // 1 | 75 | 75 | 75 | 75 | 75 | 75 | 75 | 75 | 85 | 85 | 70 | 65 | 75 | 45 |
extern int iMA_Filter_Open_b = 39; // 2 | 39 | 30 | 42 | 33 | 34 | 30 | 21 | 39 | 21 | 10 | 25 | 15 | 33 | 70 |
extern int iWPR_Filter_OpenSignal_b = 5; // 3 | 5 | 5 | 5 | 6 | 6 | 6 | 6 | 6 | 5 | 3 | 9 | 11 | 2 | 2 |
extern int iMA_Filter_Open_a = 15; // 4 | 15 | 17 | 42 | 12 | 12 | 12 | 3 | 13 | 5 | -14 | 8 | 5 | 13 | 14 |
extern int iWPR_Filter_OpenSignal_a = 1; // 5 | 1 | 1 | 5 | 1 | 1 | 2 | 3 | 2 | 1 | 1 | 5 | 1 | 2 | 2 |
extern int iWPR_Filter_Close = 19; // 6 | 19 | 15 | 14 | 19 | 19 | 25 | 33 | 22 | 27 | 28 | 22 | 6 | 12 | -5 |
extern int MaxLossPoints = -65; // 7 | -65 | 0 | -5 |-200 | -30 | -30 | -25 | -50 | -80 |-200 | -40 | -30 | -40 | -40 |
extern int iWPR_Period = 11; // 8 | 11 | 11 | 10 | 12 | 12 | 12 | 12 | 22 | 12 | 12 | 12 | 16 | 18 | 15 |
extern int Price_Filter_Close = 14; // 9 | 14 | 14 | 14 | 18 | 13 | 10 | 13 | 11 | 13 | 10 | 11 | 14 | 8 | 20 |
extern int SecureProfit_ = 1; // 10 | 1 | 3 | 5 | 2 | 14 | 4 | 7 | 0 | 2 | 13 | 0 | 2 | 1 | 10 |
extern int SecureProfitTriger_ = 10; // 11 | 10 | 11 | 13 | 24 | 23 | 20 | 20 | 20 | 14 | 15 | 15 | 10 | 16 | 40 |
extern int iWPR_Filter_Open_unknown = -1; // 12 | -1 | -1 | -2 | -1 | -1 | -5 | -3 | -3 | -1 | -1 | -2 | -4 | -1 | -2 |
extern int iWPR_Filter_Close_unknown = -1; // 13 | -1 | -1 | -5 | -1 | 0 | 0 | 0 | 0 | -2 | -2 | -1 | -1 | -1 | -5 |
extern int iWPR_Close_Period = 0; // 14 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
extern int FilterATR = 6; // 15 | 6 | 6 | 6 | 6 | 5 | 5 | 5 | 5 | 0 | 8 | 3 | 4 | 0 | 0 |
extern int iATR_Period = 14; // 16 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 36 | 14 | 14 | 14 | 14 |
extern int iCCI_OpenFilter = 150; // 17 | 150 | 155 | 190 | 290 | 250 | 240 | 160 | 240 |2000 | 190 | 170 | 130 | 140 | 120 |
extern int iCCI_Period = 18; // 18 | 18 | 18 | 5 | 12 | 11 | 10 | 12 | 10 | 12 | 12 | 14 | 12 | 18 | 18 |
extern int Unknown_1 = 0; // 19 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
extern int Unknown_2 = 0; // 20 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
extern int StopLoss_ = 120; // 21 | 120 | 80 | 33 | 120 | 95 | 52 | 52 | 30 | 130 | 120 | 120 | 150 | 150 | 130 |
extern int TakeProfit_ = 26; // 22 | 26 | 30 | 30 | 50 | 50 | 70 | 40 | 90 | 27 | 65 | 17 | 14 | 70 | 50 |
int Gi_260 = 50;
double Gd_264 = 25.0;
double Gd_272 = 1.1;
int p1 = 0;
int p2 = 0;
int p3 = 0;
int p4 = 0;
int p5 = 0;
int p6 = 0;
int p7 = 0;
int p8 = 0;
int p9 = 0;
int p10;
int p11;
int p12 = 0;
int p13 = 0;
int p14 = 0;
int p15 = 0;
int p16 = 0;
int p17 = 0;
int p18 = 0;
int p19 = 0;
int p20 = 0;
int p21;
int p22;
int Gi_352 = -1;
string Gs_356 = "";
bool Gi_364 = TRUE;
bool Gi_368 = FALSE;
int G_stoplevel_372 = 0;
double G_minlot_376 = 0.01;
double G_maxlot_384 = 0.01;
double G_lotstep_392 = 0.01;
int G_lotsize_400 = 100000;
double G_marginrequired_404 = 1000.0;
double Gd_412 = 0.0001;
double Gd_unused_420 = 0.1;
string Gs_428 = "";
string Gs_436 = "";
int G_datetime_444 = 0;
int G_datetime_448 = 0;
int G_datetime_452 = 0;
double Gd_unused_456 = 1.0;
int G_index_464 = 0;
int Gia_468[1000];
string Gsa_472[1000];
string Gsa_476[1000];
/*
int f0_0() {
int Li_20;
bool Li_ret_0 = TRUE;
string Ls_4 = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)";
bool Li_12 = FALSE;
int Li_16 = InternetOpenA(Ls_4, Li_12, "0", "0", 0);
if (Li_16 != 0) {
Li_20 = InternetOpenUrlA(Li_16, "", "0", 0, -2080374528, 0);
if (Li_20 == 0) Li_ret_0 = FALSE;
else InternetCloseHandle(Li_20);
InternetCloseHandle(Li_16);
} else Li_ret_0 = FALSE;
return (Li_ret_0);
}
*/
void init() {
// код доступен только после оплаты
}
int deinit() {
Comment("");
if (ObjectFind("BKGR") >= 0) ObjectDelete("BKGR");
if (ObjectFind("BKGR2") >= 0) ObjectDelete("BKGR2");
if (ObjectFind("BKGR3") >= 0) ObjectDelete("BKGR3");
if (ObjectFind("BKGR4") >= 0) ObjectDelete("BKGR4");
if (ObjectFind("LV") >= 0) ObjectDelete("LV");
if (Gi_352 != -1) Gi_352 = f0_7();
return (0);
}
int start() {
// код доступен только после оплаты
}
double price_8;
double Ld_16;
double Ld_24;
color color_32;
double lots_40;
int Li_80;
int Li_84;
int Li_92;
string Ls_96;
int ticket_172;
double price_184;
double price_192;
int Li_208;
string Ls_212;
string Ls_0 = "";
double Ld_48 = 0;
double Ld_56 = 0;
double Ld_64 = 0;
double Ld_72 = 1;
if (DayOfWeek() == 1 && iVolume(NULL, PERIOD_D1, 0) < 5.0) return (0);
if (StringLen(Symbol()) < 6) return (0);
if (Gi_364) {
Comment("\nInitializing ...");
Sleep(1000);
RefreshRates();
Gi_364 = FALSE;
Gs_428 = "";
Gs_436 = "";
G_datetime_444 = 0;
G_stoplevel_372 = MarketInfo(Symbol(), MODE_STOPLEVEL);
G_minlot_376 = MarketInfo(Symbol(), MODE_MINLOT);
G_maxlot_384 = MarketInfo(Symbol(), MODE_MAXLOT);
G_lotsize_400 = MarketInfo(Symbol(), MODE_LOTSIZE);
G_lotstep_392 = MarketInfo(Symbol(), MODE_LOTSTEP);
G_marginrequired_404 = MarketInfo(Symbol(), MODE_MARGINREQUIRED);
if (Digits <= 3) Gd_412 = 0.01;
else Gd_412 = 0.0001;
if (Digits == 3 || Digits == 5) Gd_unused_420 = 0.1;
else Gd_unused_420 = 1;
Sleep(1000);
Gi_368 = 1;//f0_0();
Sleep(1000);
if (!Gi_368) Gi_364 = TRUE;
}
if ((!IsTesting()) && IsStopped()) return (0);
if ((!IsTesting()) && !IsTradeAllowed()) return (0);
if ((!IsTesting()) && IsTradeContextBusy()) return (0);
if (IsDllsAllowed() == FALSE) {
Comment("\nWarning: Set Parameter **AllowDLL Imports** ON in menu Tools -> Options -> ExpertAdvisors.");
Print("Warning: Set Parameter **AllowDLL Imports** ON in menu Tools -> Options -> ExpertAdvisors.");
Alert("Warning: Set Parameter **AllowDLL Imports** ON in menu Tools -> Options -> ExpertAdvisors.");
Sleep(30000);
return (0);
}
if (Gi_352 <= 0) {
if (!Gi_368) {
Comment("\nInternet connection problem");
Alert("Internet connection problem");
Sleep(10000);
return (0);
}
Comment("\nUpdating settings. Please, wait! ...");
Sleep(1000);
Ls_96 = "";
Li_80 = 1440 * TimeHour(TimeLocal()) + 60 * TimeMinute(TimeLocal()) + TimeSeconds(TimeLocal()) + MathMod(AccountNumber(), 10000);
for (int Li_88 = 0; Li_88 < StringLen(Symbol()); Li_88++) {
Li_92 = StringGetChar(Symbol(), Li_88);
Li_80 += Li_92;
}
MathSrand(Li_80);
Li_84 = MathMod(MathRand(), 60);
for (int Li_104 = 1; Li_104 <= Li_84 + 1; Li_104++) {
if (Li_104 > 2) Ls_96 = Ls_96 + ".";
Comment("\nUpdating settings. Please, wait! ..." + Ls_96);
Sleep(1000);
}
Gi_352 = f0_5();
Sleep(1000);
if (Gi_352 < 0) Comment("\nInitializing ...");
}
if (Gi_352 <= 0) {
if (Gi_352 == -8) {
Comment("\nUnsupported currency pair " + Gs_356 + ", Bid: " + DoubleToStr(Bid, Digits) + ", Ask: " + DoubleToStr(Ask, Digits));
Alert("Unsupported currency pair " + Gs_356 + ", Bid: " + DoubleToStr(Bid, Digits) + ", Ask: " + DoubleToStr(Ask, Digits));
} else {
Comment("You must fill in <UseSettingsFrom> if <UseCustomPair> = true");
Comment("????????? ???? <UseSettingsFrom> ???? <UseCustomPair> = true");
Alert("You must fill in <UseSettingsFrom> if <UseCustomPair> = true");
Alert("????????? ???? <UseSettingsFrom> ???? <UseCustomPair> = true");
}
Sleep(10000);
return (0);
}
if (p1 <= 0 || p8 <= 0 || p16 <= 0 || p18 <= 0) {
Comment("\nWrong initialization parameters for pair " + Symbol());
Alert("Wrong initialization parameters for pair " + Symbol());
Sleep(10000);
return (0);
}
G_datetime_448 = iTime(NULL, PERIOD_M1, 0);
HideTestIndicators(TRUE);
double iclose_108 = iClose(NULL, PERIOD_M15, 1);
double ima_116 = iMA(NULL, PERIOD_M15, p1, 0, MODE_SMMA, PRICE_CLOSE, 1);
double iwpr_124 = iWPR(NULL, PERIOD_M15, p8, 1);
double iatr_132 = iATR(NULL, PERIOD_M15, p16, 1);
double icci_140 = iCCI(NULL, PERIOD_M15, p18, PRICE_TYPICAL, 1);
HideTestIndicators(FALSE);
double Ld_148 = 0;
if (StringSubstr(AccountCurrency(), 0, 3) == "JPY") {
Ld_148 = MarketInfo("USDJPY" + StringSubstr(Symbol(), 6), MODE_BID);
if (Ld_148 > 0.1) Ld_72 = Ld_148;
else Ld_72 = 94;
}
if (StringSubstr(AccountCurrency(), 0, 3) == "GBP") {
Ld_148 = MarketInfo("GBPUSD" + StringSubstr(Symbol(), 6), MODE_BID);
if (Ld_148 > 0.1) Ld_72 = 1 / Ld_148;
else Ld_72 = 0.6622516556;
}
if (StringSubstr(AccountCurrency(), 0, 3) == "EUR") {
Ld_148 = MarketInfo("EURUSD" + StringSubstr(Symbol(), 6), MODE_BID);
if (Ld_148 > 0.1) Ld_72 = 1 / Ld_148;
else Ld_72 = 0.78125;
}
if (AutoMM > 0.0 && (!RecoveryMode)) lots_40 = MathMax(G_minlot_376, MathMin(G_maxlot_384, MathCeil(MathMin(AutoMM_Max, AutoMM) / Ld_72 / 100.0 * AccountFreeMargin() / G_lotstep_392 / (G_lotsize_400 / 100)) * G_lotstep_392));
if (AutoMM > 0.0 && RecoveryMode) lots_40 = f0_1();
if (AutoMM == 0.0) lots_40 = FixedLots;
Ls_0 = Ls_0
+ "\n "
+ "\n "
+ "\n Authorization - OK!"
+ "\n -----------------------------------------------"
+ "\n SL = " + p21 + " pips / TP = " + p22 + " pips"
+ "\n Spread = " + DoubleToStr((Ask - Bid) / Gd_412, 1) + " pips";
if (Ask - Bid > MaxSpread * Gd_412) Ls_0 = Ls_0 + " - TOO HIGH";
else Ls_0 = Ls_0 + " - NORMAL";
Ls_0 = Ls_0
+ "\n -----------------------------------------------";
if (AutoMM > 0.0) {
Ls_0 = Ls_0
+ "\n AutoMM - ENABLED"
+ "\n Risk = " + DoubleToStr(AutoMM, 1) + "%";
}
Ls_0 = Ls_0
+ "\n Trading Lots = " + DoubleToStr(lots_40, 2);
Ls_0 = Ls_0
+ "\n -----------------------------------------------";
if (RecoveryMode) {
Ls_0 = Ls_0
+ "\n Recovery Mode - ENABLED";
} else {
Ls_0 = Ls_0
+ "\n Recovery Mode - DISABLED";
}
if (StealthMode) {
Ls_0 = Ls_0
+ "\n Stealth Mode - ENABLED";
} else {
Ls_0 = Ls_0
+ "\n Stealth Mode - DISABLED";
}
f0_2();
Ls_0 = Ls_0
+ "\n " + Gs_428;
Ls_0 = Ls_0
+ "\n -----------------------------------------------";
Comment(Ls_0);
if (ObjectFind("BKGR") < 0) {
ObjectCreate("BKGR", OBJ_LABEL, 0, 0, 0);
ObjectSetText("BKGR", "g", 110, "Webdings", LightSlateGray);
ObjectSet("BKGR", OBJPROP_CORNER, 0);
ObjectSet("BKGR", OBJPROP_BACK, TRUE);
ObjectSet("BKGR", OBJPROP_XDISTANCE, 5);
ObjectSet("BKGR", OBJPROP_YDISTANCE, 15);
}
if (ObjectFind("BKGR2") < 0) {
ObjectCreate("BKGR2", OBJ_LABEL, 0, 0, 0);
ObjectSetText("BKGR2", "g", 110, "Webdings", DimGray);
ObjectSet("BKGR2", OBJPROP_BACK, TRUE);
ObjectSet("BKGR2", OBJPROP_XDISTANCE, 5);
ObjectSet("BKGR2", OBJPROP_YDISTANCE, 60);
}
if (ObjectFind("BKGR3") < 0) {
ObjectCreate("BKGR3", OBJ_LABEL, 0, 0, 0);
ObjectSetText("BKGR3", "g", 110, "Webdings", DimGray);
ObjectSet("BKGR3", OBJPROP_CORNER, 0);
ObjectSet("BKGR3", OBJPROP_BACK, TRUE);
ObjectSet("BKGR3", OBJPROP_XDISTANCE, 5);
ObjectSet("BKGR3", OBJPROP_YDISTANCE, 45);
}
if (ObjectFind("LV") < 0) {
ObjectCreate("LV", OBJ_LABEL, 0, 0, 0);
ObjectSetText("LV", "WALL STREET ROBOT", 9, "Tahoma Bold", DarkOrange);
ObjectSet("LV", OBJPROP_CORNER, 0);
ObjectSet("LV", OBJPROP_BACK, FALSE);
ObjectSet("LV", OBJPROP_XDISTANCE, 13);
ObjectSet("LV", OBJPROP_YDISTANCE, 23);
}
if (ObjectFind("BKGR4") < 0) {
ObjectCreate("BKGR4", OBJ_LABEL, 0, 0, 0);
ObjectSetText("BKGR4", "g", 110, "Webdings", DimGray);
ObjectSet("BKGR4", OBJPROP_CORNER, 0);
ObjectSet("BKGR4", OBJPROP_BACK, TRUE);
ObjectSet("BKGR4", OBJPROP_XDISTANCE, 5);
ObjectSet("BKGR4", OBJPROP_YDISTANCE, 96);
}
if (p22 < G_stoplevel_372 * Point / Gd_412) p22 = G_stoplevel_372 * Point / Gd_412;
if (p21 < G_stoplevel_372 * Point / Gd_412) p21 = G_stoplevel_372 * Point / Gd_412;
Slippage = Slippage * Gd_412;
int count_156 = 0;
int count_160 = 0;
int count_164 = 0;
int count_168 = 0;
if (CloseOnlyOnProfit) p7 = FALSE;
for (int pos_180 = OrdersTotal() - 1; pos_180 >= 0; pos_180--) {
if (!OrderSelect(pos_180, SELECT_BY_POS, MODE_TRADES)) Print("Error in OrderSelect! Position:", pos_180);
else {
if (OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
if (OrderMagicNumber() != Magic) {
if (OrderType() == OP_BUY) count_164++;
else count_168++;
}
if (OrderMagicNumber() == Magic) {
Ld_64 += OrderProfit();
if (OrderType() == OP_BUY) Ld_48 = (Bid - OrderOpenPrice()) / Gd_412;
else Ld_48 = (OrderOpenPrice() - Ask) / Gd_412;
Ld_56 += Ld_48;
if (OrderType() == OP_BUY) {
count_156++;
if (OrderStopLoss() == 0.0 && StealthMode == FALSE) {
price_184 = NormalizeDouble(Ask - p21 * Gd_412, Digits);
price_192 = NormalizeDouble(Ask + p22 * Gd_412, Digits);
OrderModify(OrderTicket(), OrderOpenPrice(), price_184, price_192, 0, Green);
continue;
}
if (Bid >= OrderOpenPrice() + p22 * Gd_412 || Bid <= OrderOpenPrice() - p21 * Gd_412 || (f0_10(OrderOpenPrice(), iwpr_124, iclose_108, iOpen(NULL, PERIOD_M1,
1), iClose(NULL, PERIOD_M1, 1)) && TimeCurrent() - OrderOpenTime() > 180) || (FridayExit && DayOfWeek() == 5 && Hour() >= ExitHour && TimeCurrent() - OrderOpenTime() > 180)) {
for (int Li_176 = 1; Li_176 <= MathMax(1, Gi_100); Li_176++) {
RefreshRates();
if (OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid, Digits), Slippage, Violet)) {
count_156--;
break;
}
Sleep(MathMax(100, 1000 * Gi_104));
}
Sleep(5000);
continue;
}
if (!(Bid - OrderOpenPrice() > p11 * Gd_412 && MathAbs(OrderOpenPrice() + p10 * Gd_412 - OrderStopLoss()) >= Point)) continue;
OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(OrderOpenPrice() + p10 * Gd_412, Digits), OrderTakeProfit(), 0, Blue);
continue;
}
count_160++;
if (OrderStopLoss() == 0.0 && StealthMode == FALSE) {
price_184 = NormalizeDouble(Bid + p21 * Gd_412, Digits);
price_192 = NormalizeDouble(Bid - p22 * Gd_412, Digits);
OrderModify(OrderTicket(), OrderOpenPrice(), price_184, price_192, 0, Green);
continue;
}
if (Ask <= OrderOpenPrice() - p22 * Gd_412 || Ask >= OrderOpenPrice() + p21 * Gd_412 || (f0_11(OrderOpenPrice(), iwpr_124, iclose_108, iOpen(NULL, PERIOD_M1,
1), iClose(NULL, PERIOD_M1, 1)) && TimeCurrent() - OrderOpenTime() > 180) || (FridayExit && DayOfWeek() == 5 && Hour() >= ExitHour && TimeCurrent() - OrderOpenTime() > 180)) {
for (Li_176 = 1; Li_176 <= MathMax(1, Gi_100); Li_176++) {
RefreshRates();
if (OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask, Digits), Slippage, Violet)) {
count_160--;
break;
}
Sleep(MathMax(100, 1000 * Gi_104));
}
Sleep(5000);
continue;
}
if (OrderOpenPrice() - Ask > p11 * Gd_412 && MathAbs(OrderOpenPrice() - p10 * Gd_412 - OrderStopLoss()) >= Point) OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(OrderOpenPrice() - p10 * Gd_412, Digits), OrderTakeProfit(), 0, Red);
}
}
}
}
Ls_0 = Ls_0
+ "\n Account Ballance = " + DoubleToStr(AccountBalance(), 2);
if (coПоказано первые 50% кода (символов: 28541)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.