###auto pivot2 button 1.03 aw1.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «###auto pivot2 button 1.03 aw1.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор для MetaTrader 5, отображающий на графике уровни пивот (Pivot) по дневному, недельному и месячному таймфреймам. Расчёт уровней выполняется по данным предыдущего завершённого периода соответствующего таймфрейма. Индикатор строит центральную линию пивот и, при включении соответствующей опции, дополнительные уровни поддержки и сопротивления.
Отображение каждого таймфрейма (дневной, недельный, месячный) управляется отдельными переключателями, а также отдельными переключателями для уровней поддержки и сопротивления. Цвета линий и подписей настраиваются независимо для каждого таймфрейма. Имеется опция учёта или игнорирования данных воскресного бара при расчёте дневных уровней.
Индикатор содержит кнопку на графике для быстрого включения и выключения отображения всех уровней. Состояние видимости сохраняется в глобальной переменной терминала. Внешний вид кнопки, её положение, шрифт и цвета настраиваются. Подписи уровней выводятся на графике с настраиваемым шрифтом, размером и смещением.
Линии уровней могут быть смещены вправо относительно текущего бара на заданное количество периодов, что позволяет продлить их отображение в будущее. Стиль линий задаётся отдельным параметром.
Настройки программы
| Настройка | Описание |
|---|---|
| Use_Sunday_Data | Определяет, учитываются ли данные воскресного бара при расчёте дневных уровней пивот. |
| Daily | Включает отображение дневных уровней пивот на графике. |
| Daily_SR_Levels | Включает отображение уровней поддержки и сопротивления для дневного таймфрейма. |
| Weekly | Включает отображение недельных уровней пивот на графике. |
| Weekly_SR_Levels | Включает отображение уровней поддержки и сопротивления для недельного таймфрейма. |
| Monthly | Включает отображение месячных уровней пивот на графике. |
| Monthly_SR_Levels | Включает отображение уровней поддержки и сопротивления для месячного таймфрейма. |
| Labels_Adjust | Смещение подписей уровней по горизонтали относительно текущего бара, выраженное в периодах. |
| Lines_Move_to_Right | Включает смещение линий уровней вправо от текущего бара вместо привязки к началу дня. |
| Lines_Shift | Количество периодов, на которое линии уровней смещаются вправо при включённой опции смещения. |
| note1 | Текстовая метка-разделитель в списке настроек, обозначающая начало группы параметров отображения. |
| LineFont | Название шрифта для подписей уровней на графике. |
| FontSize | Размер шрифта для подписей уровней на графике. |
| myLineStyle | Стиль отрисовки линий уровней (например, пунктирная, сплошная). |
| DailyLineColors | Текстовая метка-разделитель в списке настроек, обозначающая начало группы цветов для дневных линий. |
| color_DayPivotLine | Цвет центральной линии пивот для дневного таймфрейма. |
| color_DR1_Line | Цвет линии первого уровня сопротивления для дневного таймфрейма. |
| color_DR2_Line | Цвет линии второго уровня сопротивления для дневного таймфрейма. |
| color_DR3_Line | Цвет линии третьего уровня сопротивления для дневного таймфрейма. |
| color_DS1_Line | Цвет линии первого уровня поддержки для дневного таймфрейма. |
| color_DS2_Line | Цвет линии второго уровня поддержки для дневного таймфрейма. |
| color_DS3_Line | Цвет линии третьего уровня поддержки для дневного таймфрейма. |
| WeeklyLineColors | Текстовая метка-разделитель в списке настроек, обозначающая начало группы цветов для недельных линий. |
| color_WeekPivotLine | Цвет центральной линии пивот для недельного таймфрейма. |
| color_WR1_Line | Цвет линии первого уровня сопротивления для недельного таймфрейма. |
| color_WR2_Line | Цвет линии второго уровня сопротивления для недельного таймфрейма. |
| color_WR3_Line | Цвет линии третьего уровня сопротивления для недельного таймфрейма. |
| color_WS1_Line | Цвет линии первого уровня поддержки для недельного таймфрейма. |
| color_WS2_Line | Цвет линии второго уровня поддержки для недельного таймфрейма. |
| color_WS3_Line | Цвет линии третьего уровня поддержки для недельного таймфрейма. |
| MonthlyLineColors | Текстовая метка-разделитель в списке настроек, обозначающая начало группы цветов для месячных линий. |
| color_MonthPivotLine | Цвет центральной линии пивот для месячного таймфрейма. |
| color_MR1_Line | Цвет линии первого уровня сопротивления для месячного таймфрейма. |
| color_MR2_Line | Цвет линии второго уровня сопротивления для месячного таймфрейма. |
| color_MR3_Line | Цвет линии третьего уровня сопротивления для месячного таймфрейма. |
| color_MS1_Line | Цвет линии первого уровня поддержки для месячного таймфрейма. |
| color_MS2_Line | Цвет линии второго уровня поддержки для месячного таймфрейма. |
| color_MS3_Line | Цвет линии третьего уровня поддержки для месячного таймфрейма. |
| button_note1 | Текстовая метка-разделитель в списке настроек, обозначающая начало группы параметров кнопки. |
| btn_corner | Угол графика, к которому привязана кнопка управления видимостью. |
| btn_text | Текст, отображаемый на кнопке управления видимостью. |
| btn_Font | Название шрифта для текста на кнопке управления видимостью. |
| btn_FontSize | Размер шрифта для текста на кнопке управления видимостью. |
| btn_text_color | Цвет текста на кнопке управления видимостью. |
| btn_background_color | Цвет фона кнопки управления видимостью. |
| btn_border_color | Цвет рамки кнопки управления видимостью. |
| button_x | Горизонтальное смещение кнопки управления видимостью от выбранного угла графика. |
| button_y | Вертикальное смещение кнопки управления видимостью от выбранного угла графика. |
| btn_Width | Ширина кнопки управления видимостью в пикселях. |
| btn_Height | Высота кнопки управления видимостью в пикселях. |
| button_note2 | Текстовая метка-разделитель в списке настроек, обозначающая конец группы параметров кнопки. |
Поиск по коду файла
#property indicator_chart_window
extern bool Use_Sunday_Data = true;
extern bool Daily = false;
extern bool Daily_SR_Levels = false;
extern bool Weekly = true;
extern bool Weekly_SR_Levels = true;
extern bool Monthly = true;
extern bool Monthly_SR_Levels = true;
extern int Labels_Adjust = 20;
extern bool Lines_Move_to_Right = true;
extern int Lines_Shift = 18;
extern string note1 = "------------------------------";
extern string LineFont = "Arial Black";
extern int FontSize = 10;
extern ENUM_LINE_STYLE myLineStyle = STYLE_DOT;
extern string DailyLineColors = "---Daily Colors-------------";
extern color color_DayPivotLine = clrGray;
extern color color_DR1_Line = clrGreen;
extern color color_DR2_Line = clrGreen;
extern color color_DR3_Line = clrGreen;
extern color color_DS1_Line = clrGreen;
extern color color_DS2_Line = clrGreen;
extern color color_DS3_Line = clrGreen;
extern string WeeklyLineColors = "---Weekly Colors-------------";
extern color color_WeekPivotLine = clrMagenta; //clrAqua;
extern color color_WR1_Line = clrHotPink; //clrDarkOrange;
extern color color_WR2_Line = clrHotPink; //clrDarkOrange;
extern color color_WR3_Line = clrHotPink; //clrDarkOrange;
extern color color_WS1_Line = clrHotPink; //clrSteelBlue;
extern color color_WS2_Line = clrHotPink; //clrSteelBlue;
extern color color_WS3_Line = clrHotPink; //clrSteelBlue;
extern string MonthlyLineColors = "---Monthly Colors-------------";
extern color color_MonthPivotLine = clrDeepSkyBlue; //clrAqua;
extern color color_MR1_Line = clrBlue;
extern color color_MR2_Line = clrBlue;
extern color color_MR3_Line = clrBlue;
extern color color_MS1_Line = clrBlue; //clrSilver;
extern color color_MS2_Line = clrBlue; //clrSilver;
extern color color_MS3_Line = clrBlue; //clrSilver;
extern string button_note1 = "------------------------------";
extern ENUM_BASE_CORNER btn_corner = CORNER_RIGHT_LOWER; // chart btn_corner for anchoring
extern string btn_text = "Pivot";
extern string btn_Font = "Arial";
extern int btn_FontSize = 10; //btn__font size
extern color btn_text_color = clrGold;
extern color btn_background_color = clrDarkBlue;
extern color btn_border_color = clrBlue;
extern int button_x = 68; //btn__x
extern int button_y = 30; //btn__y
extern int btn_Width = 60; //btn__width
extern int btn_Height = 20; //btn__height
extern string button_note2 = "------------------------------";
bool show_data = true;
string IndicatorName, IndicatorObjPrefix;
int WorkTime=0,Periods=0;
double YesterdayHigh;
double YesterdayLow;
double YesterdayClose;
double Day_Price[][6];
double Pivot,S1,S2,S3,R1,R2,R3;
double WeekHigh;
double WeekLow;
double WeekClose;
double Weekly_Price[][6];
double WeekPivot,WS1,WS2,WS3,WR1,WR2,WR3;
double MonthHigh;
double MonthLow;
double MonthClose;
double Month_Price[][6];
double MonthPivot,MS1,MS2,MS3,MR1,MR2,MR3;
datetime endTime=0, startTime=0;
bool PlotFactor=false;
bool Daily2, Daily_SR_Levels2, Weekly2, Weekly_SR_Levels2, Monthly2, Monthly_SR_Levels2;
string GenerateIndicatorName(const string target) //don't change anything here
{
string name = target;
int try = 2;
while (WindowFind(name) != -1)
{
name = target + " #" + IntegerToString(try++);
}
return name;
}
class VisibilityCotroller //don't change anything here
{
string buttonId, visibilityId;
bool show_data, recalc;
public:
void Init(string id, string indicatorName, string caption, int x, int y) //don't change anything here
{
recalc = false;
visibilityId = indicatorName + "_visibility";
double val;
if (GlobalVariableGet(visibilityId, val))
show_data = val != 0;
buttonId = id;
ChartSetInteger(0, CHART_EVENT_MOUSE_MOVE, 1);
createButton(buttonId, caption, btn_Width, btn_Height, btn_Font, btn_FontSize, btn_background_color, btn_border_color, btn_text_color);
ObjectSetInteger(0,buttonId,OBJPROP_YDISTANCE, button_y);
ObjectSetInteger(0,buttonId,OBJPROP_XDISTANCE, button_x);
}
void DeInit()
{
ObjectDelete(ChartID(), buttonId);
DeleteObjectsByString("Line",0);
DeleteObjectsByString("Label",0);
}
bool HandleButtonClicks() //don't change anything here
{
if (ObjectGetInteger(0, buttonId, OBJPROP_STATE))
{
ObjectSetInteger(0, buttonId, OBJPROP_STATE, false);
show_data = !show_data;
GlobalVariableSet(visibilityId, show_data ? 1.0 : 0.0);
recalc = true;
return true;
}
return false;
}
bool IsRecalcNeeded() //don't change anything here
{
return recalc;
}
void ResetRecalc() //don't change anything here
{
recalc = false;
}
bool IsVisible() //don't change anything here
{
return show_data;
}
private: //don't change anything here much
void createButton(string buttonID,string buttonText,int width,int height,string font,int fontSize,color bgColor,color borderColor,color txtColor)
{
ObjectDelete (0,buttonID);
ObjectCreate (0,buttonID,OBJ_BUTTON,0,0,0);
ObjectSetInteger(0,buttonID,OBJPROP_COLOR,txtColor);
ObjectSetInteger(0,buttonID,OBJPROP_BGCOLOR,bgColor);
ObjectSetInteger(0,buttonID,OBJPROP_BORDER_COLOR,borderColor);
ObjectSetInteger(0,buttonID,OBJPROP_BORDER_TYPE,BORDER_RAISED);
ObjectSetInteger(0,buttonID,OBJPROP_XSIZE,width);
ObjectSetInteger(0,buttonID,OBJPROP_YSIZE,height);
ObjectSetString (0,buttonID,OBJPROP_FONT,font);
Показано первые 50% кода (символов: 10192)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.