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

NinjaForex Versi AI Unlimited

ninjaforex_versi ai unlimited.mq4
Вы автор или правообладатель?

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

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

О программе

NinjaForex Versi AI Unlimited — это торговый советник (Expert Advisor) для MetaTrader 4, написанный на языке MQL4. Программа предназначена для автоматического анализа ценовых данных, расчёта среднего спреда и открытия торговых операций через торговый API MetaTrader.

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

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

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

НастройкаОписание
MagicNumber Магический номер — Целочисленный идентификатор для привязки ордеров к советнику
TradeComment Комментарий ордера — Текстовый параметр комментария для торговых ордеров
Range_BidAsk Диапазон BidAsk — Числовой параметр диапазона BidAsk
BidAsk_High Верхний порог BidAsk — Числовой параметр верхнего порога BidAsk
MinLots Минимальный лот — Числовой параметр минимального размера лота
MaxLots Максимальный лот — Числовой параметр максимального размера лота
Risk Риск — Числовой параметр процента риска для расчёта лота
FixedLots Фиксированный лот — Числовой параметр фиксированного размера лота
UseMM Управление рисками — Логический переключатель для включения управления рисками
NinjaForex_Swing Свинг-параметр — Целочисленный параметр для настройки свинг-торговли
NinjaForex_scalper Скальп-параметр — Целочисленный параметр для настройки скальпинга
Sett_lock Блокировка — Логический переключатель для включения блокировки
ILock Параметр блокировки — Числовой параметр для настройки блокировки
SLock Параметр стоп-лосса блокировки — Числовой параметр для настройки стоп-лосса блокировки
Sett_BE Безубыточность — Логический переключатель для включения безубыточности
LP Уровень защиты — Числовой параметр для настройки уровня защиты
P_BE Параметр безубыточности — Числовой параметр для настройки безубыточности
TimeFilter Заголовок временного фильтра — Строковый параметр с заголовком временного фильтра
Bar_Times Временные метки — Строковый параметр, содержащий текстовую метку для настроек времени
StartHour Начальный час — Целочисленный параметр начального часа для временного фильтра торговли
StartMinute Начальная минута — Целочисленный параметр начальной минуты для временного фильтра торговли
EndHour Конечный час — Целочисленный параметр конечного часа для временного фильтра торговли
EndMinute Конечная минута — Целочисленный параметр конечной минуты для временного фильтра торговли
Author Информация об авторе — Текстовый параметр с информацией об авторе и ссылками
Coder Информация о разработчике — Текстовый параметр с информацией о разработчике и типе EA
Contact_NinjaForex Контактная информация — Текстовый параметр с контактной информацией
Mail Электронная почта — Текстовый параметр с адресом электронной почты
Facebook Ссылка на Facebook — Строковый параметр с ссылкой на страницу в социальной сети
Costum_Indicator_2012 Пользовательский индикатор — Строковый параметр с меткой пользовательского индикатора
Tools Ссылка на магазин — Строковый параметр со ссылкой на магазин
Portofolio Информация о портфеле — Строковый параметр с информацией о портфеле
Fx Веб-ссылка — Строковый параметр с веб-ссылкой
Web_fx_btc_affiliate_xchanger Веб-ссылка — Строковый параметр с веб-ссылкой
RealRobot_NinjaForex Реальный робот — Строковый параметр с меткой реального робота
EA Ссылка на продукт — Строковый параметр с ссылкой на продукт
HFT_Demo Ссылка на демо-аккаунт — Строковый параметр с ссылкой на демонстрационный аккаунт
EA_HFT1 Ссылка на HFT1 — Строковый параметр с ссылкой на демонстрационный аккаунт
EA_HFT2 Ссылка на HFT2 — Строковый параметр с ссылкой на демонстрационный аккаунт
MultiEA_2012 Ссылка на аккаунт — Строковый параметр со ссылкой на публичный аккаунт
CHF_CHT Информация о портфеле — Строковый параметр с информацией о портфеле
Robot_NinjaForex Робот — Строковый параметр с меткой робота
Hedging Ссылка на хеджинг — Строковый параметр с ссылкой на раздел хеджинга
HFT1 Ссылка на HFT — Строковый параметр с ссылкой на раздел HFT
HFT2 Ссылка на Samurai — Строковый параметр с ссылкой на раздел Samurai
AnotherPrivate_or_Develop Контакт разработчика — Текстовый параметр с контактной информацией для связи с разработчиком
Parameter_Plus Дополнительные настройки — Строковый параметр с меткой дополнительных настроек
LBL Уровень настройки — Числовой параметр для настройки уровня
Bar Количество баров — Целочисленный параметр, используемый как внутренний счётчик баров
Bar1 Количество баров 1 — Целочисленный параметр, используемый как внутренний счётчик баров
Bar2 Количество баров 2 — Целочисленный параметр, используемый как внутренний счётчик баров
Bar3 Количество баров 3 — Целочисленный параметр, используемый как внутренний счётчик баров
MaxTrades Максимальное количество сделок — Целочисленный параметр максимального количества одновременных сделок
StopLoss Стоп-лосс — Числовой параметр расстояния стоп-лосса в пунктах
NProfit Тейк-профит — Числовой параметр тейк-профита
ITProfit Внутренний тейк-профит — Числовой параметр внутреннего тейк-профита
Comm_D Комиссия — Числовой параметр комиссии в долларах
NL Настройка уровня — Числовой параметр для настройки уровня
Dn Нижняя граница — Числовой параметр для нижней границы диапазона
IL Внутренняя верхняя граница — Числовой параметр для верхней границы внутреннего диапазона
NDn Нормализованная нижняя граница — Числовой параметр для нижней границы нормализованного диапазона
IDn Внутренняя нижняя граница — Числовой параметр для нижней границы внутреннего диапазона
Slow_P Медленный период — Целочисленный параметр для медленного периода
BidAsk_middle Среднее значение BidAsk — Числовой параметр среднего значения BidAsk
BidAsk_low Нижнее значение BidAsk — Числовой параметр нижнего значения BidAsk
BidAsk_high Верхнее значение BidAsk — Числовой параметр верхнего значения BidAsk
M_I_U_NinjaForex Верхний порог индикатора — Числовой параметр верхнего порога индикатора
M_I_V_NinjaForex Значение индикатора — Числовой параметр значения индикатора
M_I_Z_NinjaForex Порог индикатора — Числовой параметр порога индикатора
BarCandle_Use Использование свечей — Целочисленный параметр для управления отображением свечных данных
Info_NinjaForex Информация — Строковый параметр с контактной информацией
Получить полный код

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

#property description " "

#import "stdlib.ex4"
   string ErrorDescription(int a0); 
#import

extern int MagicNumber = 1;
extern string TradeComment = "@NinjaForex Beta memberforex.com";
extern double Range_BidAsk = 20.3;
extern double BidAsk_High = 30.3;
extern double MinLots = 0.01;
extern double MaxLots = 100000000.0;
extern double Risk = 30.0;
extern double FixedLots = 0.01;
extern bool UseMM = TRUE;
extern int NinjaForex_Swing = 3;
extern int NinjaForex_scalper = 3;
extern bool Sett_lock = TRUE;
extern double ILock = 2.9;
extern double SLock = 0.3;
extern bool Sett_BE = TRUE;
extern double LP = 0.3;
extern double P_BE = 2.0;
extern string TimeFilter = "---------- Time Filter ----------";
extern string Bar_Times = "-2";
extern int StartHour = 0;
extern int StartMinute = 0;
extern int EndHour = 23;
extern int EndMinute = 59;
extern string Author = "=== Facebook : @NinjaForex | memberforex.com ===";
extern string Coder = "EA Type : HFT, Arbi, Scalper, Swing, Costum Indi";
extern string Contact_NinjaForex = "==================";
extern string Mail = "Email : m*********x*@gmail.com";
extern string Facebook = "Facebook.com/NinjaForex";
extern string Costum_Indicator_2012 = "==================";
extern string Tools = ">> www.memberforex.com/store <<";
extern string Portofolio = "==================";
extern string Fx = "www.memberforex.com/Portofolio";
extern string Web_fx_btc_affiliate_xchanger = "www.memberforex.com/webdesign";
extern string RealRobot_NinjaForex = "==================";
extern string EA = "www.memberforex.com/Portofolio";
extern string HFT_Demo = "fxblue.com/users/ninjaforex6";
extern string EA_HFT1 = "fxblue.com/users/memberforex";
extern string EA_HFT2 = "fxblue.com/users/memberforex2";
extern string MultiEA_2012 = "www.myfxbook.com/NinjaForex public acc";
extern string CHF_CHT = "www.memberforex.com/Portofolio";
extern string Robot_NinjaForex = "==================";
extern string Hedging = "www.memberforex.com/robot";
extern string HFT1 = "www.memberforex.com/hft";
extern string HFT2 = "www.memberforex.com/samurai";
extern string AnotherPrivate_or_Develop = "Contact Our Mail/Facebook @NinjaForex";
extern string Parameter_Plus = "==================";
extern double LBL = 20.0;
extern int Bar = 150;
extern int Bar1 = 140;
extern int Bar2 = 170;
extern int Bar3 = 190;
extern int MaxTrades = 15;
extern double StopLoss = 5.0;
extern double NProfit = 30.0;
extern double ITProfit = 2.3;
extern double Comm_D = 0.05;
extern double NL = 20.0;
extern double Dn = 50.0;
extern double IL = 25.0;
extern double NDn = 20.0;
extern double IDn = 25.0;
extern int Slow_P = 10;
extern double BidAsk_middle = 20.3;
extern double BidAsk_low = 10.0;
extern double BidAsk_high = 30.6;
extern double M_I_U_NinjaForex = 100.6;
extern double M_I_V_NinjaForex = 1.0;
extern double M_I_Z_NinjaForex = 0.6;
extern int BarCandle_Use = 1;
extern string Info_NinjaForex = "Mail : m*********x*@gmail.com | Facebook : @NinjaForex";

int Filter = 140;
double MaxSpreadPlusCommission = 10000.0;
int Limit = 20;
int Distance = 21;
int MAPeriod = 3;
int MAMethod = 3;
int Gi_180 = 0;
double G_pips_184 = 0.0;
int G_digits_192 = 0;
double G_point_196 = 0.0;
int Gi_204;
double Gd_208;
double Gd_216;
double Gd_224;
double Gd_232;
double Gd_240;
double Gd_248;
double Gd_256;
int G_slippage_264 = 3;
bool Gi_268;
double Gd_272;
double Gda_280[30];
int Gi_284 = 0;
string Gs_dummy_288;
string Gs_unused_316 = "";
string Gs_unused_324 = "";
double Gd_336;
double Gd_344;
int G_time_352;
int Gi_356;
int G_datetime_360;
string Gs_364 = "000,000,000";
string Gs_372 = "000,000,255";
int Gi_380;
int Gi_384;
int Gi_388;
int Gi_392 = 40;
double G_timeframe_396 = 240.0;
bool Gi_404 = TRUE;
color G_color_408 = DimGray;
string G_name_412 = "SpreadIndikatorObj";
double Gd_420;
color G_color_428 = Red;
color G_color_432 = DarkGray;
color G_color_436 = SpringGreen;
bool Gi_440 = TRUE;
double G_ihigh_444;
double G_ilow_452;
double Gd_460;
int G_datetime_468;

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

int deinit() {
   if (!IsTesting()) {
      for (int Li_0 = 1; Li_0 <= Gi_392; Li_0++) ObjectDelete("Padding_rect" + Li_0);
      for (int count_4 = 0; count_4 < 10; count_4++) {
         ObjectDelete("BD" + count_4);
         ObjectDelete("SD" + count_4);
      }
      ObjectDelete("time");
      ObjectDelete(G_name_412);
   }
   Comment("");
   ObjectDelete("B3LLogo");
   ObjectDelete("B3LCopy");
   ObjectDelete("FiboUp");
   ObjectDelete("FiboDn");
   ObjectDelete("FiboIn");
   return (0);
}

int start() {
      // код доступен только после оплаты
   }
   int error_8;
   string Ls_12;
   int ticket_20;
   double price_24;
   bool bool_32;
   double Ld_36;
   double Ld_44;
   double price_60;
   double Ld_112;
   int Li_180;
   int cmd_188;
   double Ld_196;
   double Ld_204;
   double ihigh_68 = iHigh(NULL, 0, 0);
   double ilow_76 = iLow(NULL, 0, 0);
   double ima_84 = iMA(NULL, 0, MAPeriod, Gi_180, MAMethod, PRICE_LOW, 0);
   double ima_92 = iMA(NULL, 0, MAPeriod, Gi_180, MAMethod, PRICE_HIGH, 0);
   double Ld_100 = ima_84 - ima_92;
   if (!Gi_268) {
      for (int pos_108 = OrdersHistoryTotal() - 1; pos_108 >= 0; pos_108--) {
         if (OrderSelect(pos_108, SELECT_BY_POS, MODE_HISTORY)) {
            if (OrderProfit() != 0.0) {
               if (OrderClosePrice() != OrderOpenPrice()) {
                  if (OrderSymbol() == Symbol()) {
                     Gi_268 = TRUE;
                     Ld_112 = MathAbs(OrderProfit() / (OrderClosePrice() - OrderOpenPrice()));
                     Gd_272 = (-OrderCommission()) / Ld_112;
                     break;
                  }
               }
            }
         }
      }
   }

   double Ld_120 = Ask - Bid;
   ArrayCopy(Gda_280, Gda_280, 0, 1, 29);
   Gda_280[29] = Ld_120;
   if (Gi_284 < 30) Gi_284++;
   double Ld_128 = 0;
   pos_108 = 29;
   for (int count_136 = 0; count_136 < Gi_284; count_136++) {
      Ld_128 += Gda_280[pos_108];
      pos_108--;
   }
   double Ld_140 = Ld_128 / Gi_284;
   double Ld_148 = NormalizeDouble(Ask + Gd_272, G_digits_192);
   double Ld_156 = NormalizeDouble(Bid - Gd_272, G_digits_192);
   double Ld_164 = NormalizeDouble(Ld_140 + Gd_272, G_digits_192 + 1);
   double Ld_172 = ihigh_68 - ilow_76;
   if (Ld_172 > Gd_256) {
      if (Bid < ima_84) Li_180 = -1;
      else
         if (Bid > ima_92) Li_180 = 1;
   }
   int count_184 = 0;
   for (pos_108 = 0; pos_108 < OrdersTotal(); pos_108++) {
      if (OrderSelect(pos_108, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderMagicNumber() == MagicNumber) {
            cmd_188 = OrderType();
            if (cmd_188 == OP_BUYLIMIT || cmd_188 == OP_SELLLIMIT) continue;
            if (OrderSymbol() == Symbol()) {
               count_184++;
               switch (cmd_188) {
               case OP_BUY:
                  if (Distance < 0) break;
                  Ld_44 = NormalizeDouble(OrderStopLoss(), G_digits_192);
                  price_60 = NormalizeDouble(Bid - Gd_248, G_digits_192);
                  if (!((Ld_44 == 0.0 || price_60 > Ld_44))) break;
                  bool_32 = OrderModify(OrderTicket(), OrderOpenPrice(), price_60, OrderTakeProfit(), 0, Lime);
                  if (!(!bool_32)) break;
                  error_8 = GetLastError();
                  Ls_12 = ErrorDescription(error_8);
                  Print("BUY Modify Error Code: " + error_8 + " Message: " + Ls_12 + " OP: " + DoubleToStr(price_24, G_digits_192) + " SL: " + DoubleToStr(price_60, G_digits_192) +
                     " Bid: " + DoubleToStr(Bid, G_digits_192) + " Ask: " + DoubleToStr(Ask, G_digits_192));
                  break;
               case OP_SELL:
                  if (Distance < 0) break;
                  Ld_44 = NormalizeDouble(OrderStopLoss(), G_digits_192);
                  price_60 = NormalizeDouble(Ask + Gd_248, G_digits_192);
                  if (!((Ld_44 == 0.0 || price_60 < Ld_44))) break;
                  bool_32 = OrderModify(OrderTicket(), OrderOpenPrice(), price_60, OrderTakeProfit(), 0, Orange);
                  if (!(!bool_32)) break;
                  error_8 = GetLastError();
                  Ls_12 = ErrorDescription(error_8);
                  Print("SELL Modify Error Code: " + error_8 + " Message: " + Ls_12 + " OP: " + DoubleToStr(price_24, G_digits_192) + " SL: " + DoubleToStr(price_60, G_digits_192) +
                     " Bid: " + DoubleToStr(Bid, G_digits_192) + " Ask: " + DoubleToStr(Ask, G_digits_192));
                  break;
               case OP_BUYSTOP:
                  Ld_36 = NormalizeDouble(OrderOpenPrice(), G_digits_192);
                  price_24 = NormalizeDouble(Ask + Gd_240, G_digits_192);
                  if (!((price_24 < Ld_36))) break;
                  price_60 = NormalizeDouble(price_24 - StopLoss * Point, G_digits_192);
                  bool_32 = OrderModify(OrderTicket(), price_24, price_60, OrderTakeProfit(), 0, Lime);
                  if (!(!bool_32)) break;
                  error_8 = GetLastError();
                  Ls_12 = ErrorDescription(error_8);
                  Print("BUYSTOP Modify Error Code: " + error_8 + " Message: " + Ls_12 + " OP: " + DoubleToStr(price_24, G_digits_192) + " SL: " + DoubleToStr(price_60, G_digits_192) +
                     " Bid: " + DoubleToStr(Bid, G_digits_192) + " Ask: " + DoubleToStr(Ask, G_digits_192));
                  break;
               case OP_SELLSTOP:
                  Ld_36 = NormalizeDouble(OrderOpenPrice(), G_digits_192);
                  price_24 = NormalizeDouble(Bid - Gd_240, G_digits_192);
                  if (!((price_24 > Ld_36))) break;
                  price_60 = NormalizeDouble(price_24 + StopLoss * Point, G_digits_192);
                  bool_32 = OrderModify(OrderTicket(), price_24, price_60, OrderTakeProfit(), 0, Orange);
                  if (!(!bool_32)) break;
                  error_8 = GetLastError();
                  Ls_12 = ErrorDescription(error_8);
                  Print("SELLSTOP Modify Error Code: " + error_8 + " Message: " + Ls_12 + " OP: " + DoubleToStr(price_24, G_digits_192) + " SL: " + DoubleToStr(price_60, G_digits_192) +
                     " Bid: " + DoubleToStr(Bid, G_digits_192) + " Ask: " + DoubleToStr(Ask, G_digits_192));
               }
            }
         }
      }
   }
   if (count_184 == 0 && Li_180 != 0 && Ld_164 <= Gd_232 && f0_4()) {
      Ld_196 = AccountBalance() * AccountLeverage() * Gd_224;
      if (!UseMM) Ld_196 = FixedLots;
      Ld_204 = NormalizeDouble(Ld_196 / MarketInfo(Symbol(), MODE_LOTSIZE), Gi_204);
      Ld_204 = MathMax(Gd_208, Ld_204);
      Ld_204 = MathMin(Gd_216, Ld_204);
      if (Li_180 < 0) {
         price_24 = NormalizeDouble(Ask + Gd_240, G_digits_192);
         price_60 = NormalizeDouble(price_24 - StopLoss * Point, G_digits_192);
         ticket_20 = OrderSend(Symbol(), OP_BUYSTOP, Ld_204, price_24, G_slippage_264, price_60, 0, TradeComment, MagicNumber, 0, Lime);
         if (ticket_20 <= 0) {
            error_8 = GetLastError();
            Ls_12 = ErrorDescription(error_8);
            Print("BUYSTOP Send Error Code: " + error_8 + " Message: " + Ls_12 + " LT: " + DoubleToStr(Ld_204, Gi_204) + " OP: " + DoubleToStr(price_24, G_digits_192) + " SL: " +
               DoubleToStr(price_60, G_digits_192) + " Bid: " + DoubleToStr(Bid, G_digits_192) + " Ask: " + DoubleToStr(Ask, G_digits_192));
         }
      } else {
         price_24 = NormalizeDouble(Bid - Gd_240, G_digits_192);
         price_60 = NormalizeDouble(price_24 + StopLoss * Point, G_digits_192);
         ticket_20 = OrderSend(Symbol(), OP_SELLSTOP, Ld_204, price_24, G_slippage_264, price_60, 0, TradeComment, MagicNumber, 0, Orange);
         if (ticket_20 <= 0) {
            error_8 = GetLastError();
            Ls_12 = Erro

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

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

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

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

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

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

Стоимость полного кода
2 075,40₽ ≈ $25.37