Vasily Pip Sniper
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «vasily_pip_sniper_v3.3__1 (arrows).mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор «Vasily Pip Sniper» рассчитывает два значения на основе скользящих средних с разными периодами и отображает их в отдельном окне. Разница между быстрой и медленной скользящей средней формирует два буфера (up и dn), которые визуально отображаются линиями зелёного и красного цвета.
Индикатор поддерживает отрисовку стрелок на графике при смене направления, а также межбарровую интерполяцию для более плавного отображения. Дополнительно реализована система уведомлений с поддержкой всплывающих сообщений, звуковых сигналов, push-уведомлений и email-рассылки.
Индикатор работает на выбранном таймфрейме и поддерживает кросс-таймфреймовый расчёт, обращаясь к самому себе на другом таймфрейме. Пользователь может задать периоды вручную или использовать автоматические значения, подбираемые под текущий таймфрейм.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм, на котором выполняется расчёт индикатора. |
| Price | Тип цены, используемой для расчёта скользящих средних (например, Close, Open, High, Low и др.). |
| Method | Метод расчёта скользящей средней (например, простая, экспоненциальная, взвешенная или по Линейной регрессии). |
| estr | Пояснительный текст. Если UseUserVariables установлен в false, периоды выбираются автоматически. |
| UseUserVariables | При включении используются пользовательские периоды FastPeriod и SlowPeriod. При отключении периоды выбираются автоматически в зависимости от текущего таймфрейма. |
| FastPeriod | Быстрый период скользящей средней, используемый для расчёта короткосрочного компонента индикатора. |
| SlowPeriod | Медленный период скользящей средней, используемый для расчёта долгосрочного компонента индикатора. |
| Arrows visible? (arrowsVisible) | Включает или отключает отрисовку стрелок на графике при смене направления. |
| Unique ID for arrows (arrowsIdentifier) | Уникальный идентификатор, используемый для именования объектов-стрелок на графике. |
| Upper arrow gap (arrowsUpperGap) | Отступ верхней стрелки от цены High в единицах ATR(20). |
| Lower arrow gap (arrowsLowerGap) | Отступ нижней стрелки от цены Low в единицах ATR(20). |
| Up arrow color (arrowsUpColor) | Цвет восходящей стрелки на графике. |
| Down arrow color (arrowsDnColor) | Цвет нисходящей стрелки на графике. |
| Up arrow code (arrowsUpCode) | Код стрелки для отрисовки восходящего направления. |
| Down arrow code (arrowsDnCode) | Код стрелки для отрисовки нисходящего направления. |
| Arrows size (arrowsSize) | Толщина линии стрелок на графике. |
| Turn alerts on? (alertsOn) | Включает или отключает всю систему уведомлений индикатора. |
| Alerts on current (still opened) bar? (alertsOnCurrent) | Определяет, генерировать ли уведомления на текущей (ещё не закрытой) свече или только на закрытых. |
| Alerts should show pop-up message? (alertsMessage) | Включает или отключает всплывающие сообщения на графике при смене направления индикатора. |
| Alerts should play alert sound? (alertsSound) | Включает или отключает воспроизведение звукового сигнала при смене направления индикатора. |
| Alerts should send push notification? (alertsPushNotif) | Включает или отключает отправку push-уведомлений на мобильные устройства при смене направления индикатора. |
| Alerts should send email? (alertsEmail) | Включает или отключает отправку email-уведомлений при смене направления индикатора. |
| Interpolate | Включает или отключает интерполяцию значений индикатора между барами при кросс-таймфреймовом расчёте. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_width1 1
#property indicator_width2 1
extern ENUM_TIMEFRAMES TimeFrame = 0;
extern ENUM_APPLIED_PRICE Price = 0;
extern ENUM_MA_METHOD Method = 1;
extern string estr = "If UseUserVariables set to false, variables are automatically chosen";
extern bool UseUserVariables = True;
extern int FastPeriod = 1;
extern int SlowPeriod = 6;
extern bool arrowsVisible = false; // Arrows visible?
extern string arrowsIdentifier = "vasily1"; // Unique ID for arrows
extern double arrowsUpperGap = 0.5; // Upper arrow gap
extern double arrowsLowerGap = 0.5; // Lower arrow gap
extern color arrowsUpColor = clrDodgerBlue; // Up arrow color
extern color arrowsDnColor = clrRed; // Down arrow color
extern int arrowsUpCode = 225; // Up arrow code
extern int arrowsDnCode = 226; // Down arrow code
extern int arrowsSize = 0; // Arrows size
extern bool alertsOn = false; // Turn alerts on?
extern bool alertsOnCurrent = false; // Alerts on current (still opened) bar?
extern bool alertsMessage = true; // Alerts should show pop-up message?
extern bool alertsSound = false; // Alerts should play alert sound?
extern bool alertsPushNotif = false; // Alerts should send push notification?
extern bool alertsEmail = false; // Alerts should send email?
extern bool Interpolate = true;
int per1, per2;
double up[];
double dn[];
double WorkBuffer[];
double WorkBuffer2[],arrows[];
string indicatorFileName;
bool returnBars;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
string lookFor = arrowsIdentifier+":";
int lookForLength = StringLen(lookFor);
for (int i=ObjectsTotal()-1; i>=0; i--)
{
string objectName = ObjectName(i);
if (StringSubstr(objectName,0,lookForLength) == lookFor) ObjectDelete(objectName);
}
return(0);
}
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
if(counted_bars < 0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
if (returnBars) { up[0] = limit+1; return(0); }
if (TimeFrame!=_Period)
{
limit = (int)MathMax(limit,MathMin(Bars-1,iCustom(NULL,TimeFrame,indicatorFileName,-99,0,0)*TimeFrame/Period()));
for (int iПоказано первые 50% кода (символов: 6087)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.