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

sevenfx 7a.mq4

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

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

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

О программе

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

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

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

НастройкаОписание
t0 Описание режима 0 — Текстовый параметр-подпись, задающий описание первого режима работы советника
ModeLot Режим расчёта лота — Целочисленный переключатель, определяющий способ расчёта объёма позиции: фиксированный или процентный
LotPost Фиксированный лот — Значение объёма позиции при фиксированном режиме расчёта
LotProc Процент лота — Процент от баланса, используемый для расчёта объёма позиции в процентном режиме
t3 Описание режима 3 — Текстовый параметр-подпись, задающий описание параметра уровня
Level Уровень — Целочисленный параметр, определяющий количество позиций для анализа при частичном закрытии
Max Максимум — Числовой параметр, задающий верхний предел для расчёта допустимого значения
STOPmax Максимум стоп-лосса — Числовой параметр, определяющий максимальный допустимый убыток в процентах от баланса
t5 Описание трейлинга — Текстовый параметр-подпись, задающий описание параметров трейлинг-стопа
Tral Трейлинг-стоп — Целочисленный параметр, задающий расстояние трейлинг-стопа в пунктах
TralStep Шаг трейлинга — Целочисленный параметр, определяющий шаг смещения трейлинг-стопа в пунктах
t6 Описание лимита — Текстовый параметр-подпись, задающий описание лимитного параметра
Lim Лимит — Числовой параметр, задающий множитель или предел для расчёта объёма
Step Шаг — Целочисленный параметр, определяющий размер шага в пунктах для условий открытия позиции
t7 Описание параметров — Текстовый параметр-подпись, задающий описание блока параметров символов
P1 Символ 1 — Строковый параметр, задающий первый валютный парный инструмент для торговли
P2 Символ 2 — Строковый параметр, задающий второй валютный парный инструмент для торговли
P3 Символ 3 — Строковый параметр, задающий третий валютный парный инструмент для торговли
P4 Символ 4 — Строковый параметр, задающий четвёртый валютный парный инструмент для торговли
P5 Символ 5 — Строковый параметр, задающий пятый валютный парный инструмент для торговли
P6 Символ 6 — Строковый параметр, задающий шестой валютный парный инструмент для торговли
P7 Символ 7 — Строковый параметр, задающий седьмой валютный парный инструмент для торговли
t8 Описание таймфрейма — Текстовый параметр-подпись, задающий описание параметра таймфрейма
Tf Таймфрейм — Целочисленный параметр, задающий период графика для анализа ценовых данных
Slip Проскальзывание — Целочисленный параметр, определяющий максимально допустимое отклонение цены исполнения
Magic Магический номер — Целочисленный идентификатор, используемый для маркировки ордеров советника
Name Имя — Строковый параметр, задающий текст комментария для отправляемых ордеров
Info Информация — Переключатель, включающий или отключающий отображение информации о счёте на графике
Получить полный код

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

extern string t0 = "???? 0-??????????, 1- ??????? ?? ???????";
extern int ModeLot = 1;
extern double LotPost = 1.0;
extern double LotProc = 1.0;
extern string t3 = "??????? ?????? ?? ????????";
extern int Level = 1;
extern double Max = 1.0;
extern double STOPmax = 1.0;
extern string t5 = "????????? ???????? ?????";
extern int Tral = 150;
extern int TralStep = 1;
extern string t6 = "????????? ???????";
extern double Lim = 1.0;
extern int Step = 350;
extern string t7 = "????????? ???";
extern string P1 = "EURUSD";
extern string P2 = "GBPUSD";
extern string P3 = "USDCHF";
extern string P4 = "EURGBP";
extern string P5 = "USDCAD";
extern string P6 = "GBPCHF";
extern string P7 = "NZDUSD";
extern string t8 = "?????? ?????????";
extern int Tf = 60;
extern int Slip = 100;
extern int Magic = 123;
extern string Name = "SEVENFX";
extern bool Info = TRUE;
int G_datetime_264 = 0;
int G_datetime_268 = 0;
int G_datetime_272 = 0;
int G_datetime_276 = 0;
int G_datetime_280 = 0;
int G_datetime_284 = 0;
int G_datetime_288 = 0;
int G_datetime_292 = 0;
int G_datetime_296 = 0;
int G_datetime_300 = 0;
int G_datetime_304 = 0;
int G_datetime_308 = 0;
int G_datetime_312 = 0;
int G_datetime_316 = 0;
int Gi_320;
double Gd_324;
double G_lots_332;
bool OrderSen;
bool OrderMod;
bool OrderClos;
bool OrderDel;

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

int start() {
      // код доступен только после оплаты
   }
   int Li_8;
   double lots_0 = 0;
   if (ModeLot == 0) lots_0 = LotPost;
   if (ModeLot == 1) lots_0 = NormalizeDouble(AccountBalance() / 100.0 * LotProc / (100.0 * MarketInfo(Symbol(), MODE_TICKVALUE) * Gi_320), 2);
   if (lots_0 < MarketInfo(Symbol(), MODE_MINLOT)) lots_0 = MarketInfo(Symbol(), MODE_MINLOT);
   if (MarketInfo(Symbol(), MODE_LOTSTEP) == 0.01) Li_8 = 2;
   if (MarketInfo(Symbol(), MODE_LOTSTEP) == 0.1) Li_8 = 1;
   if (MarketInfo(Symbol(), MODE_LOTSTEP) == 1.0) Li_8 = 0;
   if (Info) {
      Comment("" 
         + "\n" 
         + "SEVENFX" 
         + "\n" 
         + "________________________________" 
         + "\n" 
         + "??????:         " + AccountCompany() 
         + "\n" 
         + "????? ???????:  " + TimeToStr(TimeCurrent(), TIME_DATE|TIME_SECONDS) 
         + "\n" 
         + "________________________________" 
         + "\n" 
         + "????:             " + AccountName() 
         + "\n" 
         + "????? ????        " + AccountNumber() 
         + "\n" 
         + "_______________________________" 
         + "\n" 
         + "??????:                       " + DoubleToStr(AccountBalance(), 2) 
         + "\n" 
         + "????????? ????????:   " + DoubleToStr(AccountEquity(), 2) 
         + "\n" 
      + "_______________________________");
   }
   double Ld_12 = AccountBalance() / 100.0 * STOPmax;
   if (f0_1(-1) >= Ld_12 && Ld_12 != 0.0) f0_5(Magic, -1);
   Gd_324 = AccountBalance() / 100.0 * Max;
   f0_2();
   if (f0_8(-1, P1) > 1 && f0_4(-1, P1) == 0) f0_3(P1, -1);
   if (f0_8(-1, P2) > 1 && f0_4(-1, P2) == 0) f0_3(P2, -1);
   if (f0_8(-1, P3) > 1 && f0_4(-1, P3) == 0) f0_3(P3, -1);
   if (f0_8(-1, P4) > 1 && f0_4(-1, P4) == 0) f0_3(P4, -1);
   if (f0_8(-1, P5) > 1 && f0_4(-1, P5) == 0) f0_3(P5, -1);
   if (f0_8(-1, P6) > 1 && f0_4(-1, P6) == 0) f0_3(P6, -1);
   if (f0_8(-1, P7) > 1 && f0_4(-1, P7) == 0) f0_3(P7, -1);
   if (f0_8(-1, P1) == 1) f0_6(Magic, P1);
   if (f0_8(-1, P2) == 1) f0_6(Magic, P2);
   if (f0_8(-1, P3) == 1) f0_6(Magic, P3);
   if (f0_8(-1, P4) == 1) f0_6(Magic, P4);
   if (f0_8(-1, P5) == 1) f0_6(Magic, P5);
   if (f0_8(-1, P6) == 1) f0_6(Magic, P6);
   if (f0_8(-1, P7) == 1) f0_6(Magic, P7);
   if (G_datetime_264 != iTime(P1, Tf, 0)) {
      G_datetime_264 = iTime(P1, Tf, 0);
      if (f0_8(OP_BUY, P1) > 0 && NormalizeDouble(MarketInfo(P1, MODE_ASK) + Step * MarketInfo(P1, MODE_POINT), Digits) <= f0_7(P1)) {
         G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_BUY, P1)) * lots_0, Li_8);
         OrderSen=OrderSend(P1, OP_BUY, G_lots_332, NormalizeDouble(MarketInfo(P1, MODE_ASK), Digits), Slip, 0, 0, Name, Magic, 0, Green);
      }
      if (f0_8(OP_SELL, P1) > 0 && NormalizeDouble(MarketInfo(P1, MODE_BID) - Step * MarketInfo(P1, MODE_POINT), Digits) >= f0_0(P1)) {
         G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_SELL, P1)) * lots_0, Li_8);
         OrderSen=OrderSend(P1, OP_SELL, G_lots_332, NormalizeDouble(MarketInfo(P1, MODE_BID), Digits), Slip, 0, 0, Name, Magic, 0, Red);
      }
   }
   if (G_datetime_268 != iTime(P2, Tf, 0)) {
      G_datetime_268 = iTime(P2, Tf, 0);
      if (f0_8(OP_BUY, P2) > 0 && NormalizeDouble(MarketInfo(P2, MODE_ASK) + Step * MarketInfo(P2, MODE_POINT), Digits) <= f0_7(P2)) {
         G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_BUY, P2)) * lots_0, Li_8);
         OrderSen=OrderSend(P2, OP_BUY, G_lots_332, NormalizeDouble(MarketInfo(P2, MODE_ASK), Digits), Slip, 0, 0, Name, Magic, 0, Green);
      }
      if (f0_8(OP_SELL, P2) > 0 && NormalizeDouble(MarketInfo(P2, MODE_BID) - Step * MarketInfo(P2, MODE_POINT), Digits) >= f0_0(P2)) {
         G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_SELL, P2)) * lots_0, Li_8);
         OrderSen=OrderSend(P2, OP_SELL, G_lots_332, NormalizeDouble(MarketInfo(P2, MODE_BID), Digits), Slip, 0, 0, Name, Magic, 0, Red);
      }
   }
   if (G_datetime_272 != iTime(P3, Tf, 0)) {
      G_datetime_272 = iTime(P3, Tf, 0);
      if (f0_8(OP_BUY, P3) > 0 && NormalizeDouble(MarketInfo(P3, MODE_ASK) + Step * MarketInfo(P3, MODE_POINT), Digits) <= f0_7(P3)) {
         G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_BUY, P3)) * lots_0, Li_8);
         OrderSen=OrderSend(P3, OP_BUY, G_lots_332, NormalizeDouble(MarketInfo(P3, MODE_ASK), Digits), Slip, 0, 0, Name, Magic, 0, Green);
      }
      if (f0_8(OP_SELL, P3) > 0 && NormalizeDouble(MarketInfo(P3, MODE_BID) - Step * MarketInfo(P3, MODE_POINT), Digits) >= f0_0(P3)) {
         G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_SELL, P3)) * lots_0, Li_8);
         OrderSen=OrderSend(P3, OP_SELL, G_lots_332, NormalizeDouble(MarketInfo(P3, MODE_BID), Digits), Slip, 0, 0, Name, Magic, 0, Red);
      }
   }
   if (G_datetime_276 != iTime(P4, Tf, 0)) {
      G_datetime_276 = iTime(P4, Tf, 0);
      if (f0_8(OP_BUY, P4) > 0 && NormalizeDouble(MarketInfo(P4, MODE_ASK) + Step * MarketInfo(P4, MODE_POINT), Digits) <= f0_7(P4)) {
         G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_BUY, P4)) * lots_0, Li_8);
         OrderSen=OrderSend(P4, OP_BUY, G_lots_332, NormalizeDouble(MarketInfo(P4, MODE_ASK), Digits), Slip, 0, 0, Name, Magic, 0, Green);
      }
      if (f0_8(OP_SELL, P4) > 0 && NormalizeDouble(MarketInfo(P4, MODE_BID) - Step * MarketInfo(P4, MODE_POINT), Digits) >= f0_0(P4)) {
         G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_SELL, P4)) * lots_0, Li_8);
         OrderSen=OrderSend(P4, OP_SELL, G_lots_332, NormalizeDouble(MarketInfo(P4, MODE_BID), Digits), Slip, 0, 0, Name, Magic, 0, Red);
      }
   }
   if (G_datetime_280 != iTime(P5, Tf, 0)) {
      G_datetime_280 = iTime(P5, Tf, 0);
      if (f0_8(OP_BUY, P5) > 0 && NormalizeDouble(MarketInfo(P5, MODE_ASK) + Step * MarketInfo(P5, MODE_POINT), Digits) <= f0_7(P5)) {
         G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_BUY, P5)) * lots_0, Li_8);
         OrderSen=OrderSend(P5, OP_BUY, G_lots_332, NormalizeDouble(MarketInfo(P5, MODE_ASK), Digits), Slip, 0, 0, Name, Magic, 0, Green);
      }
      if (f0_8(OP_SELL, P5) > 0 && NormalizeDouble(MarketInfo(P5, MODE_BID) - Step * MarketInfo(P5, MODE_POINT), Digits) >= f0_0(P5)) {
         G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_SELL, P5)) * lots_0, Li_8);
         OrderSen=OrderSend(P5, OP_SELL, G_lots_332, NormalizeDouble(MarketInfo(P5, MODE_BID), Digits), Slip, 0, 0, Name, Magic, 0, Red);
      }
   }
   if (G_datetime_284 != iTime(P6, Tf, 0)) {
      G_datetime_284 = iTime(P6, Tf, 0);
      if (f0_8(OP_BUY, P6) > 0 && NormalizeDouble(MarketInfo(P6, MODE_ASK) + Step * MarketInfo(P6, MODE_POINT), Digits) <= f0_7(P6)) {
         G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_BUY, P6)) * lots_0, Li_8);
         OrderSen=OrderSend(P6, OP_BUY, G_lots_332, NormalizeDouble(MarketInfo(P6, MODE_ASK), Digits), Slip, 0, 0, Name, Magic, 0, Green);
      }
      if (f0_8(OP_SELL, P6) > 0 && NormalizeDouble(MarketInfo(P6, MODE_BID) - Step * MarketInfo(P6, MODE_POINT), Digits) >= f0_0(P6)) {
         G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_SELL, P6)) * lots_0, Li_8);
         OrderSen=OrderSend(P6, OP_SELL, G_lots_332, NormalizeDouble(MarketInfo(P6, MODE_BID), Digits), Slip, 0, 0, Name, Magic, 0, Red);
      }
   }
   if (G_datetime_288 != iTime(P7, Tf, 0)) {
      G_datetime_288 = iTime(P7, Tf, 0);
      if (f0_8(OP_BUY, P7) > 0 && NormalizeDouble(MarketInfo(P7, MODE_ASK) + Step * MarketInfo(P7, MODE_POINT), Digits) <= f0_7(P7)) {
         G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_BUY, P7)) * lots_0, Li_8);
         OrderSen=OrderSend(P7, OP_BUY, G_lots_332, NormalizeDouble(MarketInfo(P7, MODE_ASK), Digits), Slip, 0, 0, Name, Magic, 0, Green);
      }
      if (f0_8(OP_SELL, P7) > 0 && NormalizeDouble(MarketInfo(P7, MODE_BID) - Step * MarketInfo(P7, MODE_POINT), Digits) >= f0_0(P7)) {
         G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_SELL, P7)) * lots_0, Li_8);
         OrderSen=OrderSend(P7, OP_SELL, G_lots_332, NormalizeDouble(MarketInfo(P7, MODE_BID), Digits), Slip, 0, 0, Name, Magic, 0, Red);
      }
   }
   if (G_datetime_292 != iTime(P1, Tf, 0)) {
      G_datetime_292 = iTime(P1, Tf, 0);
      if (f0_8(-1, P1) == 0) {
         if (iMA(P1, Tf, 1, 0, MODE_SMA, PRICE_OPEN, 1) < iMA(P1, Tf, 1, 0, MODE_SMA, PRICE_CLOSE, 1)) OrderSen=OrderSend(P1, OP_BUY, lots_0, NormalizeDouble(MarketInfo(P1, MODE_ASK), Digits), Slip, 0, 0, Name, Magic, 0, Green);
         if (iMA(P1, Tf, 1, 0, MODE_SMA, PRICE_OPEN, 1) > iMA(P1, Tf, 1, 0, MODE_SMA, PRICE_CLOSE, 1)) OrderSen=OrderSend(P1, OP_SELL, lots_0, NormalizeDouble(MarketInfo(P1, MODE_BID), Digits), Slip, 0, 0, Name, Magic, 0, Red);
      }
   }
   if (G_datetime_296 != iTime(P2, Tf, 0)) {
      G_datetime_296 = iTime(P2, Tf, 0);
      if (f0_8(-1, P2) == 0) {
         if (iMA(P2, Tf, 1, 0, MODE_SMA, PRICE_OPEN, 1) < iMA(P2, Tf, 1, 0, MODE_SMA, PRICE_CLOSE, 1)) OrderSen=OrderSend(P2, OP_BUY, lots_

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

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

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

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

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

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

Стоимость полного кода
1 573,40₽ ≈ $19.23