forex_scalp_ea.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «forex_scalp_ea.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торговый советник для платформы MetaTrader 4, предназначенный для выполнения скальпинговых операций на валютном рынке. Советник обрабатывает ценовые данные по каждому тику и формирует торговые сигналы на основе комбинации технических индикаторов.
Программа поддерживает два режима управления денежными средствами: фиксированный размер лота и риск-менеджмент на основе процента от маржи. Она способна открывать длинные и короткие позиции, устанавливать стоп-лосс и тейк-профит, а также закрывать ордера при появлении обратного сигнала.
Встроенные фильтры включают ограничение по времени торговли (в GMT), проверку максимального спреда и проскальзывания. Также реализована проверка лицензии перед запуском торговых операций.
Настройки программы
| Настройка | Описание |
|---|---|
| RobotName | Имя советника — Имя советника, используемое в комментариях к ордерам |
| License | Лицензия — Числовой код лицензии для проверки при запуске |
| BrokerSettings | Настройки брокера — Текстовый параметр, содержащий описание настроек брокера |
| MaxSpread | Максимальный спред — Допустимый максимальный спред для открытия позиций |
| MaxSlippage | Максимальное проскальзывание — Допустимое максимальное проскальзывание цены при выполнении ордеров |
| TradingTimes | Время торговли — Текстовый параметр, описывающий временной диапазон торговли |
| HourStart | Начало торговых часов — Начальный час торговой сессии (GMT) |
| HourEnd | Конец торговых часов — Конечный час торговой сессии (GMT) |
| MoneyManagement | Управление капиталом — Текстовый параметр, описывающий режим управления денежными средствами |
| Lots | Размер лота — Фиксированный размер лота для открытия позиций |
| UseRisk | Использовать риск-менеджмент — Переключатель, определяющий использование риск-менеджмента вместо фиксированного лота |
| MaxRisk | Максимальный риск — Процент риска, используемый при расчёте лота в режиме риск-менеджмента |
| OrderManagement | Управление ордерами — Текстовый параметр, описывающий настройки управления ордерами |
| StopLoss | Стоп-лосс — Уровень стоп-лосса в пунктах для открытых позиций |
| TakeProfit | Тейк-профит — Уровень тейк-профита в пунктах для открытых позиций |
Поиск по коду файла
#property version "";
#property strict
#import "stdlib.ex4"
string ErrorDescription(int);
#import
extern string RobotName = "Forex Scalping EA";
extern long License = 12345;
extern string BrokerSettings = "Maximum Spread & Slippage";
extern double MaxSpread = 5;
extern double MaxSlippage = 5;
extern string TradingTimes = "20-22 GMT";
extern int HourStart = 20;
extern int HourEnd = 22;
extern string MoneyManagement = "If Risk False Use Lots";
extern double Lots = 0.1;
extern bool UseRisk;
extern double MaxRisk = 2;
extern string OrderManagement = "Manage Orders";
extern int StopLoss = 50;
extern int TakeProfit = 100;
int Ii_001C;
double Id_0028;
int returned_i;
long Gl_0000;
long returned_l;
bool Ib_0008;
double Id_0000;
string Is_0010;
int Ii_0020;
int Ii_0024;
int Ii_0030;
int Ii_0034;
int Ii_0038;
int Gi_0001;
long Gl_0002;
int Gi_0003;
int Gi_0004;
int Gi_0005;
int Gi_0006;
int Gi_0007;
int Gi_0008;
int Gi_0009;
long Gl_000A;
bool Gb_000A;
double Ind_000;
double Gd_000A;
bool returned_b;
int Gi_000B;
int Gi_000A;
int Gi_000C;
int Gi_000D;
double Gd_000E;
double Gd_000F;
int Gi_0010;
bool Gb_0010;
double Gd_0010;
long Gl_0010;
int Gi_0011;
int Gi_0012;
int Gi_0013;
double Gd_0014;
double Gd_0015;
int Gi_0016;
int Gi_0000;
double Gd_0000;
double Gd_0001;
int Gi_0002;
bool Gb_0003;
double Gd_0004;
bool Gb_0004;
double Ind_004;
bool Gb_0000;
double Ind_002;
double Ind_001;
double returned_double;
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
int deinit()
{
int Li_FFFC;
Li_FFFC = 0;
Li_FFFC = 0;
return 0;
}
void OnEveryTick1()
{
string tmp_str0000;
string tmp_str0001;
Gl_0000 = 0;
Gi_0001 = 0;
Gl_0002 = 0;
Gi_0003 = 0;
Gi_0004 = 0;
Gi_0005 = 0;
int Li_FF10[][2];
Gi_0006 = 0;
Gi_0007 = 0;
Gi_0008 = 0;
int Li_FDEC[][2];
Gi_0009 = 0;
if (Ii_001C == 3 || Ii_001C == 5) {
Id_0000 = 10;
}
if ((Ask < iBands(NULL, 0, 20, 2, 0, 4, 2, 0)) && (iATR(NULL, 0, 14, 0) < ((Id_0000 * 15) * _Point))) {
Gl_0000 = TimeGMT();
Gi_0001 = TimeHour(Gl_0000);
TimeMinute(Gl_0000);
if ((HourStart < HourEnd && Gi_0001 >= HourStart && Gi_0001 < HourEnd)
|| (HourStart > HourEnd && (Gi_0001 < HourEnd || Gi_0001 >= HourStart))) {
LOOB();
}}
if ((Bid > iBands(NULL, 0, 20, 2, 0, 4, 1, 0)) && (iATR(NULL, 0, 14, 0) < ((Id_0000 * 15) * _Point))) {
Gl_0002 = TimeGMT();
Gi_0003 = TimeHour(Gl_0002);
TimeMinute(Gl_0002);
if ((HourStart < HourEnd && Gi_0003 >= HourStart && Gi_0003 < HourEnd)
|| (HourStart > HourEnd && (Gi_0003 < HourEnd || Gi_0003 >= HourStart))) {
LOOS();
}}
if ((Ask < iMA(NULL, 0, 20, 0, 0, 4, 0))) {
Gd_000A = (Ask - Bid);
if ((Gd_000A <= ((MaxSpread * Id_0000) * _Point))) {
Gi_0004 = OrdersTotal();
Gi_0005 = 0;
ArrayFree(Li_FF10);
ArrayResize(Li_FF10, 30);
Gi_0006 = 0;
if (Gi_0004 > 0) {
do {
if (OrderSelect(Gi_0006, 0, 0)) {
if (OrderType() == OP_SELL && OrderSymbol() == _Symbol && OrderMagicNumber() == 2) {
Gl_000A = OrderOpenTime();
Li_FF10[Gi_0005, 0] = (int)Gl_000A;
Gi_000A = OrderTicket();
Li_FF10[Gi_0005, 1] = Gi_000A;
Gi_0005 = Gi_0005 + 1;
}}
Gi_0006 = Gi_0006 + 1;
} while (Gi_0006 < Gi_0004);
}
if (Gi_0005 > 1) {
ArrayResize(Li_FF10, Gi_0005, 0);
ArraySort(Li_FF10, 0, 0, 1);
}
Gi_0006 = 0;
if (Gi_0005 > 0) {
do {
if (OrderSelect(Li_FF10[Gi_0006, 1], 1, 0) == true && OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), (int)MaxSlippage, 255) == 0) {
tmp_str0000 = ErrorDescription(GetLastError());
Print("OrderClose() error - ", tmp_str0000);
}
Gi_0006 = Gi_0006 + 1;
} while (Gi_0006 < Gi_0005);
}}
ArrayFree(Li_FF10);
}
if ((Bid <= iMA(NULL, 0, 20, 0, 0, 4, 0))) return;
Gd_0010 = (Ask - Bid);
if ((Gd_0010 <= ((MaxSpread * Id_0000) * _Point))) {
Gi_0007 = OrdersTotal();
Gi_0008 = 0;
ArrayFree(Li_FDEC);
ArrayResize(Li_FDEC, 30);
Gi_0009 = 0;
if (Gi_0007 > 0) {
do {
if (OrderSelect(Gi_0009, 0, 0)) {
if (OrderType() == OP_BUY && OrderSymbol() == _Symbol && OrderMagicNumber() == 1) {
Gl_0010 = OrderOpenTime();
Li_FDEC[Gi_0008, 0] = (int)Gl_0010;
Gi_0010 = OrderTicket();
Li_FDEC[Gi_0008, 1] = Gi_0010;
Gi_0008 = Gi_0008 + 1;
}}
Gi_0009 = Gi_0009 + 1;
} while (Gi_0009 < Gi_0007);
}
if (Gi_0008 > 1) {
ArrayResize(Li_FDEC, Gi_0008, 0);
ArraySort(Li_FDEC, 0, 0, 1);
}
Gi_0009 = 0;
if (Gi_0008 > 0) {
do {
if (OrderSelect(Li_FDEC[Gi_0009, 1], 1, 0) == true && OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), (int)MaxSlippage, 255) == 0) {
tmp_str0001 = ErrorDescription(GetLastError());
Print("OrderClose() error - ", tmp_str0001);
}
Gi_0009 = Gi_0009 + 1;
} while (Gi_0009 < Gi_0008);
}}
ArrayFree(Li_FDEC);
}
void LOOB()
{
string tmp_str0000;
string tmp_str0001;
string tmp_str0002;
int Li_FFFC;
int Li_FFF8;
Li_FFFC = 0;
Li_FFF8 = 0;
Gd_0000 = 0;
Gd_0001 = 0;
Gi_0002 = 0;
Gb_0003 = false;
Li_FFFC = 0;
Li_FFF8 = OrdersTotal() - 1;
if (Li_FFF8 >= 0) {
do {
if (OrderSelect(Li_FFF8, 0, 0)) {
if (OrderSymbol() == _Symbol && OrderMagicNumber() == 1) {
Li_FFFC = Li_FFFC + 1;
}}
else{
tmp_str0000 = ErrorDescription(GetLastError());
Print("OrderSend() error - ", tmp_str0000);
}
Li_FFF8 = Li_FFF8 - 1;
} while (Li_FFF8 >= 0);
}
if (Li_FFFC >= 1) return;
if (UseRisk == 0) {
Gd_0004 = (Ask - Bid);
if ((Gd_0004 <= ((MaxSpread * Id_0000) * _Point))) {
Gd_0004 = ((StopLoss * Id_0000) * _Point);
Gd_0000 = (Ask - Gd_0004);
Показано первые 50% кода (символов: 9780)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.