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

ai gen xii mt4.mq4

Похожие материалы по тегам

#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 1 общих теговsma crossover scalper ea for mt4.mq4MQL4 / MetaTrader 4 · 1 общих теговr15 pivot points expert advisor by @fundedmillionairess.mq4MQL4 / MetaTrader 4 · 1 общих теговnewstrader.mq5MQL5 / MetaTrader 5 · 1 общих теговmm3.0_flip_codepro_v3.1_with_cooldown@lifeindreamsworld.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

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

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

НастройкаОписание
_Desc2 Описание 2 — Текстовый параметр для дополнительного описания или метки
_exPositionsTp Тип максимума позиций — Определяет тип или режим ограничения количества одновременных позиций
_exeTPSLType Тип TP/SL — Задаёт тип или метод расчёта тейк-профита и стоп-лосса
_dxTakeProfit Тейк-профит — Уровень тейк-профита в пунктах
_dxStopLoss Стоп-лосс — Уровень стоп-лосса в пунктах
_ixRisk Уровень риска — Целочисленный параметр, связанный с расчётом риска
_dxRiskDecreaser Декремент риска — Коэффициент уменьшения размера риска
_bxRecovery Восстановление — Включает или отключает режим восстановления позиции
_ixRecoveryTrades Сделки восстановления — Количество сделок в режиме восстановления
_dxRecoveryFactor Фактор восстановления — Множитель, используемый при расчёте восстановления
_bxCloseOnFriday Закрытие в пятницу — Автоматическое закрытие позиций в пятницу
_ixCloseHour Час закрытия — Час в GMT для автоматического закрытия позиций
_ixAutoLotSize Авто-размер лота — Включает автоматический расчёт размера лота
_dxLotSize Размер лота — Фиксированный размер лота для сделок
_bxUsePropFirm Проп-фирма — Включает режим работы с проприетарной фирмой
_dxUsesBalance Используемый баланс — Значение баланса, используемое для расчётов
_dxMaxDrawdownBalance Макс. просадка баланса — Допустимый максимальный процент просадки по балансу
_dxMaxDrawdown Макс. просадка — Допустимый максимальный процент просадки
_bxUseTrailing Трейлинг-стоп — Включает или отключает трейлинг-стоп
_dxTrailingStart Начало трейлинга — Расстояние в пунктах, при котором начинается трейлинг-стоп
_dxTrailingStep Шаг трейлинга — Шаг сдвига трейлинг-стопа в пунктах
_sxTradingDays Дни торговли — Строка с перечислением дней недели для торговли
_ixMaxSpread Макс. спред — Максимально допустимый спред в пунктах
_sxParamDesc1 Описание параметра 1 — Текстовый параметр описания
_sxParamDesc11 Описание параметра 11 — Текстовый параметр описания
_ixExpertMagic Магический номер — Магический номер для идентификации ордеров советника
_sxExpertComment Комментарий — Текст комментария, добавляемый к ордерам
_sxParamDesc10 Описание параметра 10 — Текстовый параметр описания
_sxParamDesc101 Описание параметра 101 — Текстовый параметр описания
_ixGPTModel Модель GPT — Целочисленный параметр выбора модели
_bxGPTBoost Ускорение GPT — Включает или отключает ускорение модели
_eixAggrsTrading Агрессивность торговли — Параметр агрессивности торгового поведения
_iexGPTFunc Функция GPT — Индекс или идентификатор функции GPT
bxApplyNewsFilterToAllPairs Фильтр новостей для всех пар — Применяет фильтр новостей ко всем торговым парам
_ixNewsMinutesBefore Минуты до новости — Время в минутах до события новости, в течение которого действуют ограничения
_ixNewsMinutesAfter Минуты после новости — Время в минутах после события новости, в течение которого действуют ограничения
_ebxDisAnimation Отключить анимацию — Отключает анимацию интерфейса
_bxDrawMenu Рисовать меню — Включает отрисовку пользовательского меню на графике
Получить полный код

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

#include <stdlib.mqh>

extern string _Desc2 = " MM ";
extern int _exPositionsTp = 2;
extern int _exeTPSLType = 1;
extern double _dxTakeProfit = 70.0;
extern double _dxStopLoss = 320.0;
extern int _ixRisk = 180;
extern double _dxRiskDecreaser = 1.0;
extern bool _bxRecovery = FALSE;
extern int _ixRecoveryTrades = 2;
extern double _dxRecoveryFactor = 3.0;
extern bool _bxCloseOnFriday = FALSE;
extern int _ixCloseHour = 21;
extern bool _ixAutoLotSize = TRUE;
extern double _dxLotSize = 0.01;
extern bool _bxUsePropFirm = FALSE;
extern double _dxUsesBalance = 0.0;
extern double _dxMaxDrawdownBalance = 0.0;
extern double _dxMaxDrawdown = 4.3;
extern bool _bxUseTrailing = FALSE;
extern double _dxTrailingStart = 52.0;
extern double _dxTrailingStep = 17.0;
extern string _sxTradingDays = "1,2,3,4,5";
extern int _ixMaxSpread = 0;
extern string _sxParamDesc1 = " ";
extern string _sxParamDesc11 = " MC ";
extern int _ixExpertMagic = 5005;
extern string _sxExpertComment = "AI GEN XII";
extern string _sxParamDesc10 = " ";
extern string _sxParamDesc101 = " GPT ";
extern int _ixGPTModel = 3;
extern bool _bxGPTBoost = FALSE;
extern int _eixAggrsTrading = 1;
extern int _iexGPTFunc = 0;
extern bool bxApplyNewsFilterToAllPairs = TRUE;
extern int _ixNewsMinutesBefore = 120;
extern int _ixNewsMinutesAfter = 60;
extern bool _ebxDisAnimation = FALSE;
extern bool _bxDrawMenu = TRUE;

 double    Lots         = 0.1;
 int       StartTimeGMT = 400;       // Start trading at 4:00 GMT
 int       StopTimeGMT  = 900;       // Stop trading at  9:00 GMT
 int       Hi_Timeframe = PERIOD_H4; // Higher timeframe to test
 int       Lo_Timeframe = PERIOD_H1; // Lower timeframe to test
 int       NoBars       = 3;         // Number of bars
 int       Pips_offset  = 1;         // Offset for entry above 3 Bars
 int       DaysExit     = 1;         // Exit the same day close (2-next day close, etc).
 int       StopLoss     = 30;   // 0 deactivates Stop Loss
 int       TrailingStop = 0;    // 0 deactivates Trailing Stop
 int       TakeProfit   = 0;    // 0 deactivates Take Profit
 int       GainForBE    = 0;    // How many pips will trigger Break Even
 int       PipsBE       = 0;    // Level at which Break Even will be put
 int       Slippage     = 3;

#define MAGIC 200707012

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

int deinit()
{
  Comment(WindowExpertName()," finished.");
  return(0);
}

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

int _3barHiLo(string symbol, int period, int magic, double lots, int stoploss, int trailingstop, int takeprofit, 
              int gainforbe, int pipsbe, int slippage, int starttime, int stoptime,
              int hi_timeframe=PERIOD_H4, int lo_timeframe=PERIOD_H1, int nobars=3, int pips_offset=1, int daysexit=0)
{

  int _Digits = MarketInfo(symbol, MODE_DIGITS), i;
  if(_Digits == 0) _Digits = 4;
  double _Point = MarketInfo(symbol, MODE_POINT);
  if(NormalizeDouble(_Point, _Digits) == 0.0) _Point = Point;
  double _Bid = MarketInfo(symbol, MODE_BID);
  double _Ask = MarketInfo(symbol, MODE_ASK);
  int   _iBid = MathRound(_Bid/_Point);
  string _cm = "Time GMT: " ;
  bool _can_open = true;

  datetime _now = TimeCurrent();
  datetime _st = MathFloor(_now/86400)*86400 + MathRound(starttime/100)*3600+MathMod(starttime, 100)*60;
  datetime _en = MathFloor(_now/86400)*86400 + MathRound(stoptime/100)*3600+MathMod(stoptime, 100)*60;
  while(_st <= _now) _st += 86400;
  while(_en <= _now) _en += 86400;
  if(_st<_en) _can_open = false;

  static bool _long  = false;
  static bool _short = false;
  if(_iBid > MathRound(iHigh(symbol, hi_timeframe, iHighest(symbol, hi_timeframe, MODE_HIGH, nobars, 1))/_Point))
    if(_iBid >= MathRound(iHigh(symbol, lo_timeframe, iHighest(symbol, lo_timeframe, MODE_HIGH, nobars,1))/_Point)+pips_offset)
      _long = _can_open;
  if(_iBid < MathRound(iLow(symbol, hi_timeframe, iLowest(symbol, hi_timeframe, MODE_LOW, nobars, 1))/_Point))
    if(_iBid >= MathRound(iLow(symbol, lo_timeframe, iLowest(symbol, lo_timeframe, MODE_LOW, nobars,1))/_Point)+pips_offset)
      _short = _can_open;
  if(!_ip(OP_BUY, symbol, magic))
  if(_long) Print("Bid: ", _iBid,"; H4: ",MathRound(iHigh(symbol, hi_timeframe, iHighest(symbol, hi_timeframe, MODE_HIGH, nobars, 1))/_Point),"; H1: ",
                  MathRound(iHigh(symbol, lo_timeframe, iHighest(symbol, lo_timeframe, MODE_HIGH, nobars,1))/_Point));
  if(!_ip(OP_SELL, symbol, magic))
  if(_short) Print("Bid: ",_iBid,"; H4: ",MathRound(iLow(symbol, hi_timeframe, iLowest(symbol, hi_timeframe, MODE_LOW, nobars, 1))/_Point),"; H1: ",
                   MathRound(iLow(symbol, lo_timeframe, iLowest(symbol, lo_timeframe, MODE_LOW, nobars,1))/_Point));

  bool _send_ok = true;
  if(_long){
    if(_ip(OP_SELL, symbol, magic))
      _OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), slippage, Red);
    if(!_ip(OP_BUY, symbol, magic))
      _send_ok = _OrderSend(symbol, OP_BUY, _nv(symbol, lots), _Ask, slippage, _sl(OP_BUY, symbol, _Bid, stoploss), _tp(OP_BUY, symbol, _Bid, takeprofit),
                            WindowExpertName(), magic, 0, Blue) > 0;
  }
  if(_short){
    if(_ip(OP_BUY, symbol, magic))
      _OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), slippage, Blue);
    if(!_ip(OP_SELL, symbol, magic))
      _send_ok = _OrderSend(symbol, OP_SELL, _nv(symbol, lots), _Bid, slippage, _sl(OP_SELL, symbol, _Ask, stoploss), _tp(OP_SELL, symbol, _Ask, takeprofit),
                            WindowExpertName(), magic, 0, Red) > 0;
  }

  if(_ip(OP_BUY, symbol, magic))
  {
    int diff = MathFloor((TimeCurrent()-OrderOpenTime())/86400.0);
    if(TimeDayOfYear(OrderOpenTime())!=DayOfYear()) diff++; 
    if(diff>=daysexit) _fa(symbol, magic);
  }
  if(_ip(OP_SELL, symbol, magic))
  {
    diff = MathFloor((TimeCurrent()-OrderOpenTime())/86400.0);
    if(TimeDayOfYear(OrderOpenTime())!=DayOfYear()) diff++; 
    if(diff>=daysexit) _fa(symbol, magic);
  }

  if(trailingstop > 0)
    for(i=0; i < OrdersTotal(); i++)
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
        if(OrderSymbol() == symbol)
          if(OrderMagicNumber() == magic)
            if(OrderType() == OP_BUY){
              if(MathRound((OrderClosePrice()-OrderStopLoss())/_Point) > trailingstop)
                if(!OrderModify(OrderTicket(), OrderOpenPrice(), OrderClosePrice()-trailingstop*_Point, OrderTakeProfit(),
                                OrderExpiration(), Blue))
                  Print("OrderModify(OP_BUY) error - ", ErrorD

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

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

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

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

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

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

Стоимость полного кода
1 096,80₽ ≈ $13.41