parabolic-sar-signals.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «parabolic-sar-signals.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор Parabolic SAR Signals для MetaTrader 4 рассчитывает значения параболического SAR и отображает их в отдельном окне в виде гистограмм двух цветов, отражающих направление тренда. В качестве входных данных используются сглаженные значения максимумов и минимумов цен (SMA), что позволяет снизить влияние краткосрочных колебаний на расчёт SAR. Индикатор определяет смену направления тренда и визуально отмечает точки разворота стрелками на графике.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм — Выбор таймфрейма для расчёта индикатора; поддерживает текстовые обозначения (M1, M5, H1 и т.д.) или числовое значение минут. |
| AccStep | Шаг ускорения — Величина приращения коэффициента ускорения SAR при каждом новом экстремуме в текущем направлении. |
| AccLimit | Лимит ускорения — Максимальное значение коэффициента ускорения SAR, ограничивающее его рост. |
| PriceHigh | Цена высокая — Тип цены для расчёта верхней границы диапазона (по умолчанию HIGH). |
| PriceLow | Цена низкая — Тип цены для расчёта нижней границы диапазона (по умолчанию LOW). |
| alertsOn | Включить оповещения — Общий переключатель системы уведомлений; при выключении все остальные параметры оповещений игнорируются. |
| alertsOnCurrent | Оповещение по текущему бару — Определяет, проверять смену тренда на текущем (последнем) баре или на предыдущем. |
| alertsMessage | Оповещение сообщением — Вывод всплывающего сообщения в терминале при смене направления тренда. |
| alertsSound | Звуковой сигнал — Воспроизведение звукового файла при смене направления тренда. |
| alertsNotify | Push-уведомление — Отправка push-уведомления на мобильное устройство при смене направления тренда. |
| alertsEmail | Email-уведомление — Отправка электронного письма при смене направления тренда. |
| soundFile | Файл звука — Имя звукового файла для воспроизведения при срабатывании оповещения. |
| ShowArrows | Показать стрелки — Включает отрисовку стрелок на графике в точках разворота тренда. |
| arrowsIdentifier | Идентификатор стрелок — Префикс имён графических объектов-стрелок для их последующего поиска и удаления. |
| arrowsUpperGap | Отступ стрелок вверх — Множитель для расстояния от верхней цены до размещения стрелки вверх. |
| arrowsLowerGap | Отступ стрелок вниз — Множитель для расстояния от нижней цены до размещения стрелки вниз. |
| arrowsUpColor | Цвет стрелок вверх — Цвет стрелок, указывающих восходящий тренд. |
| arrowsDnColor | Цвет стрелок вниз — Цвет стрелок, указывающих нисходящий тренд. |
| arrowsNuColor | Цвет нейтральных стрелок — Цвет стрелок в нейтральном состоянии (задаётся, но в текущей версии не используется при отрисовке). |
| arrowsUpCode | Код стрелки вверх — Код символа стрелки вверх из библиотеки графических объектов MetaTrader. |
| arrowsDnCode | Код стрелки вниз — Код символа стрелки вниз из библиотеки графических объектов MetaTrader. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 LimeGreen
#property indicator_color2 Red
#property indicator_width1 2
#property indicator_width2 2
#property indicator_minimum 0
#property indicator_maximum 1
extern string TimeFrame = "Current time frame";
extern double AccStep = 0.01;
extern double AccLimit = 0.1;
extern int PriceHigh = PRICE_HIGH;
extern int PriceLow = PRICE_LOW;
extern bool alertsOn = true;
extern bool alertsOnCurrent = true;
extern bool alertsMessage = true;
extern bool alertsSound = false;
extern bool alertsNotify = true;
extern bool alertsEmail = true;
extern string soundFile = "alert2.wav";
extern bool ShowArrows = true;
extern string arrowsIdentifier = "sar Arrows";
extern double arrowsUpperGap = 1.0;
extern double arrowsLowerGap = 1.0;
extern color arrowsUpColor = LimeGreen;
extern color arrowsDnColor = Red;
extern color arrowsNuColor = Gray;
extern int arrowsUpCode = 241;
extern int arrowsDnCode = 242;
double sarUp[];
double sarDn[];
double saraUp[];
double saraDn[];
double trend[];
int timeFrame;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
deleteArrows();
return(0);
}
int start()
{
// код доступен только после оплаты
}
double workSar[][7];
#define _high 0
#define _low 1
#define _ohigh 2
#define _olow 3
#define _open 4
#define _position 5
#define _af 6
void iParabolic(double high, double low, double step, double limit, double& pClose, double& pOpen, double& pPosition, double& pChange, int i)
{
if (ArrayRange(workSar,0)!=Bars) ArrayResize(workSar,Bars); i = Bars-i-1;
pChange = 0;
workSar[i][_ohigh] = high;
workSar[i][_olow] = low;
if (i<1)
{
workSar[i][_high] = high;
workSar[i][_low] = low;
workSar[i][_open] = high;
workSar[i][_position] = -1;
return;
}
workSar[i][_open] = workSar[i-1][_open];
workSar[i][_af] = workSar[i-1][_af];
workSar[i][_position] = workSar[i-1][_position];
workSar[i][_high] = MathMax(workSar[i-1][_high],high);
workSar[i][_low] = MathMin(workSar[i-1][_low] ,low );
if (workSar[i][_position] == 1)
if (low<=workSar[i][_open])
{
workSar[i][_position] = -1;
pChange = -1;
pClose = workSar[i][_high];
workSar[i][_high] = high;
workSar[i][_low] = low;
workSar[i][_af] = step;
workSar[i][_open] = pClose + workSar[i][_af]*(workSar[i][_low]-pClose);
if (workSar[i][_open]<workSar[i ][_ohigh]) workSar[i][_open] = workSar[i ][_ohigh];
if (workSar[i][_open]<workSar[i-1][_ohigh]) workSar[i][_open] = workSar[i-1][_ohigh];
}
else
{
pClose = workSar[i][_open];
if (workSar[i][_high]>workSar[i-1][_high] && workSar[i][_af]<limit) workSar[i][_af] = MathMin(workSar[i][_af]+step,limПоказано первые 50% кода (символов: 7001)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.