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

#1.mtf_collider_h4_close_13_v18bar.mq4

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

ea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 2 общих теговgeniusv101-ecn.mq4MQL4 / MetaTrader 4 · 2 общих теговmarket crusher ea guidlines.txtMQL · 2 общих тегов2 to 1 strategy with signals.pineTradingView · 2 общих теговfresh algo signals & overlays v25_6334471093901859175.pineTradingView · 2 общих теговfresh algo v24 tradingview indicator_5918156155804195406.pineTradingView · 2 общих тегов
Вы автор или правообладатель?

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

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

О программе

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

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

Уведомления о пробое могут выводиться всплывающим окном, звуком, письмом на e-mail или push-сообщением на мобильное устройство. Работа советника ограничена заданным временным интервалом.

Все торговые операции выполняются только при включённом разрешении на торговлю и в разрешённое время. Советник не гарантирует прибыль и предназначен для использования с осторожностью.

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

НастройкаОписание
TradeEnabled Включает автоматическое открытие сделок при пробое трендлайна.
Lots Объём торговой позиции в лотах.
MaxOrdersPerTrendline Максимальное количество ордеров, которое может быть открыто на одну трендлайну.
TargetProfit Уровень тейк-профита в пунктах от цены открытия.
StopLoss Уровень стоп-лосса в пунктах от цены открытия.
Slippage Допустимое проскальзывание цены при открытии ордеров.
AlertPopup Включает всплывающее окно с уведомлением о пробое трендлайна.
Sound Включает звуковое уведомление о пробое трендлайна.
EmailAlert Включает отправку уведомления о пробое на электронную почту.
MobileAlert Включает отправку push-уведомления на мобильное устройство.
PriceDelta Дополнительное количество пунктов для порога пробоя трендлайна.
HourStart Час начала работы советника (по локальному времени).
HourEnd Час окончания работы советника (по локальному времени).
SecondsStart Секунда начала работы советника (по локальному времени).
MinuteEnd Минута окончания работы советника (по локальному времени).
TrendlineStart Индекс начала диапазона трендлайнов, обрабатываемых советником.
TrendlineEnd Индекс окончания диапазона трендлайнов, обрабатываемых советником.
TrailingStop Включает функцию трейлинг-стопа для сопровождения открытых позиций.
TrailingStopMoved Определяет режим перемещения стоп-лосса при трейлинг-стопе: перемещать вслед за ценой или фиксировать на уровне открытия.
TrailingStopPoint Расстояние в пунктах для активации и шага трейлинг-стопа.
DisplayQuote Включает отображение текущей цены, символа, периода и времени на графике.
DisplayTrendLineStatus Включает отображение статуса трендлайнов (ожидание или пробой) на графике.
AddPosition Включает режим добавления позиций: при пробое трендлайна дополнительно выставляются отложенные ордера на заданном расстоянии.
PositionStepPoint Расстояние в пунктах между добавляемыми позициями.
PositionStepNumber Количество шагов для добавления позиций при включённом режиме добавления.
MovingPeriod Период скользящей средней, используемой в расчётах советника.
MovingShift Сдвиг скользящей средней относительно текущего бара.
Получить полный код

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

input bool TradeEnabled                = true;  // Breakout trade option
input double Lots                      = 0.01;          // Trade Lots
extern int MaxOrdersPerTrendline       = 2;
input int TargetProfit                 = 10;      // Target Profit 
input int StopLoss                     = 30;          // Stop Loss
input int Slippage                     = 3;          // Slippage

input bool AlertPopup                  = true;   // Popup breakout notification
input bool Sound                       = false;        // Sound breakout notification
input bool EmailAlert                  = false;   // Email breakout notification
input bool MobileAlert                 = false;  // MT4 mobile notification

input int PriceDelta                   = 0;  // More points for breakout threshold

input int HourStart                    = 0;   // EA working hour starts
input int HourEnd                      = 24;    // EA working hour ends

input int SecondsStart                  = 10;   // EA working minute starts
input int MinuteEnd                    = 220;    // EA working minute ends

input int TrendlineStart               = 0;   // EA working trendline starts
input int TrendlineEnd                 = 0;    // EA working trendline ends

input bool TrailingStop                = true;        // TrailingStop trade options
input bool TrailingStopMoved           = true;
input int TrailingStopPoint            = 15; 

input bool DisplayQuote                = false;             // Option of display realtime price
input bool DisplayTrendLineStatus      = false;   // Option of display trendline breakout status

input bool AddPosition                = false;     /// Add position trade option
input int PositionStepPoint           = 3;
input int PositionStepNumber          = 6;

input int MovingPeriod               = 14;
input int MovingShift                = 0;
double MA1=iMA(NULL,0,MovingPeriod,MovingShift,MODE_EMA,PRICE_CLOSE,0);
double dLastPrice;
string strTrendLineName , strUpward, strDownward, strAlerted; 
int iTp, iSl, iSp, iTs, iDigiExtend, iPd, iPsp,iMot,iD1cl;
int iArrowRightFontSize = 8, iLineCount=0;
color colorAlerted = C'249,236,255';
int XAxis = 50, YAxis = 50, FontSize=20;
double n = MaxOrdersPerTrendline;
int getOrdersThisBar(int magic);
double MagicNumber=0;

double HC4 = iClose(NULL, PERIOD_H4, 1); 
double HC5 = iClose(NULL, PERIOD_H1, 1);
double HC6 = iClose(NULL, PERIOD_M30, 1);
double HC7 = iClose(NULL, PERIOD_M15, 1); 
double HC8 = iClose(NULL, PERIOD_M5, 1);
double HC9 = iClose(NULL, PERIOD_M1, 1);

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

void OnDeinit(const int reason)
{
    int i=0;

    ObjectDelete("QuoteTrendline");
    ObjectDelete("SymbolTrendline");
    ObjectDelete("TimeTrendline"); 

    if (iLineCount!=0) { for(i=iLineCount;i>=0;i--) ObjectDelete(StringConcatenate("TrendlineStatus_",i)); } 

    if (reason<=1)  /// Delete trendlines & left arrows  ONLY IF this EA is removed; 
    {               /// OnDeinit reasons listed at - 

      for(i=ObjectsTotal();i>=0;i--) /// reverse loop for any MQL4 delete functions as total quantity keep changing
      { 
        if (ObjectType(ObjectName(i))==OBJ_ARROW)//OBJ_ARROW
           ObjectDelete(ObjectName(i)); 
        if (ObjectType(ObjectName(i))==OBJ_TREND)//OBJ_TREND 
           ObjectDelete(ObjectName(i));    
      }
      }

}

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

void ProcessTrendlineAlert()
{

   ushort u_sep = StringGetCharacter(";",0);
   string strTrendlineArray[];

   int iTrendlineTotal=StringSplit(strTrendLineName,u_sep,strTrendlineArray);
   int i=0, j=0, ticket = 0;
   string strCurrentTrendline="";

   if (iTrendlineTotal<=0) return;

   for (i=0;i<iTrendlineTotal;i++)
      {
         strCurrentTrendline = StringSubstr(strTrendlineArray[i],1);

         if (StringSubstr(strTrendlineArray[i],0,1)=="1" || strCurrentTrendline=="")
            continue;

         if (StringSubstr(strTrendlineArray[i],0,1)=="0") {
            double dTrendlineCurrentPrice = ObjectGetValueByShift(strCurrentTrendline,0);  

            if (dTrendlineCurrentPrice<iClose(Symbol(),Period(),0)+iPd*Point &&  
                  dTrendlineCurrentPrice>dLastPrice+iPd*Point)

            if (dTrendlineCurrentPrice>HC4+iPd*Point &&  
                  dTrendlineCurrentPrice>dLastPrice+iPd*Point)                 

            if (dTrendlineCurrentPrice>HC5+iPd*Point &&  
                  dTrendlineCurrentPrice>dLastPrice+iPd*Point) 

            if (dTrendlineCurrentPrice>HC6+iPd*Point &&  
                  dTrendlineCurrentPrice>dLastPrice+iPd*Point)                                     

            if (dTrendlineCurrentPrice>HC7+iPd*Point &&  
                  dTrendlineCurrentPrice>dLastPrice+iPd*Point) 

            if (dTrendlineCurrentPrice>HC8+iPd*Point &&  
                  dTrendlineCurrentPrice>dLastPrice+iPd*Point) 

            if (dTrendlineCurrentPrice>HC9+iPd*Point &&  
                  dTrendlineCurrentPrice>dLastPrice+iPd*Point)   

               {
                  StringReplace(strTrendLineName,"0"+strCurrentTrendline,"1"+strCurrentTrendline);

                   if (TradeEnabled)
                    { ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,iSp,Bid-iSl*Point,Ask+iTp*Point,strCurrentTrendline,MagicNumber,0,Aqua);
                    if ( MaxOrdersPerTrendline > 0)
                    for(n=0; n<MaxOrdersPerTrendline; n++)
                    ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask*(n+1),iSp,Bid-iSl*Point,Ask+iTp*Point,strCurrentTrendline,0,0,Aqua);
                      if ( AddPosition && PositionStepNumber > 0 && PositionStepPoint > 0)
                      { for (j=0;j<PositionStepNumber;j++)
                         ticket = OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+iPsp*(j+1)*Point,iSp,Bid-(iSl-iPsp*(j+1))*Point,Ask+(iTp+iPsp*(j+1))*Point,strCurrentTrendline,0,0,Aqua);   
                      }   
                    }

                  if (AlertPopup) Alert(strCurrentTrendline," Breakout - UP ", Symbol(),"_",PeriodToString(Period())," ",DoubleToStr(iClose(Symbol(),Period(),0),Digits));
                  if (AlertPopup&&Sound) PlaySound("alert.wav");
                  if (MobileAlert) SendNotification(strCurrentTrendline+" Breakout " +Symbol()+" UP " + PeriodToString(Period()) + " " + DoubleToStr(iClose(Symbol(),Period(),0),Digits) );
                  if (EmailAlert) SendMail(strCurrentTrendline+" Breakout " +Symbol()+ " UP " + " " + PeriodToString(Period()) + " " + DoubleToStr(iClose(Symbol(),Period(),0),Digits),
                     Symbol()+ "_" + PeriodToString(Period()) + ": UP" + "\nCurrent Price: " + DoubleToStr(iClose(Symbol(),Period(),0),Digits) 
                     + "\nTrendline Price: " + DoubleToStr(dTrendlineCurrentPrice,Digits)  
                     + "\nServer Time: " + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS));

               }

            if (dTrendlineCurrentPrice>iClose(Symbol(),Period(),0)-iPd*Point &&
                  dTrendlineCurrentPrice<dLastPrice-iPd*Point)

             if (dTrendlineCurrentPrice<HC4-iPd*Point &&
                  dTrendlineCurrentPrice<dLastPrice-iPd*Point)     

             if (dTrendlineCurrentPrice<HC5-iPd*Point &&
                  dTrendlineCurrentPrice<dLastPrice-iPd*Point) 

             if (dTrendlineCurrentPrice<HC6-iPd*Point &&
                  dTrendlineCurrentPrice<dLastPrice-iPd*Point)  

             if (dTrendlineCurrentPrice<HC7-iPd*Point &&
                  dTrendlineCurrentPrice<dLastPrice-iPd*Point)  

             if (dTrendlineCurrentPrice<HC8-iPd*Point &&
                  dTrendlineCurrentPrice<dLastPrice-iPd*Point) 

             if (dTrendlineCurrentPrice<HC9-iPd*Point &&
                  dTrendlineCurrentPrice<dLastPrice-iPd*Point)  

               {
                  StringReplace(strTrendLineName,"0"+strCurrentTrendline,"1"+strCurrentTrendline);

                  

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

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

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

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

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

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

Стоимость полного кода
1 557,70₽ ≈ $19.04