Brooky Garnish
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «brooky_garnish_levels.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор Brooky Garnish рассчитывает уровни на основе параболического SAR (iSAR) и отображает их на графике цен. Центральная линия соответствует значению SAR, а шесть дополнительных линий представляют уровни, смещённые от SAR с использованием настраиваемых коэффициентов. Индикатор рисует 8 буферов в виде линий разной толщины и цвета.
В зависимости от режима отображения уровни либо пересчитываются на каждом баре (обычный режим), либо удерживаются на уровне предыдущего бара до момента смены сигнала SAR (горизонтальный режим). При достижении SAR верхней или нижней цены бара уровни отражаются в противоположную сторону.
Параметр чувствительности влияет на шаг и максимальное значение SAR, а также на масштаб уровней. Режим автоподбора автоматически корректирует коэффициент масштабирования в зависимости от таймфрейма. Индикатор не содержит торговой логики и не отправляет ордера.
Настройки программы
| Настройка | Описание |
|---|---|
| SensitivityPercent | Чувствительность параболического SAR. Значение используется для вычисления шага и максимального параметра SAR, а также масштабирования уровней. |
| UseAutoFit | Переключатель автоматической корректировки коэффициента масштабирования FitRatio в зависимости от текущего таймфрейма. |
| FitRatio | Коэффициент масштабирования уровней, используемый при расчёте смещения линий от центрального значения SAR. При включённом автоподборе значение корректируется автоматически в зависимости от таймфрейма. |
| HorizontalMode | Переключатель горизонтального режима отображения уровней. При включении уровни удерживаются на значениях предыдущего бара и обновляются только при смене сигнала SAR. |
| Ratio_1 | Первый коэффициент для расчёта смещения самого внутреннего уровня от центральной линии SAR. |
| Ratio_2 | Второй коэффициент для расчёта смещения второго уровня от центральной линии SAR. |
| Ratio_3 | Третий коэффициент для расчёта смещения третьего уровня от центральной линии SAR. |
| Ratio_4 | Четвёртый коэффициент для расчёта смещения четвёртого уровня от центральной линии SAR. |
| Ratio_5 | Пятый коэффициент для расчёта смещения пятого уровня от центральной линии SAR. |
| Ratio_6 | Шестой коэффициент для расчёта смещения самого внешнего уровня от центральной линии SAR. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_buffers 8
#property indicator_color1 Red
#property indicator_color2 Tomato
#property indicator_color3 IndianRed
#property indicator_color4 Green
#property indicator_color5 CadetBlue
#property indicator_color6 DodgerBlue
#property indicator_color7 Blue
#property indicator_color8 Crimson
#property indicator_width1 3
#property indicator_width2 2
#property indicator_width3 1
#property indicator_width4 4
#property indicator_width5 1
#property indicator_width6 2
#property indicator_width7 3
#property indicator_width8 4
extern double SensitivityPercent = 61.8;
extern bool UseAutoFit = true;
extern double FitRatio = 1;
extern bool HorizontalMode = false;
extern double Ratio_1=0.0125;
extern double Ratio_2=0.025;
extern double Ratio_3=0.033;
extern double Ratio_4=0.0375;
extern double Ratio_5=0.05;
extern double Ratio_6=0.0625;
double P_Upper_3[];
double P_Upper_2[];
double P_Upper_1[];
double P_Centre[];
double P_Lower_1[];
double P_Lower_2[];
double P_Lower_3[];
double P_Data[];
double Step=0.005,Max=0.005;
static double Diffamount;
int TimeFrame = 0;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
Comment("");
return(0);
}
int start()
{
// код доступен только после оплаты
}
if(UseAutoFit)
{
if(Period()==1)FitRatio=Ratio_1*5;
if(Period()==5)FitRatio=Ratio_1*10;
if(Period()==15)FitRatio=Ratio_2*10;
if(Period()==30)FitRatio=Ratio_3*10;
if(Period()==60)FitRatio=Ratio_4*10;
if(Period()==240)FitRatio=Ratio_6*10;
if(Period()==1440)FitRatio=Ratio_2*100;
if(Period()==10080)FitRatio=Ratio_4*100;
if(Period()==43200)FitRatio=Ratio_6*100;
}
Step=SensitivityPercent*0.0001; Max=SensitivityPercent*0.0001;
int i,counted_bars=IndicatorCounted();
int limit=Bars-counted_bars;
if(counted_bars>0) limit++;
for(i=limit; i>0; i--)
{
if(iSAR(Symbol(),TimeFrame,Step,Max,i)>=iClose(Symbol(),0,i) && iSAR(Symbol(),TimeFrame,Step,Max,i+1)<=iClose(Symbol(),0,i+1) )
{
Diffamount=(MathAbs(iSAR(Symbol(),TimeFrame,Step,Max,i)-iSAR(Symbol(),TimeFrame,Step,Max,i+1)));
}
if(iSAR(Symbol(),TimeFrame,Step,Max,i+1)>=iClose(Symbol(),0,i+1) && iSAR(Symbol(),TimeFrame,Step,Max,i)<=iClose(Symbol(),0,i) )
{
Diffamount=(MathAbs(iSAR(Symbol(),TimeFrame,Step,Max,i)-iSAR(Symbol(),TimeFrame,Step,Max,i+1)));
}
if(!HorizontalMode)
{
P_Centre[i]=iSAR(Symbol(),TimeFrame,Step,Max,i);
P_Data[i]=iSAR(Symbol(),0,-Step,-Max,i);
if(iSAR(Symbol(),TimeFrame,Step,Max,i)<=iLow(Symbol(),TimeFrame,i))
{
P_Upper_3[i]=iSAR(Symbol(),TimeFrame,Step,Max,i)+(iSAR(Symbol(),TimeFrame,Step,Max,i)*Ratio_6*FitRatio);
P_Upper_2[i]=iSAR(Symbol(),TimeFrame,Step,Max,i)+(iSAR(Symbol(),TimeFrame,Step,Max,i)*Ratio_5*FitRatio);
P_Upper_1[i]=iSAR(Symbol(),TimeFrame,Step,Max,i)+(iSAR(Symbol(),TimeFrame,Step,Max,i)*Ratio_4*FitRatio);
P_Lower_1[i]=iSAR(Symbol(),TimeFrame,Step,Max,i)+(iSAR(Symbol(),TimeFrame,Step,Max,i)*Ratio_3*FitRatio);
P_Lower_2[i]=iSAR(Symbol(),TimeFrame,Step,Max,i)+(iSAR(Symbol(),TimeFrame,Step,Max,i)*Ratio_2*FitRatio);
P_Lower_3[i]=iSAR(Symbol(),TimeFrame,Step,Max,i)+(iSAR(Symbol(),TimeFrame,Step,Max,i)*Ratio_1*FitRatio);
P_Data[i]=iSAR(Symbol(),TimeFrame,Step,Max,i)+Diffamount;
}
if(iSAR(Symbol(),TimeFrame,Step,Max,i)>=iHigh(Symbol(),TimeFrame,i))
{
P_Upper_3[i]=iSAR(Symbol(),TimeFrame,Step,Max,i)-(iSAR(Symbol(),TimeFrame,Step,Max,i)*Ratio_1*FitRatio);
P_Upper_2[i]=iSAR(Symbol(),TimeFrame,Step,Max,i)-(iSAR(Symbol(),TimeFrame,Step,Max,i)*Ratio_2*FitRatio);
P_Upper_1[i]=iSAR(Symbol(),TimeFrame,Step,Max,i)-(iSAR(Symbol(),TimeFrame,Step,Max,i)*Ratio_3*FitRatio);
P_Lower_1[i]=iSAR(Symbol(),TimeFrame,Step,Max,i)-(iSAR(Symbol(),TimeFrame,Step,Max,i)*Ratio_4*FitRatio);
P_Lower_2[i]=iSAR(Symbol(),TimeFrame,Step,Max,i)-(iSAR(Symbol(),TimeFrame,Step,Max,i)*Ratio_5*FitRatio);
P_Lower_3[i]=iSAR(Symbol(),TimeFrame,Step,Max,i)-(iSAR(Symbol(),TimeFrame,Step,Max,i)*Ratio_6*FitRatio);
Показано первые 50% кода (символов: 8267)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.