Volatility quality Stridsman
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «volatility_quality_stridsman bt.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор «Volatility quality Stridsman» рассчитывает метрику качества волатильности на основе соотношений ценовых данных (свечи High, Low, Open, Close) и отображает её в отдельном подокне графика. Основное значение волатильности накапливается по формуле, включающей истинный диапазон цены и изменения закрытия, а затем сглаживается и фильтруется по заданному порогу в пипсах для подавления незначительных колебаний.
На графике отображаются четыре графика: зона заливки между значением волатильности и его быстрой скользящей средней, линия быстрой и линия медленной скользящей средних, а также цветная линия самого показателя волатильности. Цвет линии меняется в зависимости от направления изменения значения (рост, падение, без изменений).
Индикатор включает настраиваемую кнопку на чарте, позволяющую включать и выключать отображение данных. Состояние кнопки сохраняется через глобальные переменные терминала. Параметры сглаживания цены и скользящих средних настраиваются по периоду и методу (SMA, EMA, SMMA, LWMA).
Настройки программы
| Настройка | Описание |
|---|---|
| Price smoothing period (PriceSmoothing) | Период сглаживания цены — Период сглаживания ценовых данных перед расчётом волатильности |
| Price smoothing method (PriceSmoothingMethod) | Метод сглаживания цены — Метод сглаживания ценовых данных (SMA, EMA, SMMA или LWMA) |
| Fast moving average (Ma1Period) | Период быстрой скользящей средней — Период быстрой скользящей средней, применяемой к значению волатильности |
| Fast moving average method (Ma1Method) | Метод быстрой скользящей средней — Метод расчёта быстрой скользящей средней (SMA, EMA, SMMA или LWMA) |
| Slow moving average (Ma2Period) | Период медленной скользящей средней — Период медленной скользящей средней, применяемой к значению волатильности |
| Slow moving average method (Ma2Method) | Метод медленной скользящей средней — Метод расчёта медленной скользящей средней (SMA, EMA, SMMA или LWMA) |
| Filter (in pips) (FilterInPips) | Фильтр (в пипсах) — Фильтр изменений показателя, выраженный в пипсах; при значении 0 фильтр отключён |
| button_note1 | Разделитель 1 — Текстовый разделитель перед настройками кнопки |
| What window to put the button on (btn_Subwindow) | Подокно для кнопки — Номер подокна, в котором размещается кнопка (0 — основной график) |
| button corner on chart for anchoring (btn_corner) | Угол привязки кнопки — Угол чарта, к которому привязывается кнопка (верхний левый, верхний правый, нижний левый, нижний правый) |
| a button name (btn_text) | Текст кнопки — Текст, отображаемый на кнопке |
| button font name (btn_Font) | Шрифт кнопки — Шрифт текста кнопки на чарте |
| button font size (btn_FontSize) | Размер шрифта кнопки — Размер шрифта текста кнопки |
| ON color when the button is turned on (btn_text_ON_color) | Цвет текста (вкл) — Цвет текста кнопки при включённом отображении данных индикатора |
| OFF color when the button is turned off (btn_text_OFF_color) | Цвет текста (выкл) — Цвет текста кнопки при выключенном отображении данных индикатора |
| background color of the button (btn_background_color) | Цвет фона кнопки — Цвет фона кнопки |
| border color the button (btn_border_color) | Цвет границы кнопки — Цвет границы кнопки |
| x coordinate of the button (button_x) | Координата X кнопки — Горизонтальная координата кнопки на чарте |
| y coordinate of the button (button_y) | Координата Y кнопки — Вертикальная координата кнопки на чарте |
| button width (btn_Width) | Ширина кнопки — Ширина кнопки в пикселях |
| button height (btn_Height) | Высота кнопки — Высота кнопки в пикселях |
| Unique ID for each button (UniqueButtonID) | Уникальный идентификатор кнопки — Уникальный идентификатор кнопки для различения нескольких экземпляров индикатора на одном чарте |
| button_note2 | Разделитель 2 — Текстовый разделитель после настроек кнопки |
Поиск по коду файла
???//
#property indicator_separate_window
#property indicator_buffers 7
#property indicator_plots 4
#property indicator_label1 "vq zone"
#property indicator_type1 DRAW_FILLING
#property indicator_color1 C'0,144,0',C'144,0,0'
#property indicator_label2 "fast average"
#property indicator_type2 DRAW_LINE
#property indicator_color2 C'0,144,0' //clrDarkGray
#property indicator_style2 STYLE_DOT
#property indicator_label3 "slow average"
#property indicator_type3 DRAW_LINE
#property indicator_color3 clrBlue //clrDarkGray
#property indicator_style3 STYLE_SOLID
#property indicator_width3 3
#property indicator_label4 "Volatility quality"
#property indicator_type4 DRAW_COLOR_LINE
#property indicator_color4 clrDarkGray,clrAqua,clrMagenta
#property indicator_width4 3
enum enPrices
{
pr_close, // Close
pr_open, // Open
pr_high, // High
pr_low, // Low
pr_median, // Median
pr_typical, // Typical
pr_weighted, // Weighted
pr_average, // Average (high+low+open+close)/4
pr_medianb, // Average median body (open+close)/2
pr_tbiased, // Trend biased price
pr_tbiased2, // Trend biased (extreme) price
pr_haclose, // Heiken ashi close
pr_haopen , // Heiken ashi open
pr_hahigh, // Heiken ashi high
pr_halow, // Heiken ashi low
pr_hamedian, // Heiken ashi median
pr_hatypical, // Heiken ashi typical
pr_haweighted, // Heiken ashi weighted
pr_haaverage, // Heiken ashi average
pr_hamedianb, // Heiken ashi median body
pr_hatbiased, // Heiken ashi trend biased price
pr_hatbiased2 // Heiken ashi trend biased (extreme) price
};
enum enMaTypes
{
ma_sma, // Simple moving average
ma_ema, // Exponential moving average
ma_smma, // Smoothed MA
ma_lwma // Linear weighted MA
};
input int PriceSmoothing = 5; // Price smoothing period
input enMaTypes PriceSmoothingMethod = ma_sma; // Price smoothing method
input int Ma1Period = 9; // Fast moving average
input enMaTypes Ma1Method = ma_sma; // Fast moving average method
input int Ma2Period = 200; // Slow moving average
input enMaTypes Ma2Method = ma_sma; // Slow moving average method
input double FilterInPips = 2.5; // Filter (in pips)
input string button_note1 = "------------------------------";
input int btn_Subwindow = 3; // What window to put the button on
input ENUM_BASE_CORNER btn_corner = CORNER_RIGHT_LOWER; // button corner on chart for anchoring
input string btn_text = "VQ"; // a button name
input string btn_Font = "Arial"; // button font name
input int btn_FontSize = 8; // button font size
input color btn_text_ON_color = clrWhite; // ON color when the button is turned on
input color btn_text_OFF_color = clrRed; // OFF color when the button is turned off
input color btn_background_color = clrDimGray; // background color of the button
input color btn_border_color = clrDarkGray; // border color the button
input int button_x = 270; // x coordinate of the button
input int button_y = 41; // y coordinate of the button
input int btn_Width = 65; // button width
input int btn_Height = 20; // button height
input string UniqueButtonID = "Stridsman"; // Unique ID for each button
input string button_note2 = "------------------------------";
bool show_data = true;
string IndicatorName, IndicatorObjPrefix, buttonId;
double val[],valc[],fill1[],fill2[],avg1[],avg2[];
int OnInit(void)
{
// код доступен только после оплаты
}
void OnDeinit(const int reason) {
ObjectsDeleteAll(0, IndicatorObjPrefix, -1, -1);
if(reason != REASON_CHARTCHANGE) ObjectDelete(0,buttonId);
}
void createButton(string buttonID, string buttonText, int width2, int height, string font, int fontSize, color bgColor, color borderColor, color txtColor)
{
ObjectDelete (0, buttonID);
ObjectCreate (0, buttonID, OBJ_BUTTON, btn_Subwindow, 0, 0);
ObjectSetInteger(0, buttonID, OBJPROP_COLOR, txtColor);
ObjectSetInteger(0, buttonID, OBJPROP_BGCOLOR, bgColor);
ObjectSetInteger(0, buttonID, OBJPROP_BORDER_COLOR, borderColor);
ObjectSetInteger(0, buttonID, OBJPROP_BORDER_TYPE, BORDER_RAISED);
ObjectSetInteger(0, buttonID, OBJPROP_XSIZE, width2);
ObjectSetInteger(0, buttonID, OBJPROP_YSIZE, height);
ObjectSetString (0, buttonID, OBJPROP_FONT, font);
ObjectSetString (0, buttonID, OBJPROP_TEXT, buttonText);
ObjectSetInteger(0, buttonID, OBJPROP_FONTSIZE, fontSize);
ObjectSetInteger(0, buttonID, OBJPROP_SELECTABLE, 0);
ObjectSetInteger(0, buttonID, OBJPROP_CORNER, btn_corner);
ObjectSetInteger(0, buttonID, OBJPROP_HIDDEN, 1);
ObjectSetInteger(0, buttonID, OBJPROP_XDISTANCE, 9999);
ObjectSetInteger(0, buttonID, OBJPROP_YDISTANCE, 9999);
}
void handleButtonClicks()
{
if(ObjectGetInteger(0, buttonId, OBJPROP_STATE))
{
ObjectSetInteger(0, buttonId, OBJPROP_STATE, false);
show_data = !show_data;
GlobalVariableSet(buttonId + "_visibility", show_data ? 1.0 : 0.0); //this line has to be here
}
}
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
if(id==CHARTEVENT_OBJECT_CREATE || id==CHARTEVENT_OBJECT_DELETE) return; // This appears to make this indy compatible with other programs that enabled CHART_EVENT_OBJECT_CREATE and/or CHART_EVENT_OBJECT_DELETE
if(id==CHARTEVENT_MOUSE_MOVE || id==CHARTEVENT_MOUSE_WHEEL) return; // If this, or another program, enabled mouse-events, these are not needed below, so skip it unless actually needed.
if (id==CHARTEVENT_OBJECT_CLICK && sparam == buttonId)
handleButtonClicks();
if (show_data)
{
ObjectSetInteger(0,buttonId,OBJPROP_COLOR,btn_text_ON_color);
PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_FILLING);
PlotIndexSetInteger(1, PLOT_DRAW_TYPE, DRAW_LINE);
PlotIndexSetInteger(2, PLOT_DRAW_TYPE, DRAW_LINE);
PlotIndexSetInteger(3, PLOT_DRAW_TYPE, DRAW_COLOR_LINE);
Comment(""); //this line has to be here; otherwise this indicator doesn't work; so weird
}
else
{
ObjectSetInteger(0,buttonId,OBJPROP_COLOR,btn_text_OFF_color);
for (int i=0; i<indicator_plots; i++)
PlotIndexSetInteger(i,Показано первые 50% кода (символов: 11348)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.