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

frbestexp02_1_maloma_mod.mq4

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

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

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

О программе

Frbestexp02_1_maloma_mod — торговый советник для MetaTrader 4, работающий на языке MQL4. Советник использует фрактальные сигналы, индикатор OsMA и анализ объёма для генерации торговых сигналов на рынке. Расчёт опорной цены производится по методике максимума и минимума дневного диапазона с учётом текущей цены закрытия.

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

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

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

НастройкаОписание
Lots Размер лота для открытия торговых позиций.
Stop_Loss Уровень стоп-лосса в пунктах для защиты позиции от убытка.
Take_Profit Уровень тейк-профита в пунктах для фиксации прибыли.
Trailing_Stop Расстояние трейлинг-стопа в пунктах для динамического перемещения защитного уровня.
Vlim Минимальный объём сделки для фильтрации торговых сигналов по активности рынка.
fper Период основной линии индикатора OsMA, используемого для подтверждения тренда.
stop Уровень прибыли в пунктах, при достижении которого активируются механизмы контроля и закрытия позиций.
hedg Режим хеджирования: при значении 1 разрешается удержание противоположных позиций одновременно.
kh Множитель лота, определяющий размер позиции при открытии хедж-позиций.
lok Режим управления лотом, влияющий на условия контроля совокупной прибыли и убытка.
rpr Режим восстановления позиций, определяющий поведение советника при отсутствии открытых ордеров.
ttime Минимальный интервал в секундах между последовательными торговыми операциями.
hstop Порог убытка в пунктах для принудительного закрытия позиций в режиме трейлинг-стопа.
Получить полный код

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

extern double  Lots = 1.00;
extern int     Stop_Loss = 1000;
extern int     Take_Profit = 1000;
extern int     Trailing_Stop = 0;

extern int Vlim=50;
extern int fper=12,sper=26,sigper=9;   // ??????? ?????????? OsMA
extern int stop=300;                   // ??????? ??????? ???????
extern int  hedg=1;                    // ???? ?????????? ?????
extern double  kh=10;                  // ?????.????????????
extern int lok;                        // ???? ?????????? ??????????? ???????
extern int rpr=1;                      // ???? ??????????? ???????? ???? ??? ?? ????? ?????
extern int ttime=900;                  // ???????? ??????????? ????-?????? ?? 1 ?????
extern int hstop=-3000;                // ????-???? ??? ?????

int cnt;                               // ?????? ?????
int sigs,sigb;                         // ??????????? ?????? ?? ?????????? ???????? ?????-???????

double ssig,bsig;                      // ??????? ?? ?????-??????? ?? ?????????? ?????????
double  osmanul,osmaone;               // ??????? ?????????? OsMA ?? ???????? ? ??????? ?????
int s,b;                               // ?????????? ???????? ???? ? ??? ???????
int hml;                               // ???? ???????? ??????? ? ????????? ???????? (??????????? ??????? ? ??????? ?????
int pl;                                // ???? ???????? ???? ??????? ?? ??????? ??????? ?????????????? ?????????????? ???????
double summa;                          // ????????? ?????? ?? ???? ????????
double mlot;                           // ???????? ?????????? ????
double ssum,bsum;                      // ?????? ?? ??????? ???? ? ??? ?????????
double pr;                             // ????????? ????????
int hblok,shblok,bhblok;               // ???? ???????????? ??????????? ????-?????? ? ????? ?????????? ??????? ????-?????????
double DHMax,DLMin;
bool ft=true;
int rang;
double pt;
int nul;                               // ?????????? ??? ?????????? ?????????? ????? ??? ??????? ? ? 00.00 ?????? ?????
int LastTradeTime;

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

int deinit()
  {

   return(0);
  }

double FractalBest(int Dir)
 {
  double up,dw;

   if(High[3]>High[4] && High[3]>High[5] && High[3]>High[2] && High[3]>High[1]){ 
      up=Low[0]-3*Point;
   }
      else
   {
      up=0;
   }
   if(Low[3]<Low[4] && Low[3]<Low[5] && Low[3]<Low[2] && Low[3]<Low[1]){ 
      dw=High[0]+3*Point;
   }
      else
   {
      dw=0;
   }
 if (Dir==0) {return(up);}
 if (Dir==1) {return(dw);}
 }
int start()
{
      // код доступен только после оплаты
   }
   mlot=Lots; // ??????????? ???????? ???????? ????

   if ((Hour()==0 && Minute()==0) || ft){   //???????? ????? ??? ?????? ??????
      DHMax=0;
      DLMin=1000;
         if(ft)
         {// ?????? ?????? 
            rang=MathRound((Hour()*60+Minute())/Period());
            nul=rang;
         }
            else
         {
            nul=96;//?? ????? ?? 15
            rang=1;
         }
         for(cnt=rang;cnt<=rang+95;cnt++)
         {//????? ???? ? ??? ?? ????????? ?????
            if(DHMax<High[cnt])DHMax=High[cnt];
            if(DLMin>Low[cnt])DLMin=Low[cnt];
         }
      pt=(DHMax+DLMin+Close[nul])/3;//?????????? ?????
      ft=false;
   }

   if(CurTime()-LastTradeTime<20)return(0);

   s=0;b=0;summa=0;bsum=0;ssum=0;
      for(cnt=0;cnt<OrdersTotal();cnt++)
      {
         OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
            if(OrderSymbol()==Symbol() && OrderType()==OP_SELL)
            {
               ssum=ssum+OrderProfit();
               s=s+1;
            }
            if(OrderSymbol()==Symbol() && OrderType()==OP_BUY){

               bsum=bsum+OrderProfit();
               b=b+1;
            }
      }
   summa=bsum+ssum;summa=MathRound(summa);

   if(Trailing_Stop>0 && hedg==1)
   { 
      for(cnt=0;cnt<OrdersTotal();cnt++)
      {
         OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
            if(OrderSymbol()==Symbol() && OrderProfit()>0)
            { 
               if(Bid-OrderOpenPrice()>Point*Trailing_Stop)
               { 
                  if(OrderStopLoss()<Bid-Point*Trailing_Stop)
                  { 
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*Trailing_Stop,OrderTakeProfit(),0,Red);
                     return(0);
                  }
               }
               if(OrderOpenPrice()-As

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

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

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

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

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

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

Стоимость полного кода
583,80₽ ≈ $7.14