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

simpleh1_gbpusd_eav9.mq4

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

#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 2 общих тегов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 общих тегов
Вы автор или правообладатель?

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

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

О программе

Данный исходный код представляет собой торгового советника для платформы MetaTrader 4, написанный на языке MQL4. Советник предназначен для автоматической торговли на рынке Forex, в частности на паре GBPUSD, и работает на часовом таймфрейме (H1).

Советник анализирует ценовые данные с использованием скользящих средних (SMA) и фракталов для определения направления тренда и генерации торговых сигналов. Он открывает и закрывает ордера на покупку и продажу, управляет стоп-лоссами и тейк-профитами, а также поддерживает функцию трейлинг-стопа для защиты прибыли.

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

Советник включает функцию отображения информации на графике (уровни дня, баланс, эквити, параметры торговли) и возможность скрытия уровней тейк-профита и стоп-лосса с графика. Параметры настроены через внешние переменные, доступные в интерфейсе MetaTrader 4.

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

НастройкаОписание
TITLE Название — Текстовый параметр с названием советника.
DETAILS Описание — Текстовый параметр с описанием магического числа и комментария к сделкам.
iMagicNumber Магическое число — Целочисленный параметр — магическое число для идентификации ордеров советника.
trade_comment Комментарий к сделке — Текстовый параметр — комментарий к торговым операциям.
MAIN_SETTINGS Основные настройки — Группа основных настроек (тейк-профит 1, тейк-профит 2, стоп-лосс и трейлинг-стоп).
TakeProfit1 Тейк-профит 1 — Целочисленный параметр, задающий первый уровень тейк-профита в пунктах.
TakeProfit2 Тейк-профит 2 — Целочисленный параметр, задающий второй уровень тейк-профита в пунктах.
StopLoss Стоп-лосс — Целочисленный параметр, задающий значение стоп-лосса в пунктах.
useTrailing Использовать трейлинг-стоп — Переключатель (true/false), определяющий, использовать ли трейлинг-стоп.
iTrailingStop Трейлинг-стоп — Числовой параметр, задающий расстояние трейлинг-стопа в пунктах.
MM_SETTINGS Настройки управления рисками — Группа настроек управления рисками (процент риска для разных уровней).
UseMoneyMgmt Использовать управление рисками — Переключатель, активирующий автоматический расчёт размера лота на основе управления рисками.
Low_Risk Низкий риск — Переключатель, активирующий низкий уровень риска (0.1%).
Med_Risk Средний риск — Переключатель, активирующий средний уровень риска (0.3%).
High_Risk Высокий риск — Переключатель, активирующий высокий уровень риска (5%).
VERY_HIGH_RISK Настройки очень высокого риска — Группа настроек для очень высокого уровня риска (10%).
Vhigh_Risk Очень высокий риск — Переключатель, активирующий очень высокий уровень риска (10%).
RiskPercent Процент риска — Числовой параметр, определяющий процент риска для расчёта размера лота при автоматическом управлении.
MANUAL_LOTS Настройки ручного лота — Группа настроек ручного размера лота.
Manual_Lot_Size Ручной размер лота — Переключатель, определяющий, использовать ли ручной размер лота вместо автоматического расчёта.
Lotsize Размер лота — Числовой параметр, задающий фиксированный размер лота при ручном режиме управления.
INDICATORS Настройки индикаторов — Группа настроек стандартных индикаторов (параметры SMA).
fast_sma Быстрая SMA — Целочисленный параметр, задающий период быстрой скользящей средней (SMA).
slow_sma Медленная SMA — Целочисленный параметр, задающий период медленной скользящей средней (SMA).
BROKER_SETTINGS Настройки брокера — Группа настроек, связанных с брокерскими параметрами (смещение GMT).
GMToffset Смещение GMT — Целочисленный параметр, задающий смещение часового пояса брокера относительно GMT.
Start_Time Время начала торговли — Целочисленный параметр, задающий час начала торговли в GMT.
HIDING_TARGETS Настройки отображения уровней — Группа настроек, связанных с отображением уровней тейк-профита и стоп-лосса на графике.
Hide_Targets Скрыть уровни — Переключатель (true/false), определяющий, скрывать ли уровни тейк-профита и стоп-лосса с графика.
Show_Levels Показать уровни — Переключатель, определяющий, отображать ли уровни дня (дневной максимум, минимум, пивот) на графике.
MicroOrdersAllowed Разрешить микролоты — Переключатель, разрешающий микролоты (минимальный размер позиции 0.01).
MiniOrdersAllowed Разрешить минилоты — Переключатель, разрешающий минилоты (минимальный размер позиции 0.1).
SHOWS_SETTINGS Настройки отображения — Группа настроек отображения информации на графике.
Show_Settings Показать настройки — Переключатель, определяющий, отображать ли информацию о настройках и параметрах торговли на графике.
Получить полный код

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

extern string TITLE = "Simple H1 GBPUSD EA V9";
extern string DETAILS = "Magic Number & Trade Comment";
extern int iMagicNumber = 54328108;
extern string trade_comment="EA V9";
int     iMagicNumber2;
datetime Time0 = 0;
extern string MAIN_SETTINGS = "TP1, TP2, SL and TSL settings.";
extern int TakeProfit1 = 24;
extern int TakeProfit2 =47;
extern int StopLoss = 140;
double Poin;
extern bool   useTrailing = true;
extern double iTrailingStop = 24;
extern string MM_SETTINGS = "Risk, Low 1% - Med 3% - High 5%";
extern bool   UseMoneyMgmt = false;
extern bool Low_Risk = false;
extern bool Med_Risk = false;
extern bool High_Risk= false;
extern string VERY_HIGH_RISK = "Choose Risk % for the V HIGH. ";
extern bool Vhigh_Risk= false;
extern double RiskPercent = 1;
extern string MANUAL_LOTS = "Set your fixed Lot Size 0.1 = $1 per pip.";
extern bool   Manual_Lot_Size = true;
extern double Lotsize = 0.1;
extern string INDICATORS = "Standard Indicator Settings.";
extern int fast_sma=10;
extern int slow_sma=197;
extern string BROKER_SETTINGS = "GMT offset.";
extern int GMToffset=2;
extern int Start_Time= 23;
extern string HIDING_TARGETS = "Set to True to hide TP & SL.";
extern bool Hide_Targets = false;
extern bool Show_Levels = true;
extern bool   MicroOrdersAllowed = true;
extern bool   MiniOrdersAllowed = true;
extern string SHOWS_SETTINGS = "Set to False when Testing or Optimising.";
extern bool   Show_Settings  = true;
bool trade=false;
double  high_price, low_price , high_price2, low_price2, dLots;
int   iTicket, iTotalOrders,trend,Status,signal, BarCount, TradePerBar, var2;
static double latest;
static double aLots;
static int halt=0;
static double last_high, last_low; 
double TimeOfLastUpFractal, TimeOfLastDownFractal, totalopenorders ;
double LastUpFractal_H1,LastDownFractal_H1,TimeOfLastDownFractal_H1,TimeOfLastUpFractal_H1;
static double latestbuy, latestup, latestdn;
static double latestsell ;  
double dblProfit=0;
double spread;
static int lastv, lastw;
int direction=0;
static double latest_hizig, latest_lozig;
double zigspread, TakeProfit, iStopLoss, average, current;
datetime GMT;
string GMTs;
string brokers;
string GMT_difference;
double GMT_offset;

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

int deinit()
  {

   return(0);
  }

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

void TrailingStop(int iTotal){

   int iCount;

   if(iTrailingStop < 1)return(-1); // error

   for(iCount=0;iCount<iTotal;iCount++){

      OrderSelect(iCount, SELECT_BY_POS, MODE_TRADES);
      if( OrderSymbol()==Symbol() && OrderMagicNumber() == iMagicNumber2)
         switch(OrderType()){
            case OP_BUY:
               if(Bid-OrderOpenPrice()>Poin*iTrailingStop){
                  if(OrderStopLoss()<Bid-Poin*iTrailingStop){
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Poin*(iTrailingStop-2),OrderTakeProfit(),0,Aqua);
                  }
               }
               break;
            case OP_SELL:
               if((OrderOpenPrice()-Ask)>(Poin*iTrailingStop)){
                  if((OrderStopLoss()>(Ask+Poin*iTrailingStop)) || (OrderStopLoss()==0)){
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Poin*(iTrailingStop-2),OrderTakeProfit(),0,Orange);
                  }
               }
               break;
         }
      }

      return(0);
}

   int CheckForCross(){

  if ( Show_Settings )
       PrintDetails();
   int i, cnt  ;
   int buyorder=0;
   int sellorder=0;
   int sellstop = 0;
   int buystop = 0;
   int dir=0;
   int order=0;
   int Ticket=0;

  int total = OrdersTotal();

      i= 0;
      for (i = 0; i < total; i++) 
      {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == iMagicNumber
      ||  OrderSymbol() == Symbol() && OrderMagicNumber() == iMagicNumber2)
         {
              if (OrderType()==OP_BUY) {buyorder = buyorder +1;}
         else if (OrderType()==OP_SELL) {sellorder = sellorder +1;}
         } //end if
     } //end for

     totalopenorders= buyorder+sellorder;

trade = true;

      int x;
      double adr_total, adr;
      average = 0;
      for( x=1;x<11;x++){
         adr = iHigh(NULL,PERIOD_D1,x)-iLow(NULL,PERIOD_D1,x);
         adr_total = adr_total+adr;        
         }//end for
         average = adr_total/10;

         current = MathAbs(iHigh(NULL,PERIOD_D1,0)-iLow(NULL,PERIOD_D1,0));

  static double daily_high;
  static double daily_low;
  static double daily_pivot;

      if(Hour() == 1 && Show_Levels==true){
             daily_high = High[iHighest(NULL,0,MODE_HIGH,24,1)];
             daily_low = Low[iLowest(NULL,0,MODE_LOW,24,1)];
            double daily_range= daily_high-daily_low;
             daily_pivot = daily_low + (daily_range/2);
            double bull_positive1= daily_range*0.34;
            TakeProfit = bull_positive1;
            double bull_target1= daily_high+bull_positive1;
            double bear_negative1=daily_range*0.34;
            iStopLoss = daily_range;
            double bear_target1= daily_low - bear_negative1;
            ObjectDelete("Daily_Pivot");
            ObjectDelete("Daily_High");
            ObjectDelete("Daily_Low");
            ObjectDelete("Bull_Tgt1");
            ObjectDelete("Bear_Tgt1");
            ObjectCreate("Bull_Tgt1",OBJ_HLINE,0,Time[1],bull_target1);
            ObjectSet("Bull_Tgt1",OBJPROP_COLOR,Aqua);          
            ObjectCreate("Daily_Pivot",OBJ_HLINE,0,Time[1],daily_pivot);
            ObjectSet("Daily_Pivot",OBJPROP_COLOR,Yellow);
            ObjectCreate("Daily_High",OBJ_HLINE,0,Time[1],daily_high);
            ObjectSet("Daily_High",OBJPROP_COLOR,Blue);
            ObjectCreate("Daily_Low",OBJ_HLINE,0,Time[1],daily_low);
            ObjectSet("Daily_Low",OBJPROP_COLOR,Lime);
            ObjectCreate("Bear_Tgt1",OBJ_HLINE,0,Time[1],bear_target1);
            ObjectSet("Bear_Tgt1",OBJPROP_COLOR,Magenta);
            }//end if 
     if(Show_Levels==false)
            {
            ObjectDelete("Daily_Pivot");
            ObjectDelete("Daily_High");
            ObjectDelete("Daily_Low");
            ObjectDelete("Bull_Tgt1");
            ObjectDelete("Bear_Tgt1");
            }//end else

   for(int v=1;v<Bars;v++){
      if(iFractals(NULL,PERIOD_M15, MODE_UPPER,v)!=0){
         LastUpFractal_H1=iFractals(NULL,PERIOD_M15, MODE_UPPER,v);
         TimeOfLastUpFractal_H1=Time[v];
         break;
         }//end if
      }//end for
   for(int w=1;w<Bars;w++){
      if(iFractals(NULL,PERIOD_M15, MODE_LOWER,w)!=0){
         LastDownFractal_H1=iFractals(NULL,PERIOD_M15, MODE_LOWER,w);
         TimeOfLastDownFractal_H1=Time[w];
         break;
         }//end if
      }//end for

      if(TimeOfLastUpFractal_H1 > TimeOfLastDownFractal_H1) trend=1;
      else trend=2;

   for (int j = 0; j < OrdersTotal(); j++) {
         OrderSelect(j, SELECT_BY_POS, MODE_TRADES);
         if (OrderType() == OP_BUY && (OrderMagicNumber() == iMagicNumber)) {
            if (Bid < (OrderOpenPrice()-StopLoss*Poin) 
             || Bid > (OrderOpenPrice()+TakeProfit1*Poin)) {
               RefreshRates();
               OrderClose(OrderTicket(), OrderLots(), Bid, 3*Poin/Point, Yellow);
               }
               }
          if (OrderType() == OP_SELL && (OrderMagicNumber() == iMagicNumber)) {
            if (Ask > (OrderOpenPrice()+StopLoss*Poin)
             || Ask < (OrderOpenPrice()-TakeProfit1*Poin)) {
               RefreshRates();
               OrderClose(OrderTicket(), OrderLots(), Ask, 3*Poin/Point, Yellow);
               }
               }
           }//end for 

    for (int k = 0; k < OrdersTotal(); k++) {
         OrderSelect(k, SELECT_BY_POS, MODE_TRADES);
         if (OrderType() == OP_BUY && (OrderMagicNumber() == iMagicNumber2)) {
            if (Bid < (OrderOpenP

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

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

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

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

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

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

Стоимость полного кода
1 224,90₽ ≈ $14.97