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

Reverse Martingale

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

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

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

О программе

Reverse Martingale — торговый советник для платформы MetaTrader 4. Программа анализирует ценовые данные и использует сигналы скользящей средней для принятия решений об открытии позиций. При формировании нового свечного бара и при выполнении условий по спреду советник открывает покупки или продажи в зависимости от соотношения цены и значения скользящей средней.

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

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

Программа написана на языке MQL4 и работает в среде MetaTrader 4, обрабатывая рыночные и торговые события через стандартные обработчики OnTick.

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

НастройкаОписание
Fix Lot Size (AutoLot) Авто лот — Фиксированный размер лота в условных единицах, используемый для автоматического расчёта лота на основе баланса аккаунта.
Stoploss In Pips (StopLoss) Стоп-лосс — Стоп-лосс в пипсах для открытых ордеров (0 — отключён).
Stoploss In DD (StopLossDD) Стоп-лосс по просадке — Уровень просадки от баланса в процентах, при достижении которого все позиции закрываются (0 — отключено).
TakeProfit In Pips (TakeProfit) Тейк-профит — Тейк-профит в пипсах для открытых ордеров (0 — отключён).
Order Magic Number (MagicNumber) Магический номер — Магический номер ордера для идентификации ордеров, открытых данным советником.
Maximum Orders To Open (Max_Orders) Максимальное количество ордеров — Максимальное количество одновременно открытых ордеров, допускаемое советником.
Spread In Pips (Spread) Спред — Максимально допустимый спред в пипсах для открытия ордеров.
Use Martingale (UseMartingale) Использовать мартингейл — Переключатель использования мартингейл-стратегии управления лотами.
Avoid NFT (nfp) Ограничение по дням недели — Переключатель ограничения торговли по дням недели (при активации блокирует торговлю в определённые дни).
No trading 7 days before and after new year (new_year_days) Дни вокруг Нового года — Количество дней до и после Нового года, в течение которых торговля запрещена.
Maximum Lot size To Use (MaxLot) Максимальный лот — Максимально допустимый размер лота для использования в торговых операциях.
Lot Multiplier (Multiplier) Множитель лота — Множитель для увеличения размера лота при мартингейл-стратегии.
Moving_Average Разделитель скользящей средней — Текстовый разделитель для группы настроек скользящей средней.
MaPeriod Период скользящей средней — Период (количество баров) для расчёта скользящей средней.
MaShift Сдвиг скользящей средней — Сдвиг скользящей средней в барах относительно текущего бара.
Ma_Method Метод скользящей средней — Метод расчёта скользящей средней (тип усреднения).
Apply_Price Применяемая цена — Применяемая цена для расчёта скользящей средней (тип ценового значения).
Получить полный код

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

#property version   "3.00"
#property strict
#define     NL    "\n"

input int AutoLot=5000; //Fix Lot Size
double FixLot;
input int    StopLoss=0; //Stoploss In Pips
input int    StopLossDD=26; //Stoploss In DD
input int    TakeProfit=30; //TakeProfit In Pips
input int    MagicNumber=123; //Order Magic Number
input int    Max_Orders=6; //Maximum Orders To Open
input long   Spread=5; //Spread In Pips
input bool   UseMartingale=true; //Use Martingale
input bool   nfp = true;//Avoid NFT
input int    new_year_days = 7; // No trading 7 days before and after new year
input double MaxLot=0.64; //Maximum Lot size To Use
input double Multiplier=2; //Lot Multiplier

input string  Moving_Average="=================";
input int     MaPeriod=200;
input int     MaShift=0;

input ENUM_MA_METHOD     Ma_Method=MODE_LWMA;
input ENUM_APPLIED_PRICE Apply_Price=PRICE_CLOSE;

datetime candletime=0;
double stoplevel,Upper_stoplevel,Lower_stoplevel;
datetime EaStartTime=TimeCurrent();

double lotsize;
int max_opentrades=0;
double currentdde=0;

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

void OnDeinit(const int reason)
  {

  }

void OnTick()
  {
      // код доступен только после оплаты
   } //end of ontick

int Count(int Type)
  {
   int count=0;
   for(int i=0; i<=OrdersTotal()-1; i++)
     {
      bool Select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(Select && OrderSymbol()==_Symbol && OrderMagicNumber()==MagicNumber && OrderType()==Type) count++;
     }
   return (count);
  }

double OpenOrder(int Type , double lot =0)
  {
   double openprice=0; double stoploss=0; double takeprofit=0; double Lot=FixLot; double lots[]; LotSizeCalc(lots);

   if(_Point==0.00001 || _Point==0.001)
     {
      stoploss=(StopLoss*10)*_Point;
      takeprofit=(TakeProfit*10)*_Point;
     }

   if(_Point==0.0001 || _Point==0.01)
     {
      stoploss=(StopLoss)*_Point;
      takeprofit=(TakeProfit)*_Point;
     }

   if(lots[losscnt()]>=MaxLot)
     {
      EaStartTime=TimeCurrent();
      return 0;
     }

   if(Type==OP_BUY)
     {
      openprice=Ask;
      if(StopLoss>0) stoploss=openprice-stoploss;
      if(TakeProfit>0) takeprofit=openprice+takeprofit;
     }

   if(Type==OP_SELL)
     {
      openprice=Bid;
      if(StopLoss>0) stoploss=openprice+stoploss;
      if(TakeProfit>0) takeprofit=openprice-takeprofit;
     }

   if(Lot>PrevOrderLot()) lotsize=Lot;
  if(lot>0)Lot = lot;
  if(Lot>MaxLot) Lot=FixLot;
   int Ticket=OrderSend(_Symbol,Type,Lot,openprice,300,stoploss,takeprofit,"Order Placed",MagicNumb

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

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

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

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

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

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

Стоимость полного кода
582,30₽ ≈ $7.12