Firebird v3.2
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «firebird v3[1].2-fixed.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.