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

Firebird v3.2

firebird v3[1].2-fixed.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 общих тегов
Вы автор или правообладатель?

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

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

О программе

Firebird v3.2 — торговый советник для MetaTrader 4, реализующий систему исчерпания скользящей средней (MA envelope). Советник рассчитывает простую скользящую среднюю и формирует вокруг неё канал, смещая её на заданный процент вверх и вниз. При пробое ценой одной из границ канала открывается позиция в направлении, противоположном текущему тренду.

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

Для фильтрации сигналов используется анализ дивергенции и индикатор RVI. Советник способен автоматически рассчитывать уровни тейк-профита, стоп-лосса и шага усреднения на основе среднего истинного диапазона (ATR). Также реализована функция автовыхода по времени и убытку.

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

НастройкаОписание
Close all orders when negative Float is excessive. (UseEquityProtection) Защита капитала — Включает защиту капитала — закрытие всех ордеров при чрезмерном отрицательном флоте.
Percent of Balance for max Float level. (FloatPercent) Процент защиты флота — Процент баланса, определяющий максимальный допустимый уровень отрицательного флота для защиты капитала.
Used in Moving Average iMA(). Number of periods to scan. (MA_length) Период скользящей средней — Количество периодов для расчёта скользящей средней iMA.
Timeframe reference for Moving Average iMA(). (MA_timeframe) Таймфрейм скользящей средней — Таймфрейм для расчёта скользящей средней iMA.
0=close, 1=High Low (0 is perferred setting). (MAtype) Тип цены СМА — Тип цены для скользящей средней: 0 — close, 1 — High+Low. Значение 0 является предпочтительным.
Used to calculate iMA() channel (envelope) width. (Percent) Процент канала СМА — Процент для расчёта ширины канала скользящей средней (envelope).
exits only. (slip) Проскальзывание — Допустимое проскальзывание для выходных ордеров в пунктах.
Money Management - 1 = true & 0 = false. (UseMM) Управление капиталом — Включает управление капиталом: 1 — включено, 0 — выключено. При включении лот рассчитывается автоматически на основе риска.
Percent of account equity to risk per trade. (Risk) Риск на сделку — Процент от капитала счёта, рискуемый на одну сделку при включённом управлении капиталом.
Lots Размер лота — Фиксированный размер лота для ордеров, если управление капиталом отключено.
TakeProfit Тейк-профит — Фиксированный тейк-профит в пунктах.
Stoploss Стоп-лосс — Фиксированный стоп-лосс в пунктах.
if position goes this amount of pips against you add another. (PipStep) Шаг усреднения в пунктах — Шаг в пунктах, при превышении которого против текущей позиции открывается дополнительный ордер для усреднения.
TrailingStop Трейлинг-стоп — Расстояние для трейлинг-стопа в пунктах.
Sets maximum number of open orders at same time. (MaxOpenOrders) Макс. открытых ордеров — Максимальное количество одновременно открытых ордеров.
Below this Minimum Margin Level percent % trading stops. (MinMarginLevel) Мин. уровень маржи — Минимальный уровень маржи в процентах, ниже которого торговля прекращается.
Number of days order is open before auto closing. (CloseDays) Дней до автозакрытия — Количество дней, в течение которых ордер остаётся открытым, прежде чем будет автоматически закрыт.
Loss amount before auto closing after CloseDays. (LossLevel) Уровень убытка для автозакрытия — Размер убытка в пунктах, при котором ордер автоматически закрывается после истечения CloseDays.
Places reverse order with PipStep order. (UseHedge) Хеджирование — Включает хеджирование — размещение встречного ордера при увеличении шага PipStep.
Hedge order Lots will be increase by this factor. (HedgeLotFactor) Коэффициент лотов хеджирования — Коэффициент увеличения лотов хеджирующего ордера.
HedgeTakeProfit Тейк-профит хеджа — Тейк-профит для хеджирующего ордера в пунктах.
HedgeStoploss Стоп-лосс хеджа — Стоп-лосс для хеджирующего ордера в пунктах.
True = iRSI() auto calculation of TakeProfit, StopLoss, PipStep (AutoCal) Авторасчёт параметров — Автоматический расчёт TakeProfit, StopLoss и PipStep на основе индикатора ATR. При значении true расчёт выполняется автоматически.
Fast_Period Период быстрой СМА — Период быстрой скользящей средней, используемой в индикаторе iFXAnalyser.
Fast_Price Тип цены быстрой СМА — Тип цены для быстрой скользящей средней в iFXAnalyser (PRICE_OPEN и др.).
Slow_Period Период медленной СМА — Период медленной скользящей средней, используемой в индикаторе iFXAnalyser.
Slow_Price Тип цены медленной СМА — Тип цены для медленной скользящей средней в iFXAnalyser.
DivergenceLimit Предел дивергенции — Предел дивергенции для проверки трендового рынка через iFXAnalyser.
0 - Use original method for divergence, 1 - use in iFXAnalyzer (Use_V63D_Divergence) Метод дивергенции — Метод расчёта дивергенции: 0 — оригинальный метод, 1 — метод через iFXAnalyzer.
0=just add every PipStep, >0 =OrdersToal()^x *Pipstep (IncreasementType) Тип увеличения шага — Тип увеличения шага усреднения: 0 — простое прибавление PipStep каждый раз, больше 0 — формула с возведением в степень.
UseTradeScheduler Тайм-менеджер торговли — Включает тайм-менеджер торгов — ограничение времени открытия позиций по торговым зонам каждого дня недели.
4 trading zones per day. To bypass a day, all zeros (=0)for that day. (SunTradeHourStart1) Воскресенье: начало зоны 1 — Время начала первой торговой зоны в воскресенье.
SunTradeHourEnd1 Воскресенье: конец зоны 1 — Время окончания первой торговой зоны в воскресенье.
SunTradeHourStart2 Воскресенье: начало зоны 2 — Время начала второй торговой зоны в воскресенье.
SunTradeHourEnd2 Воскресенье: конец зоны 2 — Время окончания второй торговой зоны в воскресенье.
SunTradeHourStart3 Воскресенье: начало зоны 3 — Время начала третьей торговой зоны в воскресенье.
SunTradeHourEnd3 Воскресенье: конец зоны 3 — Время окончания третьей торговой зоны в воскресенье.
SunTradeHourStart4 Воскресенье: начало зоны 4 — Время начала четвёртой торговой зоны в воскресенье.
SunTradeHourEnd4 Воскресенье: конец зоны 4 — Время окончания четвёртой торговой зоны в воскресенье.
MonTradeHourStart1 Понедельник: начало зоны 1 — Время начала первой торговой зоны в понедельник.
MonTradeHourEnd1 Понедельник: конец зоны 1 — Время окончания первой торговой зоны в понедельник.
MonTradeHourStart2 Понедельник: начало зоны 2 — Время начала второй торговой зоны в понедельник.
MonTradeHourEnd2 Понедельник: конец зоны 2 — Время окончания второй торговой зоны в понедельник.
MonTradeHourStart3 Понедельник: начало зоны 3 — Время начала третьей торговой зоны в понедельник.
MonTradeHourEnd3 Понедельник: конец зоны 3 — Время окончания третьей торговой зоны в понедельник.
MonTradeHourStart4 Понедельник: начало зоны 4 — Время начала четвёртой торговой зоны в понедельник.
MonTradeHourEnd4 Понедельник: конец зоны 4 — Время окончания четвёртой торговой зоны в понедельник.
TueTradeHourStart1 Вторник: начало зоны 1 — Время начала первой торговой зоны во вторник.
TueTradeHourEnd1 Вторник: конец зоны 1 — Время окончания первой торговой зоны во вторник.
TueTradeHourStart2 Вторник: начало зоны 2 — Время начала второй торговой зоны во вторник.
TueTradeHourEnd2 Вторник: конец зоны 2 — Время окончания второй торговой зоны во вторник.
TueTradeHourStart3 Вторник: начало зоны 3 — Время начала третьей торговой зоны во вторник.
TueTradeHourEnd3 Вторник: конец зоны 3 — Время окончания третьей торговой зоны во вторник.
TueTradeHourStart4 Вторник: начало зоны 4 — Время начала четвёртой торговой зоны во вторник.
TueTradeHourEnd4 Вторник: конец зоны 4 — Время окончания четвёртой торговой зоны во вторник.
WedTradeHourStart1 Среда: начало зоны 1 — Время начала первой торговой зоны в среду.
WedTradeHourEnd1 Среда: конец зоны 1 — Время окончания первой торговой зоны в среду.
WedTradeHourStart2 Среда: начало зоны 2 — Время начала второй торговой зоны в среду.
WedTradeHourEnd2 Среда: конец зоны 2 — Время окончания второй торговой зоны в среду.
WedTradeHourStart3 Среда: начало зоны 3 — Время начала третьей торговой зоны в среду.
WedTradeHourEnd3 Среда: конец зоны 3 — Время окончания третьей торговой зоны в среду.
WedTradeHourStart4 Среда: начало зоны 4 — Время начала четвёртой торговой зоны в среду.
WedTradeHourEnd4 Среда: конец зоны 4 — Время окончания четвёртой торговой зоны в среду.
ThurTradeHourStart1 Четверг: начало зоны 1 — Время начала первой торговой зоны в четверг.
ThurTradeHourEnd1 Четверг: конец зоны 1 — Время окончания первой торговой зоны в четверг.
ThurTradeHourStart2 Четверг: начало зоны 2 — Время начала второй торговой зоны в четверг.
ThurTradeHourEnd2 Четверг: конец зоны 2 — Время окончания второй торговой зоны в четверг.
ThurTradeHourStart3 Четверг: начало зоны 3 — Время начала третьей торговой зоны в четверг.
ThurTradeHourEnd3 Четверг: конец зоны 3 — Время окончания третьей торговой зоны в четверг.
ThurTradeHourStart4 Четверг: начало зоны 4 — Время начала четвёртой торговой зоны в четверг.
ThurTradeHourEnd4 Четверг: конец зоны 4 — Время окончания четвёртой торговой зоны в четверг.
FriTradeHourStart1 Пятница: начало зоны 1 — Время начала первой торговой зоны в пятницу.
FriTradeHourEnd1 Пятница: конец зоны 1 — Время окончания первой торговой зоны в пятницу.
FriTradeHourStart2 Пятница: начало зоны 2 — Время начала второй торговой зоны в пятницу.
FriTradeHourEnd2 Пятница: конец зоны 2 — Время окончания второй торговой зоны в пятницу.
FriTradeHourStart3 Пятница: начало зоны 3 — Время начала третьей торговой зоны в пятницу.
FriTradeHourEnd3 Пятница: конец зоны 3 — Время окончания третьей торговой зоны в пятницу.
FriTradeHourStart4 Пятница: начало зоны 4 — Время начала четвёртой торговой зоны в пятницу.
FriTradeHourEnd4 Пятница: конец зоны 4 — Время окончания четвёртой торговой зоны в пятницу.
included by Renato (DVLimit) Порог дивергенции — Пороговое значение для фильтра дивергенции, включённое в модификацию Renato.
writelog Запись в лог — Включает запись лог-файла: 1 — включено, 0 — выключено.
Получить полный код

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

extern bool    UseEquityProtection = false; // Close all orders when negative Float is excessive.
extern double  FloatPercent   = 30;    // Percent of Balance for max Float level.
extern int     MA_length      = 10;    // Used in Moving Average iMA(). Number of periods to scan.
extern int     MA_timeframe   = 15;    // Timeframe reference for Moving Average iMA().
extern int     MAtype         = 0;     // 0=close, 1=High Low (0 is perferred setting).		 
extern double  Percent        = 0.1;   // Used to calculate iMA() channel (envelope) width.
int            TradeOnFriday  = 1;     // >0 trades on friday.
extern int     slip           = 100;   // exits only.
extern bool    UseMM          = 1;     // Money Management - 1 = true & 0 = false.
extern double  Risk           = 5;     // Percent of account equity to risk per trade.
extern double  Lots           = 0.1;  
extern double  TakeProfit     = 50;
extern double  Stoploss       = 300;
extern int     PipStep        = 40;    //if position goes this amount of pips against you add another.
extern double  TrailingStop   = 15;
extern int     MaxOpenOrders  = 5;     // Sets maximum number of open orders at same time.
extern double  MinMarginLevel = 250;   // Below this Minimum Margin Level percent % trading stops.
extern int     CloseDays      = 10;     // Number of days order is open before auto closing.
extern int     LossLevel      = 120;    // Loss amount before auto closing after CloseDays.
extern bool    UseHedge       = true;  // Places reverse order with PipStep order.
extern int     HedgeLotFactor = 3;     // Hedge order Lots will be increase by this factor.
extern int     HedgeTakeProfit= 30;
extern int     HedgeStoploss  = 300;
extern bool    AutoCal        = false; // True = iRSI() auto calculation of TakeProfit, StopLoss, PipStep

extern int     Fast_Period    = 23;
extern int     Fast_Price     = PRICE_OPEN;
extern int     Slow_Period    = 84;
extern int     Slow_Price     = PRICE_OPEN;
extern double  DivergenceLimit= 0.002;
extern bool    Use_V63D_Divergence = 1;   // 0 - Use original method for divergence, 1 - use in iFXAnalyzer
extern double IncreasementType = 0;//0=just add every PipStep,  >0 =OrdersToal()^x *Pipstep
extern bool    UseTradeScheduler = 1;

/*
Each "Trading Time" zone 1 through 4 has a Start and an End. 
To trade all day , set "day"...Start1=0 and "day"...End4=24. This is needed for each trading day.
To skip a full day, set "day"...Start1=0 and "day"...End4=0.
Note: EA is coded to use your Local PC Time.

Here is a Monday example. 

MonTradeHourStart1 = 0; - (Trading Time  zone 1 start)
MonTradeHourEnd1 = 8; - (Trading Time zone 1 end)   
MonTradeHourStart2 = 10; 
MonTradeHourEnd2 = 16;
MonTradeHourStart3 = 18; 
MonTradeHourEnd3 = 20;
MonTradeHourStart4 = 22; 
MonTradeHourEnd4 = 24; 

In above schedule, EA trades from 00:00 (midnight) to 08:00, then from 10:00 to 16:00, then from 18:00 to 20:00, then from 22:00 to 24:00.

Non-Trading Time is from 08:00 to 10:00, then from 16:00 to 18:00, then from 20:00 to 22:00.
*/

extern int SunTradeHourStart1 = 0; // 4 trading zones per day. To bypass a day, all zeros (=0)for that day.
extern int SunTradeHourEnd1 = 0; 
extern int SunTradeHourStart2 = 0; 
extern int SunTradeHourEnd2 = 0;
extern int SunTradeHourStart3 = 0; 
extern int SunTradeHourEnd3 = 0;
extern int SunTradeHourStart4 = 0; 
extern int SunTradeHourEnd4 = 24; 
extern int MonTradeHourStart1 = 0;
extern int MonTradeHourEnd1 = 0; 
extern int MonTradeHourStart2 = 0; 
extern int MonTradeHourEnd2 = 0;
extern int MonTradeHourStart3 = 0; 
extern int MonTradeHourEnd3 = 0;
extern int MonTradeHourStart4 = 0; 
extern int MonTradeHourEnd4 = 24;
extern int TueTradeHourStart1 = 0;
extern int TueTradeHourEnd1 = 0; 
extern int TueTradeHourStart2 = 0; 
extern int TueTradeHourEnd2 = 0;
extern int TueTradeHourStart3 = 0; 
extern int TueTradeHourEnd3 = 0;
extern int TueTradeHourStart4 = 0; 
extern int TueTradeHourEnd4 = 24;
extern int WedTradeHourStart1 = 0;
extern int WedTradeHourEnd1 = 0; 
extern int WedTradeHourStart2 = 0; 
extern int WedTradeHourEnd2 = 0;
extern int WedTradeHourStart3 = 0; 
extern int WedTradeHourEnd3 = 0;
extern int WedTradeHourStart4 = 0; 
extern int WedTradeHourEnd4 = 24;
extern int ThurTradeHourStart1 = 0;
extern int ThurTradeHourEnd1 = 0; 
extern int ThurTradeHourStart2 = 0; 
extern int ThurTradeHourEnd2 = 0;
extern int ThurTradeHourStart3 = 0; 
extern int ThurTradeHourEnd3 = 0;
extern int ThurTradeHourStart4 = 0; 
extern int ThurTradeHourEnd4 = 24;
extern int FriTradeHourStart1 = 0;
extern int FriTradeHourEnd1 = 0; 
extern int FriTradeHourStart2 = 0; 
extern int FriTradeHourEnd2 = 0;
extern int FriTradeHourStart3 = 0; 
extern int FriTradeHourEnd3 = 0;
extern int FriTradeHourStart4 = 0; 
extern int FriTradeHourEnd4 = 24;

double Stopper=0;
double KeepStopLoss=0;
double KeepAverage;
double dummy;
double spread=0;
double CurrentPipStep;
int    OrderWatcher=0;

int maxDD=0;
int maxOO=0;

extern int DVLimit = 10; // included by Renato
color clOpenBuy = DodgerBlue; // included by Renato
color clModiBuy = DodgerBlue; // included by Renato
color clCloseBuy = DodgerBlue; // included by Renato
color clOpenSell = Red; // included by Renato
color clModiSell = Red; // included by Renato
color clCloseSell = Red; // included by Renato
color clDelete = White; // included by Renato
string Name_Expert = "Firebird v3.2"; // included by Renato
string NameFileSound = "expert.wav"; // included by Renato
int MODE_DIV=0; // included by Renato
int MODE_SLOPE=1; // included by Renato
int MODE_ACEL=2; // included by Renato

extern int writelog = 0;

string text="";
double RVI0_RVI1     =0;

int MagicNumber;  // Made a global variable to aid in modularizing expert code
int Direction;    //1=long, 11=avoid long, 2=short, 22=avoid short
double LastPrice;
double PriceTarget;
double AveragePrice;

int iFXA=0;

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

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

double GetPreviousOpenPrice()
{
   int cnt;
   double LstPrice;

   for(cnt=OrdersTotal()-1;cnt>=0;cnt--){
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

      if ( (OrderSymbol()==Symbol()) && (OrderMagicNumber()==MagicNumber) && (OrderComment()==GetCommentForOrder()) )  // hdb - only symbol and magic  // modified by Renato
      {
           LstPrice=OrderOpenPrice();

           break;
      } 
   }
   return(LstPrice);
}

int CheckJustClosedOrder()
{
int cnt;
datetime orderclosetime;
string   rightnow;
int      rightnow2;
int      TheHistoryTotal=HistoryTotal();
int      difference;
int      flag=0;
   for(cnt=0;cnt<TheHistoryTotal;cnt++) 
    {
    if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY)==true)
       {
        if ( (OrderSymbol()==Symbol()) && (OrderMagicNumber()==MagicNumber) && (OrderComment()==GetCommentForOrder()) )       // hdb - only symbol and magic  // modified by Renato
            {
               orderclosetime=OrderCloseTime();
               rightnow=Year()+"-"+Month()+"-"+Day()+" "+Hour()+":"+Minute()+":"+Seconds();
               rightnow2=StrToTime(rightnow);
               difference=rightnow2-orderclosetime;
               if(Period()*60*2>difference) 
                  { // At least 2 periods away!
                   flag=1;   // Throw a flag
                   break;
                  }
              }
         }
     }
     return(flag);
}

int EnterPositionBasedOnOpen()
{
   int ret;
   double myMA =iMA(NULL,MA_timeframe,MA_length,0,MODE_SMA,PRICE_OPEN,0);
   double RVI=iRVI(NULL,0,10,MODE_MAIN,0)-iRVI(NULL,0,10,MODE_MAIN,1); // included by Renato
   RVI0_RVI1=RVI;

   CloseTheseTrades();
   if(UseEquityProtection) EquityProtection();

   if(MyOrdersTotal()<MaxOpenOrders && AccountEquity()/(AccountMargin()+0.0001)>(MinMarginLevel/100))
   {
      int h=TimeHour(TimeLocal());
      int trade=0;
      trade=0;

      if(UseTradeScheduler==true)
         {
        if( (DayOfWeek()==0 && ((h >= SunTradeHourStart1) && (h <= (SunTradeHourEnd1-1))) || ((h >= SunTradeHourStart2) && (h <= (SunTradeHourEnd2-1))) || ((h >= SunTradeHourStart3) && (h <=(SunTradeHourEnd3-1))) || ((h >= SunTradeHourStart4) && (h <= (SunTradeHourEnd4-1)))) || 
            (DayOfWeek()==1 && ((h >= MonTradeHourStart1) && (h <= (MonTradeHourEnd1-1))) || ((h >= MonTradeHourStart2) && (h <= (MonTradeHourEnd2-1))) || ((h >= MonTradeHourStart3) && (h <=(MonTradeHourEnd3-1))) || ((h >= MonTradeHourStart4) && (h <= (MonTradeHourEnd4-1)))) || 
            (DayOfWeek()==2 && ((h >= TueTradeHourStart1) && (h <= (TueTradeHourEnd1-1))) || ((h >= TueTradeHourStart2) && (h <= (TueTradeHourEnd2-1))) || ((h >= TueTradeHourStart3) && (h <=(TueTradeHourEnd3-1))) || ((h >= TueTradeHourStart4) && (h <= (TueTradeHourEnd4-1)))) || 
            (DayOfWeek()==3 && ((h >= WedTradeHourStart1) && (h <= (WedTradeHourEnd1-1))) || ((h >= WedTradeHourStart2) && (h <= (WedTradeHourEnd2-1))) || ((h >= WedTradeHourStart3) && (h <=(WedTradeHourEnd3-1))) || ((h >= WedTradeHourStart4) && (h <= (WedTradeHourEnd4-1)))) || 
            (DayOfWeek()==4 && ((h >= ThurT

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

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

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

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

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

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

Стоимость полного кода
1 869,40₽ ≈ $22.85