0 - h-lines targets v1.0.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «0 - h-lines targets v1.0.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
«0 - h-lines targets v1.0» — это пользовательский индикатор для MetaTrader 5, который отрисовывает на графике горизонтальные линии-цели в заданном временном интервале. Линии рассчитываются от цены открытия или закрытия бара, соответствующего указанному времени начала, на заданные расстояния в пунктах.
Индикатор отображает две пары горизонтальных линий (лонг и шорт) для двух целей с настраиваемыми цветами, толщиной и стилем. Также можно включить отображение текстовой метки с ценой начала на графике.
Встроенная система уведомлений поддерживает отправку сообщений, звуковых сигналов, email и push-уведомлений при пересечении ценой открытия дневного бара уровня цены начала. Индикатор дополнительно рисует стрелки в фиксированное время 8:00.
Настройки программы
| Настройка | Описание |
|---|---|
| B_Start_Time | Время начала отрисовки горизонтальных линий |
| B_End_Time | Время окончания отрисовки горизонтальных линий |
| SHT1 | Включает отображение первой цели (горизонтальных линий) |
| SHT2 | Включает отображение второй цели (горизонтальных линий) |
| TD1 | Расстояние первой цели в пунктах от цены начала |
| TD2 | Расстояние второй цели в пунктах от цены начала |
| B_Color | Цвет горизонтальной линии времени начала |
| APRx | Выбор цены для расчёта линий: цена закрытия или цена открытия бара, соответствующего времени начала |
| B_Width | Толщина линии времени начала |
| B_Style | Стиль линии времени начала |
| LT1_Color | Цвет горизонтальной линии первой цели для позиции лонг |
| ST1_Color | Цвет горизонтальной линии первой цели для позиции шорт |
| WT1_Width | Толщина линий первой цели |
| ST1_Style | Стиль линий первой цели |
| LT1_Color2 | Цвет горизонтальной линии второй цели для позиции лонг |
| ST1_Color2 | Цвет горизонтальной линии второй цели для позиции шорт |
| WT2_Width | Толщина линий второй цели |
| ST2_Style | Стиль линий второй цели |
| SHT | Включает отображение текстовой метки цены начала на графике |
| FB | Включает жирный шрифт для текстовых меток цены |
| T_Size | Размер шрифта текстовых меток цены |
| TLRx | Горизонтальное смещение текстовой метки цены |
| TUDx | Вертикальное смещение текстовой метки цены |
| _AlertSetting | Разделитель группы настроек уведомлений |
| alertsOn | Включает или отключает систему уведомлений |
| alertsOnCurrentBar | Если включено, уведомления срабатывают на текущем открытом баре; если выключено — на следующем баре |
| alertsMessage | Включает отправку текстовых сообщений-уведомлений |
| alertsSound | Включает воспроизведение звукового уведомления |
| alertsNotification | Включает отправку push-уведомлений |
| alertsEmail | Включает отправку email-уведомлений |
| soundFile | Имя звукового файла для уведомлений |
Поиск по коду файла
#property description "FREE - NOT FOR SALE or RENT"
#property indicator_chart_window
#property strict
enum APR
{
a, // Price Close
b // Price Open
};
input string B_Start_Time = "01:00"; // Start Time
input string B_End_Time = "23:59"; // End Time
input bool SHT1 = true; // Show Target 1
input bool SHT2 = true; // Show Target 2
input int TD1 = 200; // Target 1 Distance
input int TD2 = 400; // Target 2 Distance
input color B_Color = DarkSlateGray; // Start Time Line
input APR APRx = b; // Start Time Price (Bar Open or Close)
input int B_Width = 5; // Width
input ENUM_LINE_STYLE B_Style = 0; // Style
input color LT1_Color = LimeGreen; // Long Target 1
input color ST1_Color = Red; // Short Target 1
input int WT1_Width = 5; // Width
input ENUM_LINE_STYLE ST1_Style = 0; // Style
input color LT1_Color2 = DarkGreen; // Long Target 2
input color ST1_Color2 = Maroon; // Short Target 2
input int WT2_Width = 5; // Width
input ENUM_LINE_STYLE ST2_Style = 0; // Style
input bool SHT = true; // Show Price
input bool FB = True ; // Price Font Bold
input int T_Size = 10 ; // Price Size
input int TLRx = 5; // Price Left-Right
input int TUDx = 5; // Price Up-Down
input string _AlertSetting = "---Alert Settings ---";
input bool alertsOn = true; //Turn alerts on?
input bool alertsOnCurrentBar = false; //Alerts on (still opened) bar true/false?
input bool alertsMessage = true; //Alerts Message true/false?
input bool alertsSound = true; //Alerts sound true/false?
input bool alertsNotification = false; //Alerts push notification true/false?
input bool alertsEmail = false; //Alerts email true/false?
input string soundFile = "alert.wav";
string Fontx, OP;
double s1_b, s1_tp, s1_sl, s1_tp2,s1_sl2;
string LabelID = "Hlines";
int init()
{
// код доступен только после оплаты
}
int deinit()
{
ObjectDelete( "B");
ObjectDelete( "LT1");
ObjectDelete( "ST1");
ObjectDelete( "LT2");
ObjectDelete( "ST2");
ObjectDelete( "BT");
ObjectDelete("LT1T");
ObjectDelete("ST1T");
ObjectDelete("LT2T");
ObjectDelete("ST2T");
deleteArrowObjects();
return(0);
}
void deleteArrowObjects()
{
string lookFor = LabelID;
int lookForLength = StringLen(lookFor);
for (int i=ObjectsTotal()-1; i>=0; i--)
{
string objectName = ObjectName(i);
if (StringSubstr(objectName,0,lookForLength) == lookFor) ObjectDelete(objectName);
}
}
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[])
{
// код доступен только после оплаты
}
datetime st1 = StrToTime(B_Start_Time);
datetime et1 = StrToTime(B_End_Time);
int shift_s1 = iBarShift(NULL,PERIOD_CURRENT,st1);
switch(APRx)
{
case a:
OP = "Close: ";
s1_b = Close[shift_s1];
s1_tp = iClose(NULL, PERIOD_CURRENT, shift_s1) + TD1*Point;
s1_sl = iClose(NULL, PERIOD_CURRENT, shift_s1) - TD1*Point;
s1_tp2 = iClose(NULL, PERIOD_CURRENT, shift_s1) + TD2*Point;
s1_sl2 = iClose(NULL, PERIOD_CURRENT, shift_s1) - TD2*Point; break;
case b:
OP = "Open: ";
s1_b = Open[shift_s1];
s1_tp = iOpen(NULL, PERIOD_CURRENT, shift_s1) + TD1*Point;
s1_sl = iOpen(NULL, PERIOD_CURRENT, shift_s1) - TD1*Point;
s1_tp2 = iOpen(NULL, PERIOD_CURRENT, shift_s1) + TD2*Point;
s1_sl2 = iOpen(NULL, PERIOD_CURRENT, shift_s1) - TD2*Point;
}
ObjectCreate( "B", OBJ_TREND, 0, 0, 0, 0, 0);
ObjectSet( "B", OBJPROP_COLOR, B_Color);
ObjectSet( "B", OBJPROP_WIDTH, B_Width);
ObjectSet( "B", OBJPROP_STYLE, B_Style);
ObjectSet( "B", OBJPROP_TIME1, st1);
ObjectSet( "B", OBJPROP_TIME2, et1);
ObjectSet( "B", OBJPROP_PRICE1, s1_b);
ObjectSet( "B", OBJPROP_PRICE2, s1_b);
ObjectSet( "B", OBJPROP_RAY, false);
ObjectSet( "B", OBJPROP_BACK, true);
ObjectSet( "B", OBJPROP_SELECTABLE, false);
if(SHT){
ObjectCreate( "BT",OBJ_TEXT,0,0,0);
ObjectSet( "BT",OBJPROP_TIME1,Time[0]+(TLRx*Period()*60));
ObjectSet( "BT",OBJPROP_PRICE1,s1_b-TUDx*Point);
ObjectSetText( "BT",OP + DoubleToStr(s1_b,Digits),T_Size,Fontx,B_Color);}
ObjectSet( "BT", OBJPROP_SELECTABLE, false);
if(SHT1){
ObjectCreate( "LT1", OBJ_TREND, 0, 0, 0, 0, 0);
ObjectSet( "LT1", OBJPROP_COLOR, LT1_Color);
ObjectSet( "LT1", OBJPROP_WIDTH, WT1_Width);
ObjectSet( "LT1", OBJPROP_STYLE, ST1_Style);
ObjectSet( "LT1", OBJPROP_TIME1, st1);
ObjectSet( "LT1", OBJPROP_TIME2, et1);
ObjectSet( "LT1", OBJPROP_PRICE1, s1_tp );
ObjectSet( "LT1", OBJPROP_PRICE2, s1_tp );
ObjectSet( "LT1", OBJPROP_RAY, false);
ObjectSet( "LT1", OBJPROP_BACK, true);}
ObjectSet( "LT1", OBJPROP_SELECTABLE, false);
if(SHT && SHT1){
ObjectCreate( "LT1T",OBJ_TEXT,0,0,0);
ObjectSet( "LT1T",OBJPROP_TIME1,Time[0]+(TLRx*Period()*60));
ObjectSet( "LT1T",OBJPROP_PRICE1,s1_tp-TUDx*Point);
ObjectSetText( "LT1T","T1: " + DoubleToStr(s1_tp,Digits),T_Size,Fontx,LT1_Color);}
ObjectSet( "LT1T", OBJPROP_SELECTABLE, false);
if(SHT1){
ObjectCreate( "ST1", OBJ_TREND, 0, 0, 0, 0, 0);
ObjectSet( "ST1", OBJPROP_COLOR, ST1_CПоказано первые 50% кода (символов: 8593)