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

mega bux pips.mq4

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

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

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

О программе

Данный продукт представляет собой торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник предназначен для автоматической торговли на таймфрейме М1 и работает с валютными парами EURUSD и GBPUSD. Он анализирует ценовые данные с использованием скользящей средней типа LWMA и формирует рыночные и отложенные ордера.

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

В качестве торговых API используются стандартные функции MetaTrader 4: OrderSend, OrderModify и OrderDelete. Советник отслеживает текущие позиции, корректирует их параметры при смещении цены и управляет отложенными ордерами в зависимости от рыночной ситуации.

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

НастройкаОписание
Lots Фиксированный размер лота, используемый при нулевой доле депозита, либо минимальный допустимый лот при активном динамическом расчёте.
Ddep Доля депозита (в долях от 1) для динамического расчёта размера лота. При значении 0 лот фиксируется равным параметру Lots; при значении больше 0 лот рассчитывается исходя из свободного плеча аккаунта.
Dmargin Множитель плеча, определяющий порог для активации динамического расчёта лота. Лот рассчитывается только при условии, что свободное плечо превышает произведение текущего плеча на этот параметр.
Configuration Текстовый параметр, используемый в качестве заголовка раздела конфигурации настроек советника.
Mode_HighSpeed Переключатель режима высокой скорости. При активном состоянии используется набор параметров, оптимизированных для быстрого исполнения; при неактивном — альтернативные параметры.
Mode_Safe Пороговое значение диапазона свечи, при превышении которого активируется особая логика формирования торговых сигналов.
Username Текстовый параметр, обозначающий имя пользователя или торговый аккаунт, связанный с работой советника.
Pma Период скользящей средней типа LWMA, используемой для определения уровней ценовых сигналов.
OrderCmt Текстовый комментарий, присваиваемый каждому ордеру при его открытии для удобства идентификации в истории торгов.
TakeProfit Значение тейк-профита в пунктах, устанавливаемое при открытии ордеров.
StopLoss Значение стоп-лосса в пунктах, устанавливаемое при открытии ордеров.
distance Расстояние в пунктах от текущей цены для размещения отложенных ордеров BUYSTOP и SELLSTOP.
SL_TP_Trailing Текстовый параметр, используемый в качестве заголовка раздела настроек стоп-лосса, тейк-профита и трейлинг-стопа.
Trailing_Resolution Шаг или разрешение трейлинг-стопа в пунктах, определяющее минимальное расстояние для перемещения стоп-лосса.
Trailing_Stop Переключатель, включающий или отключающий автоматическое перемещение стоп-лосса и тейк-профита по ходу движения цены.
Magic Магический номер, идентифицирующий ордера, открытые данным советником, для корректной фильтрации при управлении позициями.
Получить полный код

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

#include <stdlib.mqh>
extern string  Free_forex_tools        = "";
extern double Lots = 0.01; //постоянный лот при доле депа =0 и мин лот при доле депа отличной от 0
extern double Ddep = 0.2;//
extern double Dmargin =1;
extern string Configuration = "================ Configuration";
extern bool Mode_HighSpeed = TRUE;
extern double Mode_Safe = 0.002;
extern string Username = "************";
extern int Pma=39;
extern string OrderCmt = "X";
extern double TakeProfit = 50.0;
extern double StopLoss = 60.0;
extern double distance = 30.0;
double gd_136 = 0.1;

double gd_196 = 40.0;
double gd_228 = 0.3333333333;
double gd_236 = 0.0;
extern string SL_TP_Trailing = "---------------- SL / TP / Trailing";
extern double Trailing_Resolution = 0.0;
double gd_260 = 0.0;
double gd_268 = 20.0;
extern bool Trailing_Stop = TRUE;
extern int Magic = 7777;
bool gi_280 = TRUE;
int gi_312 = 0;
double gd_316 = 0.0;
int g_slippage_324 = 3;
double gda_328;
double gda_332;
int gia_336;
double gd_340 = 1.0;
double gd_348;
bool gi_356;
double gd_360;
bool gi_368 = FALSE;
double gd_372 = 1.0;
double gd_380 = 0.0;
int gi_388 = 0;
int g_time_392 = 0;
int g_count_396 = 0;
double gda_400;
int gi_404 = 0;
bool gi_408 = TRUE;
double gd_412 = 5.0;
double gd_420 = 10.0;
double gd_428 = 40.0;
bool gi_436 = FALSE;
double gd_440 = 5.0;
double gd_448 = 10.0;
double gd_456 = 40.0;
bool gi_464 = FALSE;
bool gi_unused_468 = FALSE;
int gia_492 = 0;

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

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

void f0_0(int a_timeframe_0) {
   int ticket_16;
   int li_24;
   double ld_28;
   double ld_30;
   bool bool_28;

   bool li_116;
   double ld_120;
   double ld_136;
   double ld_220;
   int datetime_236;

   double order_stoploss_260;
   double order_takeprofit_268;
   double ld_276;
   int li_292;
   int li_296;

   if (g_time_392 < Time[0]) {
      g_time_392 = Time[0];
      g_count_396 = 0;
   } else g_count_396++;
   double ihigh_64 = iHigh(Symbol(), a_timeframe_0, 0);
   double ilow_72 = iLow(Symbol(), a_timeframe_0, 0);
   double icustom_32 =  iMA(NULL, a_timeframe_0, Pma, 0, MODE_LWMA, PRICE_LOW, 0);
   double icustom_40 =  iMA(NULL, a_timeframe_0, Pma, 0, MODE_LWMA, PRICE_HIGH, 0);
   double ld_80 = icustom_32 - icustom_40;
   bool li_88 = Bid >= icustom_40 + ld_80 / 2.0;

   double ld_100 = MarketInfo(Symbol(), MODE_STOPLEVEL) * Point;
   double ld_108 = Ask - Bid;
   double ld_128 = 0.5;
   if (ld_128 < ld_100 - 5.0 * gd_316) {
      li_116 = gi_436;
      ld_120 = gd_428 * gd_316;
      ld_128 = gd_420 * gd_316;
      ld_136 = gd_412 * gd_316;
   } else {
      if (!Mode_HighSpeed) {
         li_116 = gi_464;
         ld_120 = gd_456 * gd_316;
         ld_128 = gd_448 * gd_316;
         ld_136 = gd_440 * gd_316;
      } else {
         li_116 = gi_280;
         ld_120 = gd_268 * gd_316;
         ld_128 = gd_260 * gd_316;
         ld_136 = Trailing_Resolution * gd_316;
      }
   }

   double ld_unused_144 = gda_400;
   if (gi_404 < 30) gi_404++;
   double ld_152 = 0;

   double ld_160 = ld_152 / gi_404;
   if (!gi_368 && ld_160 < 15.0 * gd_316) gd_380 = 15.0 * gd_316 - ld_160;
   double ld_168 = f0_5(Ask + gd_380);
   double ld_176 = f0_5(Bid - gd_380);
   double ld_184 = ld_160 + gd_380;

   double ld_200;
   double ld_208 = ihigh_64 - ilow_72;

   double limitTe = Mode_Safe ;

   ld_200=0.0022;
   if(ld_208>limitTe) { 
   if (Bid < icustom_40)   int li_216=-1; 
   else if (Bid > icustom_32) li_216=1;
    }    
   if (gd_236 == 0.0) ld_220 = gd_228 * ld_200;
   else ld_220 = gd_236 * gd_316;
   if (Bid == 0.0 || MarketInfo(Symbol(), MODE_LOTSIZE) == 0.0) ld_220 = 0;
   double ld_228 = ld_220 + ld_160 + gd_380;
   if (gi_408) datetime_236 = TimeCurrent() + 660.0 ;//* MathMax(10 * a_timeframe_0, 60);
   else datetime_236 = 0;

        int m;
        double MG;

        if(AccountFreeMargin()>Dmargin*AccountMargin()&&Lots>0)
        {
        MG=AccountFreeMargin();
        double Min = MarketInfo(Symbol(), MODE_LOTSTEP);

        if(Ddep>0)
        {
        m=MG/MarketInfo (Symbol(), MODE_MARGINREQUIRED)*Ddep/Min;
        gd_136 = m*Min;
        if(gd_136 > MarketInfo (Symbol(), MODE_MAXLOT))
        gd_136 = MarketInfo (Symbol(), MODE_MAXLOT);             
        if(gd_136 < Lots)
        gd_136 = Lots; 
        if(gd_136< MarketInfo(Symbol(), MODE_MINLOT)) 
        gd_136 =  MarketInfo(Symbol(), MODE_MINLOT);    
        }
        }
        if(Ddep==0)gd_136 = Lots;

   int count_252 = 0;
   int count_256 = 0;
   for (int pos_4 = 0; pos_4 < OrdersTotal(); pos_4++) {
      bool sel=OrderSelect(pos_4, SELECT_BY_POS, MODE_TRADES);
      if (OrderMagicNumber() == Magic && OrderCloseTime() == 0) {
         if (OrderSymbol() != Symbol()) {
            count_256++;
            continue;
         }
         switch (OrderType()) {
         case OP_BUY:
            while (Trailing_Stop) {
               order_stoploss_260 = OrderStopLoss();
               order_takeprofit_268 = OrderTakeProfit();
               if (!(order_takeprofit_268 < f0_5(ld_168 + ld_120) && ld_168 + ld_120 - order_takeprofit_268 > ld_136)) break;
               order_stoploss_260 = f0_5(Bid - ld_120);
               order_takeprofit_268 = f0_5(ld_168 + ld_120);
               bool_28 = OrderModify(OrderTicket(), 0, order_stoploss_260, order_takeprofit_268, datetime_236, Lime);
               if (bool_28) break;
               li_24 = f0_1();
               if (!(li_24)) break;
            }
            count_252++;
            break;
         case OP_SELL:
            while (Trailing_Stop) {
               order_stoploss_260 = OrderStopLoss();
               order_takeprofit_268 = OrderTakeProfit();
               if (!(order_takeprofit_268 > f0_5(ld_176 - ld_120) && order_takeprofit_268 - ld_176 + ld_120 > ld_136)) break;
               order_stoploss_260 = f0_5(Ask +

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

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

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

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

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

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

Стоимость полного кода
773,50₽ ≈ $9.45