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

royal_hedge_fund_ea.mq4

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Данный продукт представляет собой торгового советника (Expert Advisor) для платформы MetaTrader 4, написанный на языке MQL4. Советник предназначен для автоматической работы с отложенными ордерами (Buy Limit и Sell Limit) на инструменте US30 в рамках таймфрейма M1.

Советник рассчитывает динамические параметры размещения ордеров на основе скользящего среднего, рассчитанного по данным спреда. Также реализованы временные ограничения торговли — ордера открываются только в заданном часовом диапазоне. Встроена проверка максимального допустимого спреда, при превышении которой новые ордера не открываются.

В советнике реализовано управление существующими позициями: ордера модифицируются или удаляются в зависимости от текущего спреда, ценового удаления и временных условий. Поддерживаются два режима управления денежными средствами — фиксированный объём лота или расчёт лота на основе процента риска от баланса счёта.

Советник использует магический номер для идентификации управляемых ордеров и позволяет задать проскальпывание. Все параметры настраиваются через входные переменные, сгруппированные в разделы общих настроек, временных настроек, управления деньгами и торговых настроек.

Настройки программы

НастройкаОписание
General Settings (title6) Общие настройки — Группа общих настроек советника.
Magic Number (MagicNumber) Магический номер — Магический номер для идентификации ордеров, управляемых данным советником.
Slippage Проскальпывание — Допустимое проскальпывание при открытии и модификации ордеров.
Time Setting (title1) Временные настройки — Группа временных настроек советника.
START TRADING HOUR (StartHour) Час начала торговли — Час начала торговой сессии. Ордера открываются начиная с этого часа.
END TRADING HOUR (EndHour) Час окончания торговли — Час окончания торговой сессии. Ордера не открываются после этого часа.
ORDER MODIFICATIONS (Should be same as TF) (Secs) Секунды модификации ордеров — Интервал в секундах для модификации ордеров. Должен совпадать с таймфреймом.
MONEY MANAGEMENT (title2) Управление деньгами — Группа настроек управления денежными средствами.
Fixed Lots 0.0 = MM (FixedLot) Фиксированный лот — Фиксированный размер лота. При значении 0.0 используется управление на основе процента риска.
Risk MM% (RiskPercent) Процент риска — Процент риска от баланса счёта для расчёта размера лота при ненулевом фиксированном лоте.
TRADE SETTINGS (title3) Торговые настройки — Группа торговых настроек в пунктах.
ORDER DISTANCE (Delta) Дельта — Расстояние до ордера (в пунктах) для размещения отложенных ордеров от текущей цены.
THETA (inhibition of order range) (MaxDistance) Максимальное расстояние — Максимальное расстояние для размещения ордеров (ингибитор диапазона ордеров).
Stop Loss size (Stop) Стоп-лосс — Размер стоп-лосса в пунктах для размещённых ордеров.
COS (Inhibition of Trailing Range) (MaxTrailing) Максимальный трейлинг — Максимальный диапазон трейлинга (ингибитор диапазона трейлинга).
Max Spread Limit (MaxSpread) Максимальный спред — Максимально допустимый спред. При превышении этого значения новые ордера не открываются.
Получить полный код

Поиск по коду файла

#property version "3.0";
#property description "timeframe M1, pair US30.i or US30"
#property description "Market Watch 16:30 hrs"

extern string title6 = "GENERAL SETTINGS"; // General Settings
extern int MagicNumber = 007; // Magic Number
extern int Slippage = 1;
extern string title1 = "TIME SETTINGS"; // Time Setting
extern int StartHour = 16; // START TRADING HOUR
extern int EndHour = 22; // END TRADING HOUR
extern int Secs = 1; // ORDER MODIFICATIONS (Should be same as TF)
extern string title2 = "MONEY MANAGEMENT"; // MONEY MANAGEMENT
extern double FixedLot = 0.01; // Fixed Lots 0.0 = MM
extern double RiskPercent; // Risk MM%
extern string title3 = "TRADE SETTING IN POINTS"; // TRADE SETTINGS
extern double Delta = 0.5; // ORDER DISTANCE
extern double MaxDistance = 7; // THETA (inhibition of order range)
extern double Stop = 10; // Stop Loss size
extern double MaxTrailing = 4; // COS (Inhibition of Trailing Range)
extern int MaxSpread = 16000; // Max Spread Limit

int returned_i;
bool Gb_0000;
double Id_0038;
double Ind_000;
double Id_0040;
double Id_0030;
int Ii_009C;
double Id_01C0;
double Id_00F0;
double Id_0068;
double Id_0100;
double Id_0070;
double Id_0110;
double Id_0060;
int Ii_00A0;
double Id_01B8;
int Ii_0098;
double Id_0140;
double Id_00B0;
double Id_00B8;
double Id_00A8;
double Id_0130;
int Ii_0084;
int Gi_0000;
double Ind_004;
double Id_0138;
int Ii_0088;
double Gd_0000;
double Id_00C8;
double Id_0120;
int Ii_0000;
int Ii_0080;
int Ii_0028;
int Gi_0021;
double Gd_0001;
double Id_0128;
bool Gb_0001;
double Ind_002;
double Id_00C0;
double Gd_0002;
double Gd_0003;
int Gi_0001;
bool returned_b;
double Id_00D0;
int Gi_0002;
int Ii_004C;
double Gd_0004;
double Gd_0005;
double Id_0108;
double Gd_0006;
double Id_00E0;
double Id_00F8;
double Id_00E8;
double Id_0170;
double Id_0178;
double Gd_0007;
double Id_00D8;
long returned_l;
int Ii_007C;
bool Gb_0007;
bool Gb_000D;
bool Gb_002F;
int Gi_002F;
int Ii_0094;
int Ii_002C;
bool Gb_0030;
double Gd_0030;
bool Gb_0032;
int Gi_0032;
double Gd_0034;
double Gd_0035;
double Id_0160;
string Is_0008;
int Ii_008C;
bool Gb_0035;
int Gi_0035;
bool Gb_0036;
double Gd_0036;
bool Gb_0038;
int Gi_0038;
double Gd_003A;
double Gd_003B;
double Id_0168;
int Ii_0090;
bool Gb_0037;
double Gd_0037;
double Gd_0038;
double Gd_0039;
bool Gb_0031;
double Gd_0031;
double Gd_0032;
double Gd_0033;
int Gi_000E;
int Ii_0024;
bool Gb_000E;
double Gd_000E;
bool Gb_000F;
int Gi_000F;
double Gd_0010;
double Gd_0011;
bool Gb_0013;
int Gi_0011;
double Gd_0012;
double Gd_0013;
int Gi_0008;
bool Gb_0008;
double Gd_0008;
bool Gb_0009;
int Gi_0009;
double Gd_000A;
double Gd_000B;
int Gi_000B;
double Gd_000C;
double Gd_000D;
double Gd_0021;
double Gd_0022;
double Gd_0023;
double Gd_0024;
double Gd_0025;
double Gd_0026;
bool Gb_0027;
double Gd_0027;
double Gd_002D;
double Id_0118;
double Gd_002F;
double Gd_0028;
double Gd_0029;
double Gd_002A;
double Gd_002B;
bool Gb_002C;
double Gd_002C;
double Gd_002E;
double Gd_0014;
double Gd_0015;
double Gd_0016;
double Gd_0017;
double Gd_0018;
bool Gb_0019;
double Gd_0019;
double Gd_001F;
bool Gb_0021;
double Gd_001A;
double Gd_001B;
double Gd_001C;
double Gd_001D;
bool Gb_001E;
double Gd_001E;
double Gd_0020;
string Is_0018;
int Ii_0048;
long Il_0050;
int Ii_0058;
bool Ib_0078;
double Id_0148;
double Id_0150;
double Id_0158;
double Id_0180[];
double returned_double;

int init()
{
      // код доступен только после оплаты
   }

int start()
{
      // код доступен только после оплаты
   }
   int Li_FFF8;
   int Li_FFF4;
   int Li_FFF0;
   int Li_FFEC;
   int Li_FFE8;
   int Li_FFE4;
   int Li_FFE0;
   int Li_FFDC;
   int Li_FFD8;
   double Ld_FFD0;
   double Ld_FFC8;
   double Ld_FFC0;
   double Ld_FFB8;
   double Ld_FFB0;
   double Ld_FFA8;
   double Ld_FFA0;
   double Ld_FF98;
   double Ld_FF90;
   double Ld_FF88;
   double Ld_FF80;
   double Ld_FF78;
   double Ld_FF70;
   double Ld_FF68;
   double Ld_FF60;
   double Ld_FF58;
   double Ld_FF50;
   int Li_FF4C;
   int Li_FF48;
   int Li_FFFC;

   Ii_009C = Ii_009C + 1;
   if ((Id_01C0 == 0)) { 
   Gi_0000 = HistoryTotal() - 1;
   Gi_0001 = Gi_0000;
   if (Gi_0000 >= 0) { 
   do { 
   if (OrderSelect(Gi_0001, 0, 1) && (OrderProfit() != 0)) { 
   Gd_0000 = OrderClosePrice();
   if ((Gd_0000 != OrderOpenPrice()) && OrderSymbol() == _Symbol) { 
   Gd_0000 = OrderProfit();
   Gd_0002 = OrderClosePrice();
   Gd_0002 = fabs((Gd_0002 - OrderOpenPrice()));
   Id_01C0 = fabs((Gd_0000 / Gd_0002));
   Gd_0002 = -OrderCommission();
   Id_00D0 = (Gd_0002 / Id_01C0);
   break; 
   }} 
   Gi_0001 = Gi_0001 - 1;
   } while (Gi_0001 >= 0); 
   }} 
   double Ld_FF14[];
   ArrayResize(Ld_FF14, (Ii_0080 - 1), 0);
   ArrayCopy(Ld_FF14, Id_0180, 0, 1, (Ii_0080 - 1));
   ArrayResize(Ld_FF14, Ii_0080, 0);
   Gi_0002 = Ii_0080 - 1;
   Ld_FF14[Gi_0002] = NormalizeDouble((Ask - Bid), Ii_00A0);
   ArrayCopy(Id_0180, Ld_FF14, 0, 0, 0);
   returned_double = iMAOnArray(Id_0180, Ii_0080, Ii_0080, 0, 3, 0);
   Id_00C8 = returned_double;
   Gd_0003 = (Ii_004C * Id_01B8);
   Gd_0004 = (returned_double + Id_00D0);
   if (Gd_0004 <= Gd_0003) { 
   } 
   else { 
   Gd_0003 = Gd_0004;
   } 
   Id_0120 = Gd_0003;
   Gd_0003 = (Gd_0003 * Delta);
   if (Gd_0003 <= Id_0130) { 
   Gd_0005 = Id_0130;
   } 
   else { 
   Gd_0005 = Gd_0003;
   } 
   Id_0108 = Gd_0005;
   Gd_0005 = (Id_0120 * Id_0038);
   if (Gd_0005 <= Id_0138) { 
   Gd_0006 = Id_0138;
   } 
   else { 
   Gd_0006 = Gd_0005;
   } 
   Id_00E0 = Gd_0006;
   Id_00F8 = (Id_0120 * MaxTrailing);
   Id_00E8 = (Id_0120 * Id_0040);
   Id_0170 = (Id_0120 * MaxDistance);
   Id_0178 = (Gd_0006 / Id_0030);
   Gd_0006 = (Id_0120 * Stop);
   if (Gd_0006 <= Id_0130) { 
   Gd_0007 = Id_0130;
   } 
   else { 
   Gd_0007 = Gd_0006;
   } 
   Id_00D8 = Gd_0007;
   ArrayFree(Ld_FF14);
   Li_FFF8 = 0;
   Li_FFF4 = 0;
   Li_FFF0 = (int)TimeCurrent();
   Li_FFEC = 0;
   Li_FFE8 = 0;
   Li_FFE4 = 0;
   Li_FFE0 = 0;
   Li_FFDC = 0;
   Li_FFD8 = 0;
   Ld_FFD0 = 0;
   Ld_FFC8 = 0;
   Ld_FFC0 = 0;
   Ld_FFB8 = 0;
   Ld_FFB0 = 0;
   Ld_FFA8 = 0;
   Ld_FFA0 = 0;
   Ld_FF98 = 0;
   Ld_FF90 = 0;
   Ld_FFA0 = 0;
   Ld_FF88 = 0;
   Ld_FF80 = 0;
   Ld_FF78 = 0;
   Ld_FF70 = 0;
   Ld_FF68 = 0;
   Ld_FF60 = 0;
   Ld_FF58 = 99999;
   Ld_FF50 = 0;
   Li_FF4C = OrdersTotal() - 1;
   if (Li_FF4C >= 0) { 
   do { 
   Ii_007C = OrderSelect(Li_FF4C, 0, 0);
   if (OrderSymbol() == _Symbol && OrderMagicNumber() == MagicNumber) { 
   Ld_FFC8 = OrderStopLoss();
   Ld_FFB8 = OrderOpenPrice();
   Ld_FFC0 = OrderTakeProfit();
   Li_FFF4 = OrderTicket();
   Ld_FFD0 = OrderLots();
   returned_i = OrderType();
   if (returned_i <= 5) { 
   if (returned_i == 4){

   Li_FFEC = Li_FFEC + 1;
   Li_FFDC = Li_FFDC + 1;
   }
   if (returned_i == 5){

   Li_FFE8 = Li_FFE8 + 1;
   Li_FFD8 = Li_FFD8 + 1;
   }
   if (returned_i == 0){

   Li_FFE4 = Li_FFE4 + 1;
   if (Ld_FFC8 == 0 || (Ld_FFC8 > 0 && Ld_FFC8 < Ld_FFB8)) {

   Li_FFDC = Li_FFDC + 1;
   }
   Id_0160 = Ld_FFC8;
   Gd_0007 = OrderOpenPrice();
   Ld_FF88 = ((Gd_0007 * OrderLots()) + Ld_FF88);
   Ld_FF80 = (Ld_FF80 + OrderLots());
   if ((OrderOpenPrice() < Ld_FF58)) {
   Ld_FF58 = OrderOpenPrice()

Показано первые 50% кода (символов: 14633)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
1 463,30₽ ≈ $17.88