PIPQind
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «pipqind (3).mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
PIPQind — пользовательский технический индикатор для MetaTrader 5, отображающийся в основном окне графика. Индикатор рассчитывает динамический уровень стоп-лосса на основе ценового движения и волатильности актива, визуализируя его в виде стрелок, гистограммы и трендовых линий. При приближении бара к закрытию и выполнении условий индикатор способен отправлять push-уведомления и электронные письма с описанием потенциальной торговой ситуации.
Настройки программы
| Настройка | Описание |
|---|---|
| nPips | nPips — Размер сдвига уровня в пунктах, используемый при расчёте динамического стоп-уровня |
| SendAlert | SendAlert — Включает или отключает отправку push-уведомлений в терминал при появлении сигнала |
| SendEmail | SendEmail — Включает или отключает отправку электронных писем с описанием сигнала на указанный адрес |
| AlertMinutesB4close | AlertMinutesB4close — Минут до закрытия бара, за которые начинается проверка условия для отправки уведомления |
| AlertEveryNMinutes | AlertEveryNMinutes — Минимальный интервал в минутах между повторными отправками уведомлений |
| ATRmultiplier | ATRmultiplier — Множитель, применяемый к значению волатильности при корректировке уровня стоп-лосса |
| Сдвиг индикатора по горизонтали в барах (Shift) | Сдвиг индикатора по горизонтали в барах — Сдвиг индикатора по горизонтали в барах |
Поиск по коду файла
#property version "1.00"
#property indicator_chart_window
#property indicator_buffers 6
#property indicator_plots 4
#property indicator_type1 DRAW_ARROW
#property indicator_color1 clrLime
#property indicator_style1 STYLE_SOLID
#property indicator_width1 2
#property indicator_label1 "Buy PIPQind signal"
#property indicator_type2 DRAW_ARROW
#property indicator_color2 clrRed
#property indicator_style2 STYLE_SOLID
#property indicator_width2 2
#property indicator_label2 "Sell PIPQind signal"
#property indicator_type3 DRAW_COLOR_HISTOGRAM2
#property indicator_color3 clrDodgerBlue,clrTomato
#property indicator_style3 STYLE_SOLID
#property indicator_width3 2
#property indicator_label3 "PIPQind Histogram"
#property indicator_type4 DRAW_LINE
#property indicator_color4 clrIndigo
#property indicator_style4 STYLE_SOLID
#property indicator_width4 2
#property indicator_label4 "PIPQind Line"
#define RESET 0 // Константа для возврата терминалу команды на пересчёт индикатора
input double nPips=65;
input bool SendAlert=false;
input bool SendEmail=false;
input int AlertMinutesB4close=5;
input int AlertEveryNMinutes =10;
input double ATRmultiplier=0.45;
input int Shift=0; // Сдвиг индикатора по горизонтали в барах
double UpArrow[];
double DownArrow[];
double BlueBar[],RedBar[],ColorBar[];
double TrStopDots[];
int min_rates_total,ATR_Handle;
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
ObjectsDeleteAll(0,"PIPQind_",-1,-1);
Comment("");
ChartRedraw(NULL);
}
int OnCalculate(const int rates_total, // количество истории в барах на текущем тике
const int prev_calculated,// количество истории в барах на предыдущем тике
const datetime &time[],
const double &open[],
const double& high[], // ценовой массив максимумов цены для расчета индикатора
const double& low[], // ценовой массив минимумов цены для расчета индикатора
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
// код доступен только после оплаты
}
if(BarsCalculated(ATR_Handle)<rates_total
|| rates_total<min_rates_total)
return(RESET);
int to_copy,limit,bar,i;
double ATR[];
datetime alertsent=NULL;
string MinutesB4Barcloses;
double cnt=0;
double stop,atr,atrstop;
double TrStopLevel=0;
string name;
static double PREV;
ArraySetAsSeries(low,true);
ArraySetAsSeries(high,true);
ArraySetAsSeries(close,true);
ArraySetAsSeries(time,true);
ArraySetAsSeries(spread,true);
ArraySetAsSeries(ATR,true);
if(prev_calculated>rates_total || prev_calculated<=0) // проверка на первый старт расчета индикатора
{
limit=rates_total-min_rates_total-1; // стартовый номер для расчета всех баров
PREV=close[limit];
}
else
{
limit=rates_total-prev_calculated; // стартовый номер для расчета новых баров
}
to_copy=limit+1;
if(CopyBuffer(ATR_Handle,0,0,to_copy,ATR)<=0) return(RESET);
for(bar=limit; bar>=0 && !IsStopped(); bar--)
{
UpArrow[bar]=NULL;
DownArrow[bar]=NULL;
BlueBar[bar]=NULL;
RedBar[bar]=NULL;
if(close[bar]==PREV)
{
TrStopLevel=PREV;
}
else
{
if(close[bar+1]<=PREV && close[bar]<PREV)
{
TrStopLevel=MathMin(PREV,close[bar]+nPips*_Point);
}
else
{
if(close[bar+1]>=PREV && close[bar]>PREV)
{
TrStopLevel=MathMax(PREV,close[bar]-nPips*_Point);
}
else
{
if(close[bar]>PREV)
{
TrStopLevel=close[bar]-nPips*_Point;
}
else TrStopLevel=close[bar]+nPips*_Point;
}
}
}
TrStopDots[bar]=TrStopLevel;
if(UpArrow[bar] && UpArrow[bar]!=TrStopDots[bar]) UpArrow[bar]=NULL;
Показано первые 50% кода (символов: 9068)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.