rsx nrp mtf + arrows + alerts nmc 1.21.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rsx nrp mtf + arrows + alerts nmc 1.21.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор для MetaTrader 4 рассчитывает осциллятор RSX — сглаженный показатель импульса цены — и отображает его в отдельном окне в диапазоне от 0 до 100. Поддерживает работу на нескольких таймфреймах (MTF): при выборе таймфрейма выше текущего запрашивает данные через iCustom и при необходимости интерполирует значения между барами. Индикатор отрисовывает стрелки и вертикальные линии в местах изменения направления наклона, а также может отправлять уведомления через Alert, email и звуковой сигнал.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм — Выбор таймфрейма для расчёта и отображения индикатора; при значении calculateValue или returnBars индикатор работает в специальном режиме вызова. |
| Length | Длина — Период расчёта осциллятора RSX. |
| PRICE_TYPICAL; (Price) | Цена — Тип цены, используемый для расчёта (PRICE_TYPICAL и другие варианты применённой цены). |
| levelOb | Уровень перекупленности — Верхний уровень индикатора, отображаемый в окне как горизонтальная линия. |
| levelOs | Уровень перепроданности — Нижний уровень индикатора, отображаемый в окне как горизонтальная линия. |
| alertsOn | Уведомления включены — Включает или отключает отправку уведомлений при изменении направления наклона RSX. |
| alertsOnCurrent | Уведомления на текущем баре — Определяет, на каком баре проверять изменение наклона: на текущем или на предыдущем. |
| alertsMessage | Сообщение — Включает отправку текстового уведомления через Alert при изменении направления. |
| alertsSound | Звук — Включает воспроизведение звукового сигнала при изменении направления. |
| alertsEmail | Email — Включает отправку email-уведомления при изменении направления. |
| ShowArrows | Показать стрелки — Включает отрисовку стрелок в точках изменения направления наклона. |
| Arrows drawn on newest bar of higher time frame bar? (arrowsOnNewest) | Стрелки на новейшем баре — Размещать ли стрелки на новейшем баре более высокого таймфрейма. |
| arrowsIdentifier | Идентификатор стрелок — Префикс имён графических объектов-стрелок для их последующего удаления. |
| arrowsUpperGap | Отступ стрелок вверх — Множитель расстояния от верхней цены бара для размещения стрелки вверх. |
| arrowsLowerGap | Отступ стрелок вниз — Множитель расстояния от нижней цены бара для размещения стрелки вниз. |
| LimeGreen; (arrowsUpColor) | Цвет стрелок вверх — Цвет стрелок, указывающих на рост. |
| Red; (arrowsDnColor) | Цвет стрелок вниз — Цвет стрелок, указывающих на падение. |
| arrowsUpCode | Код стрелок вверх — Код графического символа стрелки вверх. |
| arrowsDnCode | Код стрелок вниз — Код графического символа стрелки вниз. |
| arrowsSize | Размер стрелок — Толщина стрелок. |
| ShowLines | Показать линии — Включает отрисовку вертикальных линий в точках изменения направления наклона. |
| Lines drawn on newest bar of higher time frame bar? (linesOnNewest) | Линии на новейшем баре — Размещать ли вертикальные линии на новейшем баре более высокого таймфрейма. |
| Lines ID (verticalLinesID) | Идентификатор линий — Префикс имён графических объектов вертикальных линий. |
| Lines up color (verticalLinesUpColor) | Цвет линий вверх — Цвет вертикальной линии при росте. |
| Lines down color (verticalLinesDnColor) | Цвет линий вниз — Цвет вертикальной линии при падении. |
| Lines style (verticalLinesStyle) | Стиль линий — Стиль отображения вертикальных линий. |
| Lines width (verticalLinesWidth) | Толщина линий — Толщина вертикальных линий. |
| Interpolate | Интерполяция — Включает линейную интерполяцию значений между барами более высокого таймфрейма. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 clrDeepSkyBlue //LimeGreen
#property indicator_color2 clrMagenta //PaleVioletRed
#property indicator_color3 clrYellow //PaleVioletRed
#property indicator_width1 3
#property indicator_width2 3
#property indicator_width3 3
#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_levelcolor clrDarkGray
extern string TimeFrame = "Current time frame";
extern int Length = 7;
extern ENUM_APPLIED_PRICE Price = 6; //PRICE_TYPICAL;
extern double levelOb = 80;
extern double levelOs = 20;
extern bool alertsOn = false;
extern bool alertsOnCurrent = false;
extern bool alertsMessage = true;
extern bool alertsSound = true;
extern bool alertsEmail = false;
extern bool ShowArrows = true;
input bool arrowsOnNewest = false; // Arrows drawn on newest bar of higher time frame bar?
extern string arrowsIdentifier = "rsx Arrows1";
extern double arrowsUpperGap = 0.3;
extern double arrowsLowerGap = 0.3;
extern color arrowsUpColor = clrAqua; //LimeGreen;
extern color arrowsDnColor = clrMagenta; //Red;
extern int arrowsUpCode = 241;
extern int arrowsDnCode = 242;
extern int arrowsSize = 2;
extern bool ShowLines = true;
input bool linesOnNewest = false; // Lines drawn on newest bar of higher time frame bar?
input string verticalLinesID = "rsx Lines"; // Lines ID
input color verticalLinesUpColor = clrDeepSkyBlue; // Lines up color
input color verticalLinesDnColor = clrPaleVioletRed; // Lines down color
input ENUM_LINE_STYLE verticalLinesStyle = STYLE_DOT; // Lines style
input int verticalLinesWidth = 0; // Lines width
extern bool Interpolate = true;
double rsx[];
double rsxDa[];
double rsxDb[];
double slope[];
string indicatorFileName;
int timeFrame;
bool returnBars;
bool calculateValue;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
string tlookFor = arrowsIdentifier+":";
int tlookForLength = StringLen(tlookFor);
for (int i=ObjectsTotal()-1; i>=0; i--)
{
string tobjectName = ObjectName(i);
if (StringSubstr(tobjectName,0,tlookForLength) == tlookFor) ObjectDelete(tobjectName);
}
string lookFor = verticalLinesID+":";
int lookForLength = StringLen(lookFor);
for (i=ObjectsTotal()-1; i>=0; i--)
{
string objectName = ObjectName(i);
if (StringSubstr(objectName,0,lookForLength) == lookFor) ObjectDelete(objectName);
}
return(0);
}
double wrkBuffer[][13];
int start()
{
// код доступен только после оплаты
}
int i,r,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) { rsx[0] = limit+1; return(0); }
if (calculateValue || timeFrame==Period())
{
double Kg = (3.0)/(2.0+Length);
double Hg = 1.0-Kg;
if (slope[limit]==-1) CleanPoint(limit,rsxDa,rsxDb);
if (ArrayRange(wrkBuffer,0) != Bars) ArrayResize(wrkBuffer,Bars);
for(i=limit, r=Bars-i-1; i>=0; i--, r++)
{
wrkBuffer[r][12] = iMA(NULL,0,1,0,MODE_SMA,Price,i);
if (i==(Bars-1)) { for (int c=0; c<12; c++) wrkBuffer[r][c] = 0; continue; }
double mom = wrkBuffer[r][12]-wrkBuffer[r-1][12];
double moa = MathAbs(mom);
for (int k=0; k<3; k++)
{
int kk = k*2;
wrkBuffer[r][kk+0] = Kg*mom + Hg*wrkBuffer[r-1][kk+0];
wrkBuffer[r][kk+1] = Kg*wrkBuffer[r][kk+0] + Hg*wrkBuffer[r-1][kk+1]; mom = 1.5*wrkBuffer[r][kk+0] - 0.5 * wrkBuffer[r][kk+1];
wrkBuffer[r][kk+6] = Kg*moa + Hg*wrkBuffer[r-1][kk+6];
wrkBuffer[r][kk+7] = Kg*wrkBuffer[r][kk+6] + Hg*wrkBuffer[r-1][kk+7]; moa = 1.5*wrkBuffer[r][kk+6] - 0.5 * wrkBuffer[r][kk+7];
}
if (moa != 0)
rsx[i] = MathMax(MathMin((mom/moa+1.0)*50.0,100.00),0.00);
else rsx[i] = 50;
rsxDa[i] = EMPTY_VALUE;
rsxDb[i] = EMPTY_VALUE;
slope[i] = slope[i+1];
if (rsx[i]>rsx[i+1]) slope[i] = 1;
if (rsx[i]<rsx[i+1]) slope[i] =-1;
if (slope[i]==-1) PlotPoint(i,rsxDa,rsxDb,rsx);
if (ShowArrows)
{
string lookFor = arrowsIdentifier+":"+(string)Time[i]; ObjectDelete(lookFor);
if (slope[i] != slope[i+1])
Показано первые 50% кода (символов: 8038)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.