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

ThreeBreaky

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

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

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

О программе

ThreeBreaky — торговый советник для MetaTrader 4, объединяющий три независимые торговые системы в одном эксперте. Каждая система использует собственные рыночные метрики для определения моментов открытия и закрытия позиций.

Советник обрабатывает событие OnTick, проверяя условия всех трёх систем и управляя ордерами через стандартные торговые функции MetaTrader 4. Позиции открываются с заданным объёмом лотов и стоп-лоссом. Для закрытия позиций применяется анализ данных индикатора SAR.

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

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

НастройкаОписание
Use system 1 (System1) System1 — Переключатель активности первой торговой системы
Use system 2 (System2) System2 — Переключатель активности второй торговой системы
Use system 3 (System3) System3 — Переключатель активности третьей торговой системы
Magic Number (system will use Magic+1, Magic+2, Magic+3) (MagicNumber) MagicNumber — Магическое число для идентификации ордеров (система использует MagicNumber+1, MagicNumber+2, MagicNumber+3)
Order Lots (Lots) Lots — Объём лотов для ордеров
Stop loss pips (StopLoss) StopLoss — Стоп-лосс в пипсах
Take profit pips (order will be always closed with indicator) (TakeProfit) TakeProfit — Тейк-профит в пипсах
Получить полный код

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

#property version   "1.00"
#property strict

extern bool   System1     = true;           // Use system 1
extern bool   System2     = true;           // Use system 2
extern bool   System3     = true;           // Use system 3

extern int    MagicNumber  = 900;           // Magic Number (system will use Magic+1, Magic+2, Magic+3)
extern double Lots         = 1;            // Order Lots
extern int    StopLoss     = 20;            // Stop loss pips
extern int    TakeProfit   = 0;             // Take profit pips (order will be always closed with indicator)

double    p, lots, atrSL;
datetime  buyTag1, sellTag1, buyTag2, sellTag2, buyTag3, sellTag3, timeTag;
double    atrDaily[73], atrDMedia, atr1, atrD,
          spanA, spanB,
          size1, maxSize,
          sar1, sar2;

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

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

   if (timeTag < Time[0])
      {
      HideTestIndicators(true);

      for ( int i=1 ; i<= 72; i++ ) atrDaily[i] = iHigh(Symbol(),PERIOD_CURRENT,i) - iLow(Symbol(),PERIOD_CURRENT,i);
                                    atrDMedia  = iMAOnArray(atrDaily,0,72,0,MODE_SMA,1);

      atr1       = iATR(Symbol(),PERIOD_CURRENT,1,1);      
      atrD       = iATR(Symbol(),PERIOD_D1,14,1);      

      spanA       = iIchimoku(Symbol(),PERIOD_CURRENT,9,26,52,MODE_SENKOUSPANA,1);
      spanB       = iIchimoku(Symbol(),PERIOD_CURRENT,9,26,52,MODE_SENKOUSPANB,1);

      size1       = MathAbs(Close[1] - Open[1]);
      maxSize     = 0;
      for ( int i=2; i<= 21; i++)
         {
            double size = MathAbs(Open[i] - Close[i]);
            if( size > maxSize ) maxSize = size;
         }

      sar1        = iSAR(Symbol(),PERIOD_CURRENT,0.005,0.2,1);
      sar2        = iSAR(Symbol(),PERIOD_CURRENT,0.005,0.2,2);

      timeTag     = TimeCurrent();

      }

   if( OrdersTotal() > 0 ) close1();
   if( OrdersTotal() > 0 ) close2();
   if( OrdersTotal() > 0 ) close3();

   if( System1 )
   {  
      if( Close[1] > Open[1] && atr1 > atrDMedia*4 && !orderOpen(MagicNumber+1) &&  buyTag1 < Time[0] ) 
      {
         int ticket1;
         ticket1 = OrderSend(Symbol(),OP_BUY,Lots,Ask,0,SL(OP_BUY),0,"ThreeBreaky 1",MagicNumber+1,0,Blue); 
         if (ticket1 > -1) buyTag1 = TimeCurrent();
      }

      if( Close[1] < Open[1] && atr1 > atrDMedia*4  && !orderOpen(MagicNumber+1) && sellTag1 < Time[0] ) 
      {
         int ticket1;
         ticket1 = OrderSend(Symbol(),OP_SELL,Lots,Bid,0,SL(OP_SELL),0,"ThreeBreaky 1",MagicNumber+1,0,Red);
         if (ticket1 > -1) sellTag1 = TimeCurrent();
      }
   }

   if( System2 ) 
   { 
      if( Close[2] < spanA && Close[2] < spanB && Close[1] > spanA && Close[1] > spanB && !orderOpen(MagicNumber+2) &&  buyTag2 < Time[0] ) 
      {
         int ticket2;
         ticket2 = OrderSend(Symbol(),OP_BUY,Lots,Ask,0,SL(OP_BUY),0,"ThreeBreaky 2",MagicNumber+2,0,Blue);
         if (ticket2 > -1) buyTag2 = TimeCurrent();
      }

      if( Close[2] > spanA && Close[2] > spanB && Close[1] < spanA && Close[1] < spanB && !orderOpen(MagicNumber+2) && sellTag2 < Time[0] ) 
      {

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

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

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

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

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

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

Стоимость полного кода
463,90₽ ≈ $5.67