rbicaowithfractals.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rbicaowithfractals.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор реализует построение кирпичных (range) баров с фиксированным шагом цены в пунктах на платформе MetaTrader 5. Каждый бар формируется при достижении заданного диапазона между максимальной и минимальной ценой, после чего отрисовывается новый кирпич с соответствующим направлением.
Дополнительно индикатор отображает компоненты, аналогичные Ишимоку: линии Tenkan-sen и Kijun-sen, заливку Senkou Span A/B, а также запаздающий индикатор Chikou Span. Линии рисуются на основе экстремумов диапазонных баров за соответствующие периоды.
Индикатор также определяет фракталы (верхние и нижние) на основе значений High и Low буферов и отмечает их стрелочными маркерами. Фракталы отрисовываются только при наличии достаточного количества построенных кирпичей. Все расчёты выполняются в отдельном окне с использованием 13 индикаторных буферов.
Настройки программы
| Настройка | Описание |
|---|---|
| PipRange | Шаг диапазона в пунктах, задающий фиксированную величину размаха каждого кирпичного бара (High минус Low). |
| Tenkan-sen (InpTenkan) | Период расчёта линии Tenkan-sen (линии конверсии), определяемый количеством диапазонных баров для поиска экстремумов. |
| Kijun-sen (InpKijun) | Период расчёта линии Kijun-sen (базовой линии), определяемый количеством диапазонных баров для поиска экстремумов. |
| Senkou Span B (InpSenkou) | Период расчёта линии Senkou Span B (опережающего спана B), определяемый количеством диапазонных баров для поиска экстремумов. |
Поиск по коду файла
#property version "1.10"
#property indicator_separate_window
#property indicator_buffers 13
#property indicator_plots 7
#property indicator_type1 DRAW_COLOR_CANDLES
#property indicator_color1 clrDodgerBlue, clrRed, clrNONE
#property indicator_type2 DRAW_LINE
#property indicator_type3 DRAW_LINE
#property indicator_type4 DRAW_FILLING
#property indicator_type5 DRAW_LINE
#property indicator_color2 OrangeRed
#property indicator_color3 Blue
#property indicator_color4 SandyBrown,Thistle
#property indicator_color5 Lime
#property indicator_label1 "RangeBars"
#property indicator_label2 "Tenkan-sen"
#property indicator_label3 "Kijun-sen"
#property indicator_label4 "Senkou Span A;Senkou Span B"
#property indicator_label5 "Chikou Span"
#property indicator_type6 DRAW_ARROW
#property indicator_type7 DRAW_ARROW
#property indicator_color6 Gray
#property indicator_color7 Gray
#property indicator_label6 "Fractal Up"
#property indicator_label7 "Fractal Down"
input ushort PipRange = 5;
input int InpTenkan=9; // Tenkan-sen
input int InpKijun=16; // Kijun-sen
input int InpSenkou=26; // Senkou Span B
double pipRange,tempHigh,tempLow,init, prevClose, tvol;
int paintBricks = 0;int ExtArrowShift=-10;
double OpenBuffer[];
double HighBuffer[];
double LowBuffer[];
double CloseBuffer[];
double ColorBuffer[];
double ExtTenkanBuffer[];
double ExtKijunBuffer[];
double ExtSpanABuffer[];
double ExtSpanBBuffer[];
double ExtChikouBuffer[];
double ExtUpperBuffer[];
double ExtLowerBuffer[];
double TickVolumeBuffer[];
int OnInit()
{
// код доступен только после оплаты
}
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(prev_calculated==0 || prev_calculated > rates_total) // проверка на первичный пересчет индикатора
FirstCalculated(rates_total,close,high,low);// return 0; // и отправка на пересчет
if(rates_total > prev_calculated && prev_calculated != 0) // проверка на появление нового бара
ShiftBricksRight(rates_total-1); // и отправка на сдвиг индикаторных буферов вправо
tvol++;
bool flag = false;
if(close[rates_total-1]>tempHigh) tempHigh = close[rates_total-1];
if(close[rates_total-1]<tempLow) tempLow = close[rates_total-1];
if(tempHigh-tempLow>=pipRange)
{
if(close[rates_total-1]>prevClose)
{
while(tempHigh-tempLow>=pipRange && !IsStopped())
{
OpenBuffer[rates_total-1] = prevClose;
LowBuffer[rates_total-1] = tempLow;
tempLow += pipRange;
prevClose = tempLow;
CloseBuffer[rates_total-1] = tempLow;
HighBuffer[rates_total-1] = tempLow;
ColorBuffer[rates_total-1] = 0;
ShiftBricksLeft(rates_total,true);
flag = true;
}
}
if(close[rates_total-1]<=prevClose)
{
while(tempHigh-tempLow>=pipRange && !IsStopped())
{
OpenBuffer[rates_total-1] = prevClose;
HighBuffer[rates_total-1] = tempHigh;
tempHigh -= pipRange;
prevClose = tempHigh;
CloseBuffer[rates_total-1] = tempHigh;
LowBuffer[rates_total-1] = tempHigh;
ColorBuffer[rates_total-1] = 1;
ShiftBricksLeft(rates_total,true);
flag = true;
}
}
}
if(flag) tvol = 0;
OpenBuffer[rates_total-1] = prevClose;
HighBuffer[rates_total-1] = tempHigh;
LowBuffer[rates_total-1] = tempLow;
CloseBuffer[rates_total-1] = close[rates_total-1];
TickVolumeBuffer[rates_total-1] = tvol;
if(close[rates_total-1]>prevClose) ColorBuffer[rates_total-1] = 0;
else ColorBuffer[rates_total-1] = 1;
Показано первые 50% кода (символов: 9286)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.