wallstreetforexrobot_v4.6_nodll.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «wallstreetforexrobot_v4.6_nodll.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Торговый советник для платформы MetaTrader 4 на языке MQL4. Советник выполняет анализ ценовых данных и технических индикаторов, управляет позициями через торговый API MetaTrader 4, а также загружает и обрабатывает данные экономического календаря для фильтрации сделок вокруг новостных событий. Поддерживает ручную и автоматическую расчёт лотности, стоп-лосс и тейк-профит, трейлинг-стоп, а также ограничения по спреду, проскальзыванию и часовым зонам торговли.
Настройки программы
| Настройка | Описание |
|---|---|
| Magic | Магический номер — Уникальный идентификатор ордеров, открываемых советником. |
| EA_Comment | Комментарий к ордерам — Текстовый комментарий, добавляемый к каждому открываемому ордеру. |
| MaxSpread | Максимальный спред — Допустимый максимальный спред в пунктах для исполнения сделок. |
| Slippage | Проскальзывание — Максимально допустимое проскальзывание в пунктах при открытии и закрытии ордеров. |
| StealthMode | Стелс-режим — Включает режим скрытого управления ордерами без отображения стоп-лосс и тейк-профит на уровне рынка. |
| CloseOnlyOnProfit | Закрытие только в прибыли — Разрешает закрытие позиций только при наличии положительной прибыли. |
| NFA | NFA-ограничения — Включает ограничения в соответствии с правилами NFA (запрет хеджирования и FIFO). |
| No_Hedge | Без хеджирования — Запрещает открытие встречных позиций по одному инструменту. |
| CS | Настройки секции — Разделительный заголовок группы пользовательских настроек. |
| StopLoss | Стоп-лосс — Стоп-лосс в пунктах; значение -1 отключает фиксированный стоп-лосс. |
| TakeProfit | Тейк-профит — Тейк-профит в пунктах; значение -1 отключает фиксированный тейк-профит. |
| SecureProfit | Фиксация прибыли — Уровень в пунктах для активации фиксации части прибыли. |
| SecureProfitTriger | Триггер фиксации — Дистанция в пунктах от цены входа, при достижении которой срабатывает фиксация прибыли. |
| UseCustomPair | Использовать пользовательскую пару — Включает загрузку настроек из указанного базового инструмента вместо текущего символа. |
| UseSettingsFrom | Источник настроек — Имя базовой валютной пары, из которой загружаются параметры оптимизации. |
| MM | Управление рисками — Разделительный заголовок группы настроек управления рисками. |
| RecoveryMode | Режим восстановления — Включает специальный алгоритм расчёта лотности при восстановлении после убытков. |
| FixedLots | Фиксированный лот — Фиксированный размер лота для сделок при отключённом автоматическом управлении. |
| AutoMM | Автоматическое управление — Процент риска от свободного маржи для автоматического расчёта размера лота. |
| AutoMM_Max | Максимальный лот авто-MM — Верхний предел размера лота при автоматическом управлении рисками. |
| FE | Правила торговли — Разделительный заголовок группы настроек торговых временных ограничений. |
| MondayStartHour | Час начала в понедельник — Час начала торговой сессии в понедельник (по GMT). |
| FridayExit | Выход в пятницу — Включает автоматическое закрытие всех позиций в пятницу. |
| LastTradeHour | Последний час торговли — Последний час, в котором советник может открывать новые сделки. |
| ExitHour | Час закрытия — Час, к которому все позиции закрываются в пятницу. |
| NF | Настройки фильтра новостей — Разделительный заголовок группы настроек фильтрации новостей. |
| Avoid_News | Избегать новостей — Включает фильтрацию сделок вокруг выходов экономических новостей. |
| GMT_Offset | Смещение GMT — Часовой сдвиг GMT для расчёта времени новостных событий. |
| DST_Usage | Использовать летнее время — Автоматически учитывает переход на летнее время при расчёте смещения. |
| Include_Medium_News | Включать средние новости — Включает в фильтрацию новости со средним экономическим влиянием. |
| Wait_Before_News | Ожидание перед новостью — Количество минут ожидания перед новостным событием перед возобновлением торгов. |
| Wait_After_News | Ожидание после новости — Количество минут ожидания после новостного события перед возобновлением торгов. |
| //////////////////////////////////////////////////////////////////////////////////////////////////// (O1) | Заголовок оптимизации — Текстовый заголовок раздела параметров оптимизации. |
| /|EURUSD|EURUSD| EUR33 |GBPUSD|GBPUSD| GBP52 |GBP52T| GBP30 |USDJPY|USDJPY|USDCHF|USDCAD|AUDUSD|NZDU (O2) | Маппинг пар — Текстовый заголовок, показывающий соответствие пар для отключения параметров. |
| /////|------| _new |-------|------| _new |-------|------|-------|------| _new |------|------|------| (O3) | Примечание к настройкам — Текстовая подсказка о применении настроек при UseCustomPair = true. |
| /|//////|///////|//////|//////|///////|//////|///////|//////|//////|//////|//////|//////|//////| (O4) | Примечание об оптимизации — Текстовая подсказка о том, что параметры предназначены только для оптимизации. |
| 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 — Параметр фильтра MA для условий открытия позиции в одну сторону. |
| 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 — Параметр фильтра MA для условий открытия позиции в другую сторону. |
| 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-фильтр закрытия — Параметр фильтра WPR для условий закрытия позиции. |
| 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_) | Фиксация прибыли пары — Уровень фиксации прибыли в пунктах для конкретной пары. |
| 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-фильтр открытия unknown — Дополнительный параметр WPR-фильтра для условий открытия. |
| 13 | -1 | -1 | -5 | -1 | 0 | 0 | 0 | 0 | -2 | -2 | -1 | -1 | -1 | -5 | (iWPR_Filter_Close_unknown) | WPR-фильтр закрытия unknown — Дополнительный параметр WPR-фильтра для условий закрытия. |
| 14 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | (iWPR_Close_Period) | Период WPR закрытия — Период WPR, используемый при фильтрации закрытия позиций. |
| 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 — Период индикатора Average True Range, используемого в фильтрах. |
| 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 — Период индикатора Commodity Channel Index. |
| 19 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | (Unknown_1) | Неизвестный параметр 1 — Внутренний параметр с нулевым значением по умолчанию. |
| 20 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | (Unknown_2) | Неизвестный параметр 2 — Внутренний параметр с нулевым значением по умолчанию. |
| 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_) | Тейк-профит пары — Тейк-профит в пунктах для конкретной пары. |
Поиск по коду файла
#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;
double Gd_448 = 1.0;
int G_datetime_456 = 0;
int G_datetime_460 = 0;
double Gd_unused_464 = 1.0;
int G_index_472 = 0;
int Gia_476[1000];
string Gsa_480[1000];
string Gsa_484[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_72;
int Li_76;
int Li_84;
string Ls_88;
int ticket_164;
double price_176;
double price_184;
int Li_200;
string Ls_204;
string Ls_0 = "";
double Ld_48 = 0;
double Ld_56 = 0;
double Ld_64 = 0;
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_88 = "";
Li_72 = 1440 * TimeHour(TimeLocal()) + 60 * TimeMinute(TimeLocal()) + TimeSeconds(TimeLocal()) + MathMod(AccountNumber(), 10000);
for (int Li_80 = 0; Li_80 < StringLen(Symbol()); Li_80++) {
Li_84 = StringGetChar(Symbol(), Li_80);
Li_72 += Li_84;
}
MathSrand(Li_72);
Li_76 = MathMod(MathRand(), 60);
for (int Li_96 = 1; Li_96 <= Li_76 + 1; Li_96++) {
if (Li_96 > 2) Ls_88 = Ls_88 + ".";
Comment("\nUpdating settings. Please, wait! ..." + Ls_88);
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);
}
if (G_datetime_456 == iTime(NULL, PERIOD_M1, 0)) return (0);
G_datetime_456 = iTime(NULL, PERIOD_M1, 0);
HideTestIndicators(TRUE);
double iclose_100 = iClose(NULL, PERIOD_M15, 1);
double ima_108 = iMA(NULL, PERIOD_M15, p1, 0, MODE_SMMA, PRICE_CLOSE, 1);
double iwpr_116 = iWPR(NULL, PERIOD_M15, p8, 1);
double iatr_124 = iATR(NULL, PERIOD_M15, p16, 1);
double icci_132 = iCCI(NULL, PERIOD_M15, p18, PRICE_TYPICAL, 1);
HideTestIndicators(FALSE);
double Ld_140 = 0;
if (StringSubstr(AccountCurrency(), 0, 3) == "JPY") {
Ld_140 = MarketInfo("USDJPY" + StringSubstr(Symbol(), 6), MODE_BID);
if (Ld_140 > 0.1) Gd_448 = Ld_140;
else Gd_448 = 94;
}
if (StringSubstr(AccountCurrency(), 0, 3) == "GBP") {
Ld_140 = MarketInfo("GBPUSD" + StringSubstr(Symbol(), 6), MODE_BID);
if (Ld_140 > 0.1) Gd_448 = 1 / Ld_140;
else Gd_448 = 0.6622516556;
}
if (StringSubstr(AccountCurrency(), 0, 3) == "EUR") {
Ld_140 = MarketInfo("EURUSD" + StringSubstr(Symbol(), 6), MODE_BID);
if (Ld_140 > 0.1) Gd_448 = 1 / Ld_140;
else Gd_448 = 0.78125;
}
if (AutoMM > 0.0 && (!RecoveryMode)) lots_40 = MathMax(G_minlot_376, MathMin(G_maxlot_384, MathCeil(MathMin(AutoMM_Max, AutoMM) / Gd_448 / 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_148 = 0;
int count_152 = 0;
int count_156 = 0;
int count_160 = 0;
if (CloseOnlyOnProfit) p7 = FALSE;
for (int pos_172 = OrdersTotal() - 1; pos_172 >= 0; pos_172--) {
if (!OrderSelect(pos_172, SELECT_BY_POS, MODE_TRADES)) Print("Error in OrderSelect! Position:", pos_172);
else {
if (OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
if (OrderMagicNumber() != Magic) {
if (OrderType() == OP_BUY) count_156++;
else count_160++;
}
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_148++;
if (OrderStopLoss() == 0.0 && StealthMode == FALSE) {
price_176 = NormalizeDouble(Ask - p21 * Gd_412, Digits);
price_184 = NormalizeDouble(Ask + p22 * Gd_412, Digits);
OrderModify(OrderTicket(), OrderOpenPrice(), price_176, price_184, 0, Green);
continue;
}
if (Bid >= OrderOpenPrice() + p22 * Gd_412 || Bid <= OrderOpenPrice() - p21 * Gd_412 || (f0_10(OrderOpenPrice(), iwpr_116, iclose_100, iOpen(NULL, PERIOD_M1,
1), iClose(NULL, PERIOD_M1, 1)) && TimeCurrent() - OrderOpenTime() > 180) || (FridayExit && DayOfWeek() == 5 && Hour() >= ExitHour && TimeCurrent() - OrderOpenTime() > 180)) {
for (int Li_168 = 1; Li_168 <= MathMax(1, Gi_100); Li_168++) {
RefreshRates();
if (OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid, Digits), Slippage, Violet)) {
count_148--;
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_152++;
if (OrderStopLoss() == 0.0 && StealthMode == FALSE) {
price_176 = NormalizeDouble(Bid + p21 * Gd_412, Digits);
price_184 = NormalizeDouble(Bid - p22 * Gd_412, Digits);
OrderModify(OrderTicket(), OrderOpenPrice(), price_176, price_184, 0, Green);
continue;
}
if (Ask <= OrderOpenPrice() - p22 * Gd_412 || Ask >= OrderOpenPrice() + p21 * Gd_412 || (f0_11(OrderOpenPrice(), iwpr_116, iclose_100, iOpen(NULL, PERIOD_M1,
1), iClose(NULL, PERIOD_M1, 1)) && TimeCurrent() - OrderOpenTime() > 180) || (FridayExit && DayOfWeek() == 5 && Hour() >= ExitHour && TimeCurrent() - OrderOpenTime() > 180)) {
for (Li_168 = 1; Li_168 <= MathMax(1, Gi_100); Li_168++) {
RefreshRates();
if (OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask, Digits), Slippage, Violet)) {
count_152--;
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 (count_148 == 0 && count_152 == 0) {
Ls_0 = Ls_0
+ "\n No active traПоказано первые 50% кода (символов: 28681)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.