AutoFibo TradeZones
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «autofibo trading zones bt.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
AutoFibo TradeZones — индикатор для MetaTrader 4, отображающий на графике уровни Фибоначчи, прямоугольные зоны покупки и продажи, а также вертикальные линии начала и конца периода. Индикатор рассчитывает экстремумы цены за заданный интервал баров и строит на их основе аналитические объекты с настраиваемыми уровнями.
Включает гибкие настройки отображения: видимость линий и канала, цвета уровней и зон, стиль линий. На графике размещается кнопка с функцией включения/отключения отрисовки одним кликом, состояние которой сохраняется через глобальные переменные терминала.
Поддерживает пользовательские параметры периода расчёта, позиционирования и внешнего вида кнопки, а также цветов и стилей всех графических элементов. Перерисовка выполняется при каждом обновлении данных на графике.
Настройки программы
| Настройка | Описание |
|---|---|
| FibPeriod | Период расчёта — Период расчёта в барах для определения экстремумов и построения уровней |
| ShowStartLine | Отображение линии начала — Отображение вертикальной линии начала периода |
| ShowEndLine | Отображение линии окончания — Отображение вертикальной линии окончания периода |
| ShowChannel | Отображение канала — Отображение линий канала высоких и низких значений на графике |
| FibStyle | Стиль линий Фибоначчи — Стиль линий объекта Фибоначчи |
| FibColor | Цвет уровней Фибоначчи — Цоль уровней Фибоначчи |
| StartLineColor | Цвет линии начала — Цвет вертикальной линии начала периода |
| EndLineColor | Цвет линии окончания — Цвет вертикальной линии окончания периода |
| BuyZoneColor | Цвет зоны покупки — Цвет прямоугольника зоны покупки |
| SellZoneColor | Цвет зоны продажи — Цвет прямоугольника зоны продажи |
| Button text width (buttSize) | Размер текста кнопки — Ширина текста кнопки |
| Button text color (buttColor) | Цвет текста кнопки — Цвет текста кнопки на графике |
| Button background color (backColor) | Цвет фона кнопки — Цвет фона кнопки на графике |
| Button X axis (axisX) | Позиция кнопки по X — Координата кнопки по оси X от угла графика |
| Button Y axis (axisY) | Позиция кнопки по Y — Координата кнопки по оси Y от угла графика |
Поиск по коду файла
#property version "3.83"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 clrDodgerBlue //MidnightBlue
#property indicator_color2 clrCrimson //FireBrick
#property indicator_style1 STYLE_DASH
#property indicator_style2 STYLE_DASH
#property indicator_width1 0
#property indicator_width2 0
extern int FibPeriod = 240;
extern bool ShowStartLine = true;
extern bool ShowEndLine = true;
extern bool ShowChannel = true;
extern ENUM_LINE_STYLE FibStyle = STYLE_DASH;
extern color FibColor = clrDarkGoldenrod;
extern color StartLineColor = clrRoyalBlue;
extern color EndLineColor = clrFireBrick;
extern color BuyZoneColor = clrMidnightBlue;
extern color SellZoneColor = clrFireBrick;
extern int buttSize = 10; //Button text width
extern color buttColor = clrGold; //Button text color
extern color backColor = C'45,25,135'; //Button background color
extern int axisX = 0; //Button X axis
extern int axisY = 555; //Button Y axis
double WWBuffer1[];
double WWBuffer2[]; datetime NewTime=0;
double levelArray[10]={0,0.236,0.382,0.5,0.618,0.764,1,1.618,2.618,4.236};
string leveldescArray[13]={"0","23.6%","38.2%","50%","61.8%","76.4%","100%","161.8%","261.80%","423.6%"};
int levelCount;
string levelName;
string StartLine = "StartLine"+(string)FibPeriod;
string EndLine = "EndLine"+(string)FibPeriod;
string PREF = "AutoFibZon["+(string)FibPeriod+","+(string)ShowStartLine+","+(string)ShowEndLine+","+(string)ShowChannel+"]";
int init() {
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
ALL_OBJ_DELETE(PREF); Comment(""); //ObjectsDeleteAll(0,PREF,-1,-1);
ObjectDelete(0,PrefBT);
switch(reason)
{
case REASON_PARAMETERS :
case REASON_REMOVE : ObjectDelete(0,StartLine); ObjectDelete(0,EndLine); break;
default : ObjectDelete(0,PREF);
}
}
void ALL_OBJ_DELETE(string Pref)
{
string name;
for (int s=ObjectsTotal()-1; s>=0; s--) {
name=ObjectName(s);
if (StringSubstr(name,0,StringLen(Pref))==Pref) ObjectDelete(name); }
}
int start() {
// код доступен только после оплаты
}
if (!buttON[0]) { InitZero(0); return(0); }
int BarShift;
if (ShowStartLine)
{
datetime HLineTime=ObjectGet(StartLine,OBJPROP_TIME1);
if (HLineTime>=Time[0]) {BarShift=0;}
BarShift=iBarShift(NULL,0,HLineTime);
}
else if (!ShowStartLine){BarShift=0;}
if (ObjectFind(StartLine)==-1) {BarShift=0;}
int BarShift2;
if (ShowEndLine)
{
datetime HLine2Time=ObjectGet(EndLine,OBJPROP_TIME1);
if (HLine2Time>=Time[0]) {BarShift2=0;}
BarShift2=iBarShift(NULL,0,HLine2Time);
}
else if (!ShowEndLine){BarShift2=0;}
if (ObjectFind(EndLine)==-1) {BarShift2=0;}
double SellZoneHigh,BuyZoneLow;
if (ShowStartLine)
{
SellZoneHigh = iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH,BarShift-BarShift2,BarShift2+1));
BuyZoneLow = iLow(NULL,0,iLowest(NULL,0,MODE_LOW,BarShift-BarShift2,BarShift2+1));
}
if (!ShowStartLine)
{
SellZoneHigh = iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH,FibPeriod,1));
BuyZoneLow = iLow(NULL,0,iLowest(NULL,0,MODE_LOW,FibPeriod,1));
}
double PriceRange = SellZoneHigh - BuyZoneLow;
double BuyZoneHigh = BuyZoneLow + (0.236*PriceRange);
double SellZoneLow = SellZoneHigh - (0.236*PriceRange);
datetime StartZoneTime =Time[FibPeriod];
datetime EndZoneTime =Time[0]+Time[0];
levelCount=ArraySize(levelArray);
int CountedBars=IndicatorCounted();
if (CountedBars<0) return(-1); //Стандарт+Tankk+Вариант!!!
if (CountedBars>0) CountedBars--;
int limit=fmin(Bars-CountedBars-1+0,Bars-3-FibPeriod); //+MAX*10*TFK
if (NewTime!=iTime(NULL,1,0)) { limit=Bars-3; NewTime=iTime(NULL,1,0); } //Time[0]
for (int i=0; i<2; i++) {
SetIndexEmptyValue(i,0.0); //--- значение 0 отображаться не будет
SetIndexDrawBegin(i,FibPeriod*1); } //--- пропуск отрисовки первых баров
for (i=limit; i>=0; i--) {
WWBuffer1[i]=0; WWBuffer1[i] = getPeriodHigh(FibPeriod,i);
WWBuffer2[i]=0; WWBuffer2[i] = getPeriodLow(FibPeriod,i);
if (ShowStartLine)
{ObjectSet(PREF+"FibLevels", OBJPROP_TIME1, Time[BarShift]);
ObjectSet(PREF+"FibLevels", OBJPROP_TIME2, Time[BarShift2]);}
if (!ShowStartLine)
{ObjectSet(PREF+"FibLevels", OBJPROP_TIME1, StartZoneTime);}
ObjectSet(PREF+"FibLevels", OBJPROP_TIME2, Time[0]);
if (Open[FibPeriod] < Open[0]) // Up
{
Показано первые 50% кода (символов: 9668)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.