addcandles.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «addcandles.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
AddCandles — пользовательский индикатор для MetaTrader 4 (MQL4), отображаемый в окне графика. Он агрегирует почасовые бары в составные свечи заданной продолжительности и отрисовывает их графическими объектами прямоугольников и трендовых линий на ценовом графике. Цвет свечи определяется соотношением открытия и закрытия: бычья, медвежья или доджи. Группировка привязана к часовым поясам через смещение от GMT и работает только на таймфрейме H1.
Настройки программы
| Настройка | Описание |
|---|---|
| ValidTimeFrames | Допустимые таймфреймы — Текстовая строка со списком допустимых периодов (в минутах), кратных текущему таймфрейму графика; используется для проверки корректности настройки TimeFrameInMinutes при инициализации. |
| TimeFrameInMinutes | Период в минутах — Длительность составной свечи в минутах; определяет, сколько почасовых баров объединяются в одну составную свечу и должно быть кратным текущему периоду графика. |
| UpCandleColor | Цвет бычьей свечи — Цвет графических объектов составной свечи, когда цена закрытия выше цены открытия. |
| DownCandleColor | Цвет медвежьей свечи — Цвет графических объектов составной свечи, когда цена открытия выше цены закрытия. |
| DojiCandleColor | Цвет доджи-свечи — Цвет графических объектов составной свечи, когда цена открытия равна цене закрытия. |
| BrokerHourDiffGMT | Разница часов брокера и GMT — Смещение в часах между серверным временем брокера и GMT, используемое для выравнивания границ групп составных свечей. |
| NumCandlesToRedraw | Количество свечей для перерисовки — Число составных свечей, которые перерисовываются при инициализации индикатора для отображения исторических данных. |
| Width | Ширина линий — Толщина линий используемых графических объектов (прямоугольников и трендовых линий свечей). |
Поиск по коду файла
#property version "1.00"
#property strict
#property indicator_chart_window
input string ValidTimeFrames="H1(60),H2(120),H3(180),H4(240),H6(360),H8(480),H12(720)";
input int TimeFrameInMinutes=480;
input color UpCandleColor=clrGreen;
input color DownCandleColor=clrRed;
input color DojiCandleColor=clrBlue;
input int BrokerHourDiffGMT=0;
input int NumCandlesToRedraw=200;
input int Width=3;
int obj_counter = 0;
int groups[];
int numGroups = 0;
int numHoursInGroup = 0;
int maxBarsToCheck = 0;
bool newCandle = false;
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
for(int i=0; i<obj_counter; i++)
ObjectDelete("obj"+IntegerToString(i));
Comment("");
}
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[])
{
// код доступен только после оплаты
}
void DrawClosedCandle(int i, int g)
{
if(i-numHoursInGroup+1 < 0) return;
double highest = -1e20;
double lowest = +1e20;
double open = Open[i];
double close = Close[i-numHoursInGroup+1];
color clr = DojiCandleColor;
double highStart = open;
double lowStart = close;
if(open > close){clr = DownCandleColor;}
if(close > open){clr = UpCandleColor; highStart = close; lowStart = open;}
for(int c=0; c<numHoursInGroup; c++)
{
if(High[i-c] > highest) highest = High[i-c];
if(Low[i-c] < lowest) lowest = Low[i-c];
Показано первые 50% кода (символов: 4825)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.