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

10pipsonceadayoppositelastnhourtrend.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 общих тегов
Вы автор или правообладатель?

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

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

О программе

Данный продукт представляет собой советник для платформы MetaTrader 4, написанный на языке MQL4. Он открывает одну торговую позицию в день в заданный пользователем час, выбирая направление противоположное тренду, наблюдаемому на часовом графике H1 за последние N часов.

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

Также реализованы функции управления жизненным циклом позиций: автоматическое закрытие ордеров старше заданного возраста, закрытие всех открытых позиций и модификация существующих ордеров через трейлинг-стоп. Торговля выполняется один раз на каждом новом баре.

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

НастройкаОписание
if 0, uses maximumrisk, else uses only this while trading (FIXLOT) Фиксированный лот — Фиксированный лот для торговли; если равен 0, используется расчёт на основе максимального риска
minimum lot (MINLOTS) Минимальный лот — Минимально допустимый размер лота
maximum lot (MAXLOTS) Максимальный лот — Максимально допустимый размер лота
maximum risk, if FIXLOT = 0 (MAXIMUMRISK) Максимальный риск — Максимальный риск в процентах от свободного маржа, используется при FIXLOT = 0
max slippage alowed (SLIPPAGE) Проскальзывание — Максимально допустимое проскальзывание цены при исполнении ордера
time when position should be oppened (TRADINGHOUR) Торговый час — Час суток, в который советник открывает позицию
amount of hours to check price difference to see a "trend" (HOURSTOCHECKTREND) Часы для проверки тренда — Количество часов для проверки разницы цен и определения тренда на графике H1
max age of position - closes older positions (ORDERMAXAGE) Максимальный возраст ордера — Максимальный возраст позиции в секундах; позиции старше этого значения закрываются автоматически
multiply lots when position -1 was loss (FIRSTMULTIPLICATOR) Первый множитель — Множитель лота, применяемый, если последний исторический ордер был убыточным
multiply lots when position -2 was loss (SECONDMULTIPLICATOR) Второй множитель — Множитель лота, применяемый, если второй последний исторический ордер был убыточным
multiply lots when position -3 was loss (THIRDMULTIPLICATOR) Третий множитель — Множитель лота, применяемый, если третий последний исторический ордер был убыточным
multiply lots when position -4 was loss (FOURTHMULTIPLICATOR) Четвёртый множитель — Множитель лота, применяемый, если четвёртый последний исторический ордер был убыточным
multiply lots when position -5 was loss (FIFTHMULTIPLICATOR) Пятый множитель — Множитель лота, применяемый, если пятый последний исторический ордер был убыточным
SL (STOPLOSS) Стоп-лосс — Уровень стоп-лосса в пунктах
TRAILINGSTOP Трейлинг-стоп — Расстояние трейлинг-стопа в пунктах для автоматической модификации позиции
TP (TAKEPROFIT) Тейк-профит — Уровень тейк-профита в пунктах
Получить полный код

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

#define  MAGICMA           0

string   SYMBOL            = "EURUSD";
int      TIMEFRAME         = 0;
int      MAXORDERS         = 1;

int      TRADINGDAYHOURS[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23};

extern double   FIXLOT            = 0.1;      //if 0, uses maximumrisk, else uses only this while trading
extern double   MINLOTS           = 0.1;      //minimum lot
extern double   MAXLOTS           = 5;        //maximum lot
extern double   MAXIMUMRISK       = 0.05;     //maximum risk, if FIXLOT = 0
extern int      SLIPPAGE          = 3;        //max slippage alowed

extern int      TRADINGHOUR       = 7;        //time when position should be oppened
extern int      HOURSTOCHECKTREND  = 30;      //amount of hours to check price difference to see a "trend"
extern int      ORDERMAXAGE       = 75600;    //max age of position - closes older positions

extern int      FIRSTMULTIPLICATOR   = 4;     //multiply lots when position -1 was loss
extern int      SECONDMULTIPLICATOR  = 2;     //multiply lots when position -2 was loss
extern int      THIRDMULTIPLICATOR   = 5;     //multiply lots when position -3 was loss
extern int      FOURTHMULTIPLICATOR  = 5;     //multiply lots when position -4 was loss
extern int      FIFTHMULTIPLICATOR   = 1;     //multiply lots when position -5 was loss

extern double   STOPLOSS          = 50;       //SL
extern double   TRAILINGSTOP      = 0;        //
extern double   TAKEPROFIT        = 10;       //TP

datetime LastBarTraded     = 0;

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

int deinit()
{

   return(0);
}

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

bool TradeAllowed()
{

   if(LastBarTraded == Time[0])
      return(false);

   if(iVolume(SYMBOL, PERIOD_H1, 0) > 1)
      return(false);
   if(!IsTradeAllowed()) 
      return(false);
   if(OrdersTotal() >= MAXORDERS)
      return(false);
   if(!IsTradingHour())
   {
      CloseAllPositions();
      return(false);
   }
   return(true);
}

bool IsTradingHour()
{
   int i;
   bool istradinghour = false;

   for(i = 0; i < ArraySize(TRADINGDAYHOURS); i++)
   {
      if(TRADINGDAYHOURS[i] == Hour())
      {
         istradinghour = true;
         break;
      }      
   }
   return(istradinghour);
}

double GetLots()
{
   double lot, result;
   if(FIXLOT == 0)
      lot = NormalizeDouble(AccountFreeMargin() * MAXIMUMRISK / 1000.0, 1);
   else
      lot = FIXLOT;

   OrderSelect(OrdersHistoryTotal() - 1, SELECT_BY_POS, MODE_HISTORY);
   if(OrderProfit() < 0)
      lot = lot * FIRSTMULTIPLICATOR;
   else
   {
      OrderSelect(OrdersHistoryTotal() - 2, SELECT_BY_POS, MODE_HISTORY);
      if(OrderProfit() < 0)
         lot = lot * SECONDMULTIPLICATOR;
      else
      {
         OrderSelect(OrdersHistoryTotal() - 3, SELECT_BY_POS, MODE_HISTORY);
         if(OrderProfit() < 0)
            lot = lot * THIRDMULTIPLICATOR;
         else
         {
            OrderSelect(OrdersHistoryTotal() - 4, SELECT_BY_POS, MODE_HISTORY);
            if(OrderProfit() < 0)
               lot = lot * FOURTHMULTIPLICATOR;
            else
            {
               OrderSelect(OrdersHistoryTotal() - 5, SELECT_BY_POS, MODE_HISTORY);
               if(OrderProfit() < 0)
                  lot = lot * FIFTHMULTIPLICATOR;
            }
         }
      }
   }

   if(lot > NormalizeDouble(AccountFreeMargin() / 1000.0, 1))
      lot = NormalizeDouble(AccountFreeMarg

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

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

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

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

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

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

Стоимость полного кода
490₽ ≈ $5.99