precision trend 2.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «precision trend 2.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
precision trend 2.mq5 — пользовательский индикатор для MetaTrader 5, отображаемый в окне графика. Он рассчитывает два буфера и рисует их в виде гистограмм: один буфер соответствует восходящему направлению, другой — нисходящему. Цвета и толщина линий заданы в свойствах индикатора.
Индикатор использует входные параметры avgPeriod и sensitivity, которые влияют на расчёт аналитической линии. В коде применяется собственная функция iPrecisionTrend, возвращающая состояние направления (1 или -1), на основе которого выбирается, какой буфер и какие значения цены отображать.
Обработка данных выполняется в OnCalculate: буферы инициализируются значением EMPTY_VALUE, затем для каждого бара вычисляется направление и заполняются соответствующие элементы. Инициализация буферов и стилей отрисовки выполняется в OnInit. Других торговых или событийных функций в исходнике нет.
Настройки программы
| Настройка | Описание |
|---|---|
| avgPeriod | Целочисленный параметр, задающий период усреднения при расчёте аналитической линии индикатора. Влияет на сглаживание и чувствительность отображаемого направления. |
| sensitivity | Числовой параметр, задающий чувствительность расчёта. Участвует в формировании пороговых уровней, по которым определяется смена отображаемого направления. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red
#property indicator_width1 1
#property indicator_width2 1
#property strict
extern int avgPeriod = 30; // Average period
extern double sensitivity = 3; // Sensitivity
double upBuffer[],dnBuffer[];
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason) { return; }
int OnCalculate (const int rates_total,
const int prev_calculated,
const datetime& btime[],
const double& open[],
const double& high[],
const double& low[],
const double& close[],
const long& tick_volume[],
const long& volume[],
const int& spread[] )
{
// код доступен только после оплаты
}
#define _ptInstances 1
#define _ptInstancesSize 7
double _ptWork[][_ptInstances*_ptInstancesSize];
#define __range 0
#define __trend 1
#define __avg 2
#define __avgd 3
#define __avgu 4
#define __minc 5
#define __maxc 6
double iPrecisionTrend(const double& _high[], const double& _low[], const double& _close[], int _period, double _sensitivity, int i, int bars, int instanceNo=0)
{
if (ArrayRange(_ptWork,0)!=bars) ArrayResize(_ptWork,bars); instanceNo*=_ptInstancesSize; int r=bars-i-1;
_ptWork[r][instanceNo+__range] = _high[i]-_low[i];
_ptWork[r][instanceNo+__avg] = _ptWork[r][instanceNo+__range];
int k=1; for (; k<_period && (r-k)>=0; k++) _ptWork[r][instanceNo+__avg] += _ptWork[r-k][instanceNo+__range];
_ptWork[r][instanceNo+__avg] /= k;
_ptWork[r][instanceNo+__avg] *= _sensitivity;
if (i==(bars-1))
{
_ptWork[r][instanceNo+__trend] = 0;
_ptWork[r][instanceNo+__avgd] = _close[i]-_ptWork[r][instanceNo+__avg];
_ptWork[r][instanceNo+_Показано первые 50% кода (символов: 3670)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.