0 - h-lines targets hist v1.0.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «0 - h-lines targets hist v1.0.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор отображает на графике уровень открытия текущего торгового дня и две пары целевых линий, отстоящих от этого уровня на заданное расстояние в пунктах. Время начала дня определяется настраиваемыми параметрами смещения по часам и минутам, что позволяет учитывать часовой пояс. Уровень открытия может привязываться к цене открытия или закрытия бара.
Целевые линии (Target 1 и Target 2) рисуются симметрично относительно уровня открытия — выше и ниже. Каждая линия может быть включена или выключена отдельно. На графике также отображаются текстовые метки с указанием ценовых уровней, их шрифт, размер и положение настраиваются.
Индикатор использует пять буферов для отрисовки линий и объектов типа OBJ_TEXT для ценовых подписей. Линии продлеваются по горизонтали до следующего дня, а при смене дня сбрасываются, чтобы избежать ступенчатого отображения.
Настройки программы
| Настройка | Описание |
|---|---|
| Hour_ | Часовой сдвиг для определения начала торгового дня |
| Minutes | Минутный сдвиг для определения начала торгового дня |
| APRx | Источник цены для уровня открытия дня: цена закрытия (a) или цена открытия (b) бара |
| SHT1 | Включает или отключает отображение целевых линий Target 1 |
| SHT2 | Включает или отключает отображение целевых линий Target 2 |
| TargetDist1 | Расстояние целевых линий Target 1 от уровня открытия дня в пунктах |
| TargetDist2 | Расстояние целевых линий Target 2 от уровня открытия дня в пунктах |
| Shift_Line | Горизонтальный сдвиг линий индикатора в барах |
| SHT | Включает или отключает отображение текстовых меток с ценовыми уровнями |
| FB | Управляет жирностью шрифта текстовых меток цен |
| T_Size | Размер шрифта текстовых меток цен |
| TLRx | Смещение текстовой метки цены по горизонтали от текущего бара в периодах |
| TUDx | Смещение текстовой метки цены по вертикали в пунктах |
Поиск по коду файла
#property description "Targets Lnes and Price - Phylo-File45"
#property description "Code updated post build 600 - Phylo-File45"
#property strict
#property indicator_chart_window
#property indicator_buffers 5
#property indicator_color1 DarkSlateGray
#property indicator_style1 0
#property indicator_width1 5
#property indicator_color2 Lime
#property indicator_style2 0
#property indicator_width2 5
#property indicator_color3 Red
#property indicator_style3 0
#property indicator_width3 5
#property indicator_color4 DarkGreen
#property indicator_style4 0
#property indicator_width4 5
#property indicator_color5 Maroon
#property indicator_style5 0
#property indicator_width5 5
enum APR
{
a, // Price Close
b // Price Open
};
input int Hour_= 9; // Start Hours
input int Minutes = 0; // Start Minutes
input APR APRx = b; // Start Time Price (Bar Open or Close)
input bool SHT1 = true; // Show Target 1
input bool SHT2 = true; // Show Target 2
input int TargetDist1 = 150; // Target 1 Distance
input int TargetDist2 = 1000; // Target 2 Distance
input int Shift_Line = 0; // Shift
input bool SHT = true; // Show Price
input bool FB = false ; // Price Font Bold
input int T_Size = 10 ; // Price Size
input int TLRx = 15; // Price Left-Right
input int TUDx = 0; // Price Up-Down
double TodayOpenBuffer[];
double LT1[];
double ST1[];
double LT2[];
double ST2[];
double Pointx;
double SLT;
string OP, Fontx;
int init()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
ObjectDelete( "BT");
ObjectDelete("LT1T");
ObjectDelete("ST1T");
ObjectDelete("LT2T");
ObjectDelete("ST2T");
}
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[])
{
// код доступен только после оплаты
}
int DailyOpen(int offset, int lastbar)
{
int shift;
int tzdiffsec= (Hour_*3600)+(Minutes*60);
double barsper30= 1.0*PERIOD_M30/Period();
lastbar= (int) MathMin(Bars-20*barsper30-1, lastbar);
for(shift=lastbar;shift>=offset;shift--)
{
TodayOpenBuffer[shift]= 0;
LT1[shift] = 0;
ST1[shift] = 0;
LT2[shift] = 0;
ST2[shift] = 0;
switch(APRx)
{
case a: SLT = Close[shift]; OP = "Close: "; break;
case b: SLT = Open[shift]; OP = "Open: ";
}
if(TimeDay(Time[shift]-tzdiffsec) != TimeDay(Time[shift+1]-tzdiffsec))
{ // day change
TodayOpenBuffer[shift]= SLT;
if(SHT1){
LT1[shift] = SLT + TargetDist1*_Point;
ST1[shift] = SLT - TargetDist1*_Point;}
if(SHT2){
LT2[shift] = SLT + TargetDist2*_Point;
ST2[shift] = SLT - TПоказано первые 50% кода (символов: 6568)