Javier Gold Scalper
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «javier gold scalper.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Javier Gold Scalper — торговый советник для MetaTrader 4, предназначенный для скальпирования на валютных парах. Советник анализирует текущие рыночные условия и открывает длинные и короткие позиции в зависимости от движения цены, заданного параметром PipsStep, с учётом ограничений по времени и спреду.
Советник поддерживает три режима управления размером позиции: фиксированный лот, расчёт на основе процентного риска от баланса и балансовое соотношение. Встроенная система трейлинг-стопа позволяет защитить прибыль, а функция тейк-профита контролирует размер дохода на каждую сделку.
Доступны механизмы защиты от убытков: закрытие всех сделок при достижении заданной процентной или фиксированной просадки с возможностью возобновления торговли на следующий день. Информационная панель на графике отображает ключевые данные об аккаунте и прибыльности.
Советник работает на основе обработчика OnTick и периодического таймера OnTimer, использует магический номер для идентификации своих ордеров и поддерживает как обычную торговлю, так и работу на демо-счёте.
Настройки программы
| Настройка | Описание |
|---|---|
| FixedLots | Фиксированный размер лота для открытия позиций при выбранном режиме Fixed |
| PercentageRiskSettings | Группа настроек процентного риска для автоматического расчёта размера лота |
| PercentageRisk | Процент риска от баланса счёта, используемый для расчёта размера лота в режиме AutoMM |
| PercentageRiskBasedOnPointsMovement | Количество пунктов движения цены, используемое в расчёте размера лота при процентном риске |
| BalanceRatioSettings | Группа настроек балансового соотношения для расчёта размера лота на основе баланса счёта |
| ForEvery | Размер баланса счёта, на каждый единичный интервал которого рассчитывается дополнительный лот в режиме BalanceRatio |
| UseLotsForEveryBalance | Размер лота, используемый на каждый единичный баланс в режиме BalanceRatio |
| LotsSelection | Группа настроек выбора метода расчёта размера лота |
| LotAssignment | Режим назначения размера лота: Fixed — фиксированный, AutoMM — процентный риск, BalanceRatio — балансовое соотношение |
| TakeProfit | Тейк-профит в пунктах для закрытия позиций |
| Tral | Расстояние трейлинг-стопа в пунктах для защиты прибыли |
| TralStart | Начальное расстояние в пунктах от цены открытия, после которого трейлинг-стоп начинает срабатывать |
| TimeStart | Час начала торговой сессии (в локальном времени сервера), в пределах которого разрешено открытие позиций |
| TimeEnd | Час окончания торговой сессии (в локальном времени сервера), в пределах которого разрешено открытие позиций |
| MaxSpread | Максимально допустимый спред в пунктах для открытия позиций; при значении 0 ограничение не действует |
| PipsStep | Шаг в пунктах, при котором советник оценивает возможность открытия новой позиции на основе изменения цены |
| OpenTime | Время в часах с последнего обновления, через которое допускается повторное открытие позиции |
| Magic | Магический номер для идентификации ордеров, управляемых советником |
| Info | Переключатель отображения информационной панели на графике |
| TextColor | Цвет основного текста в информационной панели |
| InfoDataColor | Цвет данных (значений) в информационной панели |
| FonColor | Цвет фона информационной панели на графике |
| FontSizeInfo | Размер шрифта текста в информационной панели |
| SpeedEA | Период работы внутреннего таймера советника в миллисекундах, определяющий частоту проверки рыночных условий |
| CloseTradesAtPercentageDrawdown | Переключатель для автоматического закрытия всех сделок при достижении процентной просадки от баланса |
| PercentageDrawdown | Процент просадки от баланса, при достижении которого происходит закрытие сделок |
| CloseTradesAtFixedDrawdown | Переключатель для автоматического закрытия всех сделок при достижении фиксированной просадки |
| FixedDrawdown | Значение фиксированной просадки в денежном эквиваленте, при достижении которой происходит закрытие сделок |
| ResumeTradingAtNextDayAfterDrawdown | Переключатель возобновления торговли на следующий день после закрытия сделок из-за просадки |
Поиск по коду файла
#property version "1.00"
#property strict
#import "stdlib.ex4"
string ErrorDescription(int);
#import
enum LotAss
{
Fixed = 0, // FixedLots
AutoMM = 1, // Percentage Risk
BalanceRatio = 2 // BalanceRatio
};
input double FixedLots = 0.01;
input string PercentageRiskSettings = "***************************";
input double PercentageRisk = 0.1;
input int PercentageRiskBasedOnPointsMovement = 100;
input string BalanceRatioSettings = "***************************";
input double ForEvery = 1000;
input double UseLotsForEveryBalance = 0.01;
input string LotsSelection = "***************************";
input LotAss LotAssignment = Fixed;
input int TakeProfit = 30;
input double Tral = 20;
input double TralStart = 5;
input double TimeStart = 2;
input double TimeEnd = 23;
input double MaxSpread = 40;
input double PipsStep = 35;
input int OpenTime = 1;
input int Magic = 2021;
input bool Info = true;
input color TextColor = White;
input color InfoDataColor = DodgerBlue;
input color FonColor = 0;
input int FontSizeInfo = 7;
input int SpeedEA = 50;
input bool CloseTradesAtPercentageDrawdown;
input double PercentageDrawdown = 5;
input bool CloseTradesAtFixedDrawdown;
input double FixedDrawdown = 1000;
input bool ResumeTradingAtNextDayAfterDrawdown;
bool Ib_00000;
int Ii_00004;
int returned_i;
string Is_00008;
bool returned_b;
bool Ib_00014;
string Is_00018;
int Ii_0003C;
double Gd_00000;
int Gi_00001;
int Gi_00002;
string Is_00030;
double Ind_000;
double Gd_00001;
bool Gb_00001;
int Gi_00003;
int Gi_00004;
double Gd_00003;
bool Gb_00003;
bool Ib_00078;
bool Ib_00024;
double Ind_002;
double Id_00068;
long Il_00050;
long returned_l;
double Id_00048;
long Gl_00003;
double Ind_004;
double Gd_00005;
int Gi_00006;
int Gi_00007;
double Gd_00006;
double Id_00070;
int Gi_00008;
int Gi_00009;
int Gi_0000A;
double Gd_0000B;
double Gd_0000C;
double Gd_0000D;
int Gi_0000E;
double Gd_0000E;
bool Gb_0000E;
double Gd_0000F;
int Ii_00040;
int Gi_00010;
int Gi_00011;
int Gi_00012;
double Gd_00013;
double Gd_00014;
double Gd_00015;
int Gi_00016;
double Gd_00016;
bool Gb_00016;
double Gd_00017;
int Gi_00018;
int Gi_00019;
int Gi_0001A;
long Gl_00019;
long Gl_0001B;
int Gi_0001B;
int Gi_0001C;
int Gi_0001D;
int Gi_0001E;
long Gl_0001D;
int Gi_0001F;
int Gi_00020;
int Gi_00021;
double Gd_00022;
double Gd_00023;
double Gd_00024;
int Gi_00025;
double Gd_00025;
bool Gb_00025;
double Gd_00026;
int Gi_00027;
int Gi_00028;
int Gi_00029;
double Gd_0002A;
double Gd_0002B;
double Gd_0002C;
int Gi_0002D;
double Gd_0002D;
bool Gb_0002D;
double Gd_0002E;
double Gd_0002F;
int Gi_00030;
int Gi_00031;
double Gd_00032;
int Gi_00033;
int Gi_00034;
double Gd_00033;
bool Gb_00033;
int Gi_00035;
int Gi_00036;
int Gi_00037;
int Gi_00038;
double Gd_00036;
double Gd_00039;
int Gi_0003A;
double Gd_0003A;
double Gd_0003B;
int Gi_0003C;
int Gi_0003D;
int Gi_0003E;
int Gi_0003F;
long Gl_0003E;
double Gd_00040;
int Gi_00041;
int Gi_00042;
double Gd_00041;
long Gl_00041;
double Gd_00043;
int Gi_00044;
int Gi_00045;
double Gd_00044;
long Gl_00044;
double Gd_00046;
int Gi_00047;
int Gi_00048;
long Gl_00047;
double Gd_00047;
double Gd_00049;
int Gi_0004A;
int Gi_0004B;
long Gl_0004A;
double Gd_0004A;
double Gd_0004C;
int Gi_0004D;
int Gi_0004E;
long Gl_0004D;
double Gd_0004D;
double Gd_0004F;
int Gi_00050;
int Gi_00051;
long Gl_00050;
double Gd_00050;
long Il_00028;
double Id_00058;
double Id_00060;
int Ii_0007C;
bool Ib_00080;
int Ii_00084;
int Ii_00088;
bool Gb_00000;
double Gd_00002;
bool Gb_00002;
double Gd_00004;
int Gi_00000;
long Gl_00006;
double returned_double;
bool order_check;
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
EventKillTimer();
ObjectsDeleteAll(0, 23);
ObjectsDeleteAll(0, 28);
}
void OnTick()
{
// код доступен только после оплаты
}
string tmp_str00000;
string tmp_str00001;
string tmp_str00002;
string tmp_str00003;
string tmp_str00004;
string tmp_str00005;
string tmp_str00006;
string tmp_str00007;
string tmp_str00008;
string tmp_str00009;
string tmp_str0000A;
string tmp_str0000B;
string tmp_str0000C;
string tmp_str0000D;
string tmp_str0000E;
string tmp_str0000F;
string tmp_str00010;
string tmp_str00011;
string tmp_str00012;
string tmp_str00013;
string tmp_str00014;
string tmp_str00015;
string tmp_str00016;
string tmp_str00017;
string tmp_str00018;
string tmp_str00019;
string tmp_str0001A;
string tmp_str0001B;
string tmp_str0001C;
string tmp_str0001D;
string tmp_str0001E;
string tmp_str0001F;
string tmp_str00020;
string tmp_str00021;
string tmp_str00022;
string tmp_str00023;
string tmp_str00024;
string tmp_str00025;
string tmp_str00026;
string tmp_str00027;
string tmp_str00028;
string tmp_str00029;
string tmp_str0002A;
string tmp_str0002B;
string tmp_str0002C;
string tmp_str0002D;
string tmp_str0002E;
string tmp_str0002F;
string tmp_str00030;
string tmp_str00031;
string tmp_str00032;
string tmp_str00033;
string tmp_str00034;
string tmp_str00035;
string tmp_str00036;
string tmp_str00037;
string tmp_str00038;
string tmp_str00039;
string tmp_str0003A;
string tmp_str0003B;
string tmp_str0003C;
string tmp_str0003D;
string tmp_str0003E;
bool Lb_FFFFF;
bool Lb_FFFFE;
bool Lb_FFFFD;
bool Lb_FFFFC;
double Ld_FFFF0;
if (CloseTradesAtPercentageDrawdown)
{
Gd_00000 = 0;
Gi_00001 = OrdersTotal() - 1;
Gi_00002 = Gi_00001;
if (Gi_00001 >= 0)
{
do
{
if (OrderSelect(Gi_00002, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber() == Magic && OrderSymbol() == _Symbol && OrderComment() == Is_00030)
{
Gd_00001 = (Gd_00000 + OrderProfit());
Gd_00001 = (Gd_00001 + OrderSwap());
Gd_00000 = (Gd_00001 + OrderCommission());
}
Gi_00002 = Gi_00002 - 1;
}
while (Gi_00002 >= 0);
}
Gd_00001 = -PercentageDrawdown;
if ((Gd_00000 <= (Gd_00001 * AccountBalance()) / 100))
{
tmp_str00000 = "EP Closed At Percentage Drawdown";
func_1037(tmp_str00000);
}
}
if (CloseTradesAtFixedDrawdown)
{
Gd_00001 = 0;
Gi_00003 = OrdersTotal() - 1;
Gi_00004 = Gi_00003;
if (Gi_00003 >= 0)
{
do
{
if (OrderSelect(Gi_00004, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber() == Magic && OrderSymbol() == _Symbol && OrderComment() == Is_00030)
{
Gd_00003 = (Gd_00001 + OrderProfit());
Gd_00003 = (Gd_00003 + OrderSwap());
Gd_00001 = (Gd_00003 + OrderCommission());
}
Gi_00004 = Gi_00004 - 1;
}
while (Gi_00004 >= 0);
}
Gd_00003 = -FixedDrawdown;
if ((Gd_00001 <= Gd_00003))
{
tmp_str00001 = "EP Closed At Percentage Drawdown";
func_1037(tmp_str00001);
}
}
if (Ib_00078)
{
if (!IsDemo())
return;
}
if (!Ib_00024)
{
Gd_00003 = (Ask - Bid);
Id_00068 = (Gd_00003 / _Point);
Lb_FFFFF = false;
Lb_FFFFE = false;
Lb_FFFFD = false;
Lb_FFFFC = false;
if (Il_00050 == 0)
Il_00050 = TimeCurrent();
if ((Id_00048 == 0))
Id_00048 = Bid;
Gl_00003 = OpenTime;
Gl_00003 = Il_00050 + Gl_00003;
if (Gl_00003 < TimeCurrent())
{
Il_00050 = TimeCurrent();
Id_00048 = Bid;
}
Gl_00003 = OpenTime;
Gl_00003 = Il_00050 + Gl_00003;
if (Gl_00003 >= TimeCurrent())
{
Gd_00003 = (PipsStep * _Point);
if (((Bid - Gd_00003) >= Id_00048))
Lb_FFFFF = true;
}
Gl_00003 = OpenTime;
Gl_00003 = Il_00050 + Gl_00003;
if (Gl_00003 >= TimeCurrent() && PipsStep * _Point + Bid <= Id_00048)
Lb_FFFFD = true;
if (TimeHour(TimeCurrent()) >= TimeStart && TimeHour(TimeCurrent()) < TimeEnd)
{
if (MaxSpread == 0 || MaxSpread >= Id_00068)
{
if (Lb_FFFFF)
Lb_FFFFE = true;
}
if (MaxSpread == 0 || MaxSpread >= Id_00068)
{
if (Lb_FFFFD)
Lb_FFFFC = true;
}
}
Gi_00003 = -1;
Gd_00005 = 0;
Gi_00006 = OrdersTotal() - 1;
Gi_00007 = Gi_00006;
if (Gi_00006 >= 0)
{
do
{
if (OrderSelect(Gi_00007, SELECT_BY_POS, MODE_TRADES) && _Symbol == OrderSymbol() && OrderMagicNumber() == Magic)
{
if (OrderType() == Gi_00003 || Gi_00003 == -1)
{
Gd_00006 = OrderProfit();
Gd_00006 = (Gd_00006 + OrderSwap());
Gd_00005 = ((Gd_00006 + OrderCommission()) + Gd_00005);
}
}
Gi_00007 = Gi_00007 - 1;
}
while (Gi_00007 >= 0);
}
Id_00070 = (Gd_00005 / (AccountBalance() / 100));
Gi_00006 = -1;
Gi_00008 = 0;
Gi_00009 = OrdersTotal() - 1;
Gi_0000A = Gi_00009;
if (Gi_00009 >= 0)
{
do
{
if (OrderSelect(Gi_0000A, SELECT_BY_POS, MODE_TRADES) && _Symbol == OrderSymbol() && Magic == OrderMagicNumber())
{
if (Gi_00006 == -1 || OrderType() == Gi_00006)
Gi_00008 = Gi_00008 + 1;
}
Gi_0000A = Gi_0000A - 1;
}
while (Gi_0000A >= 0);
}
if (Gi_00008 == 0 && Lb_FFFFC)
{
tmp_str00002 = _Symbol;
Gd_0000C = FixedLots;
if (LotAssignment == 1)
{
Gd_0000D = (PercentageRisk * AccountBalance());
Gi_0000E = PercentageRiskBasedOnPointsMovement * 100;
Gd_0000E = (Gd_0000D / (Gi_0000E * MarketInfo(tmp_str00002, MODE_TICKVALUE)));
Gd_0000C = Gd_0000E;
if ((Gd_0000E < MarketInfo(tmp_str00002, MODE_MINLOT)))
Gd_0000C = MarketInfo(tmp_str00002, MODE_MINLOT);
}
else if (LotAssignment == 2)
{
Gd_0000E = floor((AccountBalance() / ForEvery));
Gd_0000C = (Gd_0000E * 0.01);
}
Gd_0000E = floor((Gd_0000C / MarketInfo(tmp_str00002, MODE_MINLOT)));
Gd_0000E = (Gd_0000E * MarketInfo(tmp_str00002, MODE_MINLOT));
Gd_0000C = Gd_0000E;
returned_double = MarketInfo(tmp_str00002, MODE_MINLOT);
Gd_0000F = Gd_0000E;
if (Gd_0000E <= returned_double)
Gd_0000E = returned_double;
else
Gd_0000E = Gd_0000F;
Gd_0000C = Gd_0000E;
returned_double = MarketInfo(tmp_str00002, MODE_MAXLOT);
Gd_0000F = Gd_0000E;
if (Gd_0000E >= returned_double)
Gd_0000E = returned_double;
else
Gd_0000E = Gd_0000F;
Gd_0000C = Gd_0000E;
Ii_00040 = OrderSend(_Symbol, 1, Gd_0000E, Bid, 5, 0, 0, Is_00030, Magic, 0, 255);
}
Gi_0000E = -1;
Gi_00010 = 0;
Gi_00011 = OrdersTotal() - 1;
Gi_00012 = Gi_00011;
if (Gi_00011 >= 0)
{
do
{
if (OrderSelect(Gi_00012, SELECT_BY_POS, MODE_TRADES) && _Symbol == OrderSymbol() && Magic == OrderMagicNumber())
{
if (Gi_0000E == -1 || OrderType() == Gi_0000E)
Gi_00010 = Gi_00010 + 1;
}
Gi_00012 = Gi_00012 - 1;
}
while (Gi_00012 >= 0);
}
if (Gi_00010 == 0 && Lb_FFFFE)
{
tmp_str00003 = _Symbol;
Gd_00014 = FixedLots;
if (LotAssignment == 1)
{
Gd_00015 = (PercentageRisk * AccountBalance());
Gi_00016 = PercentageRiskBasedOnPointsMovement * 100;
Gd_00016 = (Gd_00015 / (Gi_00016 * MarketInfo(tmp_str00003, MODE_TICKVALUE)));
Gd_00014 = Gd_00016;
if ((Gd_00016 < MarketInfo(tmp_str00003, MODE_MINLOT)))
{
Gd_00014 = MarketInfo(tmp_str00003, MODE_MINLOT);
}
}
else if (LotAssignment == 2)
{
Gd_00016 = floor((AccountBalance() / ForEvery));
Gd_00014 = (Gd_00016 * 0.01);
}
Gd_00016 = floor((Gd_00014 / MarketInfo(tmp_str00003, MODE_MINLOT)));
Gd_00016 = (Gd_00016 * MarketInfo(tmp_str00003, MODE_MINLOT));
Gd_00014 = Gd_00016;
returned_double = MarketInfo(tmp_str00003, MODE_MINLOT);
Gd_00017 = Gd_00016;
if (Gd_00016 <= returned_double)
Gd_00016 = returned_double;
else
Gd_00016 = Gd_00017;
Gd_00014 = Gd_00016;
returned_double = MarketInfo(tmp_str00003, MODE_MAXLOT);
Gd_00017 = Gd_00016;
if (Gd_00016 >= returned_double)
Gd_00016 = returned_double;
else
Gd_00016 = Gd_00017;
Gd_00014 = Gd_00016;
Ii_00040 = OrderSend(_Symbol, 0, Gd_00016, Ask, 5, 0, 0, Is_00030, Magic, 0, 32768);
}
Gi_00016 = -1;
Gi_00018 = 0;
Gi_00019 = OrdersTotal() - 1;
Gi_0001A = Gi_00019;
if (Gi_00019 >= 0)
{
do
{
if (OrderSelect(Gi_0001A, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber() == Magic)
{
if (Gi_00016 == -1 || OrderType() == Gi_00016)
Gi_00018 = Gi_00018 + 1;
}
Gi_0001A = Gi_0001A - 1;
}
while (Gi_0001A >= 0);
}
Gl_00019 = AccountInfoInteger(ACCOUNT_LIMIT_ORDERS);
Gl_0001B = Gi_00018;
if (Gl_0001B < Gl_00019 || AccountInfoInteger(ACCOUNT_LIMIT_ORDERS) == 0)
{
Gi_0001B = -1;
Gi_0001C = 0;
Gi_0001D = OrdersTotal() - 1;
Gi_0001E = Gi_0001D;
if (Gi_0001D >= 0)
{
do
{
if (OrderSelect(Gi_0001E, SELECT_BY_POS, MODE_TRADES) && _Symbol == OrderSymbol() && OrderMagicNumber() == Magic)
{
Gl_0001D = OrderOpenTime();
if (Gl_0001D >= iTime(_Symbol, 0, 0))
{
if (Gi_0001B == -1 || OrderType() == Gi_0001B)
Gi_0001C = Gi_0001C + 1;
}
}
Gi_0001E = Gi_0001E - 1;
}
while (Gi_0001E >= 0);
}
if (Gi_0001C == 0)
{
Gi_0001D = 0;
Gi_0001F = 0;
Gi_00020 = OrdersTotal() - 1;
Gi_00021 = Gi_00020;
if (Gi_00020 >= 0)
{
do
{
if (OrderSelect(Gi_00021, SELECT_BY_POS, MODE_TRADES) && _Symbol == OrderSymbol() && Magic == OrderMagicNumber())
{
if (Gi_0001D == -1 || OrderType() == Gi_0001D)
Gi_0001F = Gi_0001F + 1;
}
Gi_00021 = Gi_00021 - 1;
}
while (Gi_00021 >= 0);
}
if (Gi_0001F > 0 && Lb_FFFFE)
{
tmp_str00004 = _Symbol;
Gd_00023 = FixedLots;
if (LotAssignment == 1)
{
Gd_00024 = (PercentageRisk * AccountBalance());
Gi_00025 = PercentageRiskBasedOnPointsMovement * 100;
Gd_00025 = (Gd_00024 / (Gi_00025 * MarketInfo(tmp_str00004, MODE_TICKVALUE)));
Gd_00023 = Gd_00025;
if ((Gd_00025 < MarketInfo(tmp_str00004, MODE_MINLOT)))
Gd_00023 = MarketInfo(tmp_str00004, MODE_MINLOT);
}
else if (LotAssignment == 2)
{
Gd_00025 = floor((AccountBalance() / ForEvery));
Gd_00023 = (Gd_00025 * 0.01);
}
Gd_00025 = floor((Gd_00023 / MarketInfo(tmp_str00004, MODE_MINLOT)));
Gd_00025 = (Gd_00025 * MarketInfo(tmp_str00004, MODE_MINLOT));
Gd_00023 = Gd_00025;
returned_double = MarketInfo(tmp_str00004, MODE_MINLOT);
Gd_00026 = Gd_00025;
if (Gd_00025 <= returned_double)
Gd_00025 = returned_double;
else
Gd_00025 = Gd_00026;
Gd_00023 = Gd_00025;
returned_double = MarketInfo(tmp_str00004, MODE_MAXLOT);
Gd_00026 = Gd_00025;
if (Gd_00025 >= returned_double)
Gd_00025 = returned_double;
else
Gd_00025 = Gd_00026;
Gd_00023 = Gd_00025;
Ii_00040 = OrderSend(_Symbol, 0, Gd_00025, Ask, 10, 0, 0, Is_00030, Magic, 0, 32768);
}
Gi_00025 = 1;
Gi_00027 = 0;
Gi_00028 = OrdersTotal() - 1;
Gi_00029 = Gi_00028;
if (Gi_00028 >= 0)
{
do
{
if (OrderSelect(Gi_00029, SELECT_BY_POS, MODE_TRADES) && _Symbol == OrderSymbol() && Magic == OrderMagicNumber())
{
if (Gi_00025 == -1 || OrderType() == Gi_00025)
Gi_00027 = Gi_00027 + 1;
}
Gi_00029 = Gi_00029 - 1;
}
while (Gi_00029 >= 0);
}
if (Gi_00027 > 0 && Lb_FFFFC)
{
tmp_str00005 = _Symbol;
Gd_0002B = FixedLots;
if (LotAssignment == 1)
{
Gd_0002C = (PercentageRisk * AccountBalance());
Gi_0002D = PercentageRiskBasedOnPointsMovement * 100;
Gd_0002D = (Gd_0002C / (Gi_0002D * MarketInfo(tmp_str00005, MODE_TICKVALUE)));
Gd_0002B = Gd_0002D;
if ((Gd_0002D < MarketInfo(tmp_str00005, MODE_MINLOT)))
Gd_0002B = MarketInfo(tmp_str00005, MODE_MINLOT);
}
else if (LotAssignment == 2)
{
Gd_0002D = floor((AccountBalance() / ForEvery));
Gd_0002B = (Gd_0002D * 0.01);
}
Gd_0002D = floor((Gd_0002B / MarketInfo(tmp_str00005, MODE_MINLOT)));
Gd_0002D = (Gd_0002D * MarketInfo(tmp_str00005, MODE_MINLOT));
Gd_0002B = Gd_0002D;
returned_double = MarketInfo(tmp_str00005, MODE_MINLOT);
Gd_0002E = Gd_0002D;
if (Gd_0002D <= returned_double)
Gd_0002D = returned_double;
else
Gd_0002D = Gd_0002E;
Gd_0002B = Gd_0002D;
returned_double = MarketInfo(tmp_str00005, MODE_MAXLOT);
Gd_0002E = Gd_0002D;
if (Gd_0002D >= returned_double)
Gd_0002D = returned_double;
else
Gd_0002D = Gd_0002E;
Gd_0002B = Gd_0002D;
Ii_00040 = OrderSend(_Symbol, 1, Gd_0002D, Bid, 10, 0, 0, Is_00030, Magic, 0, 255);
}
}
}
Gi_0002D = -1;
Gd_0002F = 0;
Gi_00030 = OrdersTotal() - 1;
Gi_00031 = Gi_00030;
if (Gi_00030 >= 0)
{
do
{
if (OrderSelect(Gi_00031, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber() == Magic)
{
if (OrderType() == Gi_0002D || Gi_0002D == -1)
Gd_0002F = (Gd_0002F + OrderLots());
}
Gi_00031 = Gi_00031 - 1;
}
while (Gi_00031 >= 0);
}
Ld_FFFF0 = (Gd_0002F * TakeProfit);
Gi_00030 = -1;
Gd_00032 = 0;
Gi_00033 = OrdersTotal() - 1;
Gi_00034 = Gi_00033;
if (Gi_00033 >= 0)
{
do
{
if (OrderSelect(Gi_00034, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber() == Magic)
{
if (OrderType() == Gi_00030 || Gi_00030 == -1)
{
Gd_00033 = OrderProfit();
Gd_00033 = (Gd_00033 + OrderSwap());
Gd_00032 = ((Gd_00033 + OrderCommission()) + Gd_00032);
}
}
Gi_00034 = Gi_00034 - 1;
}
while (Gi_00034 >= 0);
}
if ((Gd_00032 >= Ld_FFFF0) && (Ld_FFFF0 != 0))
{
Gi_00033 = -1;
Gi_00035 = 0;
Gi_00036 = OrdersTotal() - 1;
Gi_00037 = Gi_00036;
if (Gi_00036 >= 0)
{
do
{
if (OrderSelect(Gi_00037, SELECT_BY_POS, MODE_TRADES) && _Symbol == OrderSymbol() && Magic == OrderMagicNumber())
{
if (Gi_00033 == -1 || OrderType() == Gi_00033)
Gi_00035 = Gi_00035 + 1;
}
Gi_00037 = Gi_00037 - 1;
}
while (Gi_00037 >= 0);
}
if (Gi_00035 > 1)
{
Gi_00036 = OrdersTotal() - 1;
Gi_00038 = Gi_00036;
if (Gi_00036 >= 0)
{
do
{
if (OrderSelect(Gi_00038, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber() == Magic)
{
if (OrderType() == OP_BUY)
{
RefreshRates();
tmp_str00006 = OrderSymbol();
order_check = OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(MarketInfo(tmp_str00006, MODE_BID), _Digits), 10, 16777215);
}
else if (OrderType() == OP_SELL)
{
RefreshRates();
tmp_str00007 = OrderSymbol();
order_check = OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(MarketInfo(tmp_str00007, MODE_ASK), _Digits), 10, 16777215);
}
}
Gi_00038 = Gi_00038 - 1;
}
while (Gi_00038 >= 0);
}
}
}
Gi_0003C = -1;
Gi_0003D = 0;
Gi_0003E = OrdersTotal() - 1;
Gi_0003F = Gi_0003E;
if (Gi_0003E >= 0)
{
do
{
if (OrderSelect(Gi_0003F, SELECT_BY_POS, MODE_TRADES) && _Symbol == OrderSymbol() && Magic == OrderMagicNumber())
{
if (Gi_0003C == -1 || OrderType() == Gi_0003C)
Gi_0003D = Gi_0003D + 1;
}
Gi_0003F = Gi_0003F - 1;
}
while (Gi_0003F >= 0);
}
if (Gi_0003D == 1)
func_1018();
if (!Info)
return;
tmp_str00008 = "INFO_fon";
if (ObjectCreate(0, tmp_str00008, OBJ_RECTANGLE_LABEL, 0, 0, 0))
{
ObjectSetInteger(0, tmp_str00008, 102, 220);
ObjectSetInteger(0, tmp_str00008, 103, 20);
ObjectSetInteger(0, tmp_str00008, 1019, 200);
ObjectSetInteger(0, tmp_str00008, 1020, 225);
ObjectSetInteger(0, tmp_str00008, 1025, FonColor);
ObjectSetInteger(0, tmp_str00008, 1029, 2);
ObjectSetInteger(0, tmp_str00008, 101, 1);
ObjectSetInteger(0, tmp_str00008, 6, 16711680);
ObjectSetInteger(0, tmp_str00008, 8, 1);
ObjectSetInteger(0, tmp_str00008, 9, 0);
ObjectSetInteger(0, tmp_str00008, 208, 0);
}
tmp_str00009 = "";
tmp_str0000A = "INFO_LOGO";
ObjectCreate(0, tmp_str0000A, OBJ_LABEL, 0, 0, 0);
ObjectSetInteger(0, tmp_str0000A, 102, 165);
ObjectSetInteger(0, tmp_str0000A, 103, 24);
ObjectSetInteger(0, tmp_str0000A, 101, 1);
ObjectSetString(0, tmp_str0000A, 999, tmp_str00009);
ObjectSetString(0, tmp_str0000A, 1001, "Arial");
ObjectSetInteger(0, tmp_str0000A, 100, FontSizeInfo);
ObjectSetInteger(0, tmp_str0000A, 6, TextColor);
ObjectSetInteger(0, tmp_str0000A, 208, 0);
ObjectSetInteger(0, tmp_str0000A, 9, 0);
tmp_str0000B = "___________________________";
tmp_str0000C = "INFO_Line";
ObjectCreate(0, tmp_str0000C, OBJ_LABEL, 0, 0, 0);
ObjectSetInteger(0, tmp_str0000C, 102, 215);
ObjectSetInteger(0, tmp_str0000C, 103, 27);
ObjectSetInteger(0, tmp_str0000C, 101, 1);
ObjectSetString(0, tmp_str0000C, 999, tmp_str0000B);
ObjectSetString(0, tmp_str0000C, 1001, "Arial");
ObjectSetInteger(0, tmp_str0000C, 100, FontSizeInfo);
ObjectSetInteger(0, tmp_str0000C, 6, TextColor);
ObjectSetInteger(0, tmp_str0000C, 208, 0);
ObjectSetInteger(0, tmp_str0000C, 9, 0);
tmp_str0000D = "Account information";
tmp_str0000E = "INFO_txt1";
ObjectCreate(0, tmp_str0000E, OBJ_LABEL, 0, 0, 0);
ObjectSetIntegerПоказано первые 50% кода (символов: 34899)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.