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

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 и перейдите к оплате.

Стоимость полного кода
2 868,10₽ ≈ $35.05