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

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

Стоимость полного кода
978₽ ≈ $11.95