!xps v8 panel
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «!xps v8 panel.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Исходный код представляет индикатор для MetaTrader, который создаёт графические панели на графике с помощью объектов-меток OBJ_LABEL. Основная функция start() формирует элементы интерфейса: левую и правую панели, информационные блоки, а также отображает текущую цену Bid, спред, символ инструмента и таймер до следующего бара.
При включении параметра show.account индикатор дополнительно выводит баланс, эквити и прибыль счёта. Имеется закомментированный блок авторасчёта Фибо-уровней, который не активен в текущей версии кода. Параметры PanelBgd2, Note1, Note2, FiboStart и FiboEnd управляют внешним видом и текстовыми настройками панели.
Код содержит вспомогательные функции создания объектов (CreateFX3_Labels, Create.left.panel, Create.right.panel и др.) и функцию удаления всех созданных объектов deinit(). Обработчик init() задаёт автоматический выбор таймфрейма в зависимости от текущего периода. Продукт не содержит торговой логики и не отправляет ордера.
Настройки программы
| Настройка | Описание |
|---|---|
| PanelBgd2 | Цвет фона графических элементов панели. |
| Note1 | Текстовый параметр для отображения первой пользовательской заметки на панели. |
| Note2 | Текстовый параметр для отображения второй пользовательской заметки на панели. |
| FiboStart | Время начала периода для авторасчёта Фибо-уровней (закомментировано в текущей версии). |
| FiboEnd | Время окончания периода для авторасчёта Фибо-уровней (закомментировано в текущей версии). |
Поиск по коду файла
#property indicator_chart_window
color color1 = LimeGreen;
color color2 = SlateGray;
color color3 = White;
color color4 = DodgerBlue;
color TextColor2 = C'192,192,192';
color TextColor3 = C'50,160,50';
color TextColor4 = SlateGray;
color BoxColor = C'13,13,63';
color BoxColor1 = C'30,20,40';
color PanelBgd1 = C'7,40,80';
extern color PanelBgd2 = C'42,62,82';//C'40,60,80';//C'40,80,120';
bool show.left.panel = false;
extern bool show.right.panel = true;
bool show.comment.box = false;
extern bool show.account = false;
extern string Note1 = "DST started on Sunday, 27 March 2011, 01:00 local standard time";
extern string Note2 = "DST ends on Sunday, 30 October 2011, 02:00 local daylight time";
extern string FiboStart = "01:00";
extern string FiboEnd = "01:00";
int OpenBar;
double LastHigh,
LastLow,
LastClose;
int WhatWindow = 0;
int WhatWindow1 = 1;
int WhatCorner0 = 0;
int WhatCorner1 = 1;
int WhatCorner2 = 2;
int WhatCorner3 = 3;
int Shift.up.down = 0;
int Shift.sideway = 14;
bool show.timer = true;
bool show.extra.digit = false;
int BidFontSize = 29;
string BidFontType = "Arial Bold";
int FontSize = 11;
string FontType = "Arial";
string FontType2 = "Arial Bold";
double DecNos;
double myPoint;
double fibo;
double AUTOSELECT;
double col = White;
double SetPoint()
{
double mPoint;
if (Digits < 4)
mPoint = 0.01;
else
mPoint = 0.0001;
return(mPoint);
}
int init()
{
// код доступен только после оплаты
}
int deinit()
{
deleteObjects();
return(0);
}
int start()
{
// код доступен только после оплаты
}
if(show.extra.digit){int digit=1;int digitshift=-3;int digitshift1=-5;int digitshift2=3;int fontsize=4;int sprd=1;}
else{ digitshift=0;digitshift1=0;digitshift2=0;fontsize=0;sprd=0;}
if (StringFind (Symbol(), "JPY", 0) != -1){ DecNos = 2+digit;}
else if(Symbol()=="XAUUSD" || Symbol()=="XAGUSD"){ DecNos = 2+digit; }
else { DecNos = 4+digit; }
int counted_bars=IndicatorCounted();
if(show.left.panel){
Create.left.panel( "Panel001",5, 6);
ObjectSetText("Panel001", "g", 94, "Webdings", PanelBgd2);
Create.left.panel( "Panel002",5,122);
ObjectSetText("Panel002", "g", 94, "Webdings", PanelBgd2);
Create.left.panel( "Panel003",5,242);
ObjectSetText("Panel003", "g", 94, "Webdings", PanelBgd2);
Create.left.panel( "Panel004",5,362);
ObjectSetText("Panel004", "g", 94, "Webdings", PanelBgd2);
Create.left.panel( "Panel005",5,482);
ObjectSetText("Panel005", "g", 94, "Webdings", PanelBgd2);
Create.left.panel( "Panel006",5,582);
ObjectSetText("Panel006", "g", 94, "Webdings", PanelBgd2);
Create.left.panel( "Panel007",5,6);
ObjectSetText("Panel007", "g", 94, "Webdings", PanelBgd2);
Create.left.panel( "Panel008",5,122);
ObjectSetText("Panel008", "g", 94, "Webdings", PanelBgd2);
Create.left.panel( "Panel009",5,242);
ObjectSetText("Panel009", "g", 94, "Webdings", PanelBgd2);
Create.left.panel( "Panel010",5,362);
ObjectSetText("Panel010", "g", 94, "Webdings", PanelBgd2);
Create.left.panel( "Panel011",5,482);
ObjectSetText("Panel011", "g", 94, "Webdings", PanelBgd2);
}//End show.panel
if(show.right.panel){
Create.right.panel( "Panel012",5, 20);
ObjectSetText("Panel012", "g", 90, "Webdings", PanelBgd2);
Create.right.panel( "Panel013",5,122);
ObjectSetText("Panel013", "g", 90, "Webdings", PanelBgd2);
Create.right.panel( "Panel014",5,242);
ObjectSetText("Panel014", "g", 90, "Webdings", PanelBgd2);
Create.right.panel( "Panel015",5,362);
ObjectSetText("Panel015", "g", 90, "Webdings", PanelBgd2);
Create.right.panel( "Panel016",5,482);
ObjectSetText("Panel016", "g", 90, "Webdings", PanelBgd2);
/* Create.right.panel( "Panel017",5,602);
ObjectSetText("Panel017", "g", 90, "Webdings", PanelBgd2);
Create.right.panel( "Panel018",5,722);
ObjectSetText("Panel018", "g", 90, "Webdings", PanelBgd2);*/
Create.right.panelb( "Panel018",5,6);
ObjectSetText("Panel018", "g", 90, "Webdings", PanelBgd2);
Create.right.panelb( "Panel019",5,122);
ObjectSetText("Panel019", "g", 90, "Webdings", PanelBgd2);
Create.right.panelb( "Panel020",5,242);
ObjectSetText("Panel020", "g", 90, "Webdings", PanelBgd2);
Create.right.panelb( "Panel021",5,362);
ObjectSetText("Panel021", "g", 90, "Webdings", PanelBgd2);
}//End show.panel
if(show.comment.box){
CreateFX5_Labels( "Panel500",-130+134,30);
ObjectSetText("Panel500", "ggggggggggg", 25, "Webdings", C'225,225,225');
CreateFX5_Labels( "Panel500A",-130+155,30);
ObjectSetText("Panel500A", "ggggggggggg", 25, "Webdings", C'225,225,225');
CreateFX5_Labels( "Panel501",-130+136,32);
ObjectSetText("Panel501", "gggggggggggg", 22, "Webdings", PanelBgd2);//C'7,140,80');
CreateFX5_Labels( "Panel502",-130+168,32);
ObjectSetText("Panel502", "gggggggggggg", 22, "Webdings", PanelBgd2);//C'7,140,80');
}//end of show.trade.panel
double spread = (Ask-Bid)/myPoint;
if(spread>1 && spread<=10)
int sprdshift=4;
CreateFX3_Labels( "Panel023",12,10);
ObjectSetText("Panel023", "Spread: "+DoubleToStr(spread,1)+" pips", FontSize, "Arial", color3);
string symbol="";
if (Symbol()=="EURUSD" || Symbol()=="EURUSDm") {symbol="EURUSD";}
else if (Symbol()=="GBPUSD" || Symbol()=="GBPUSDm") {symbol="GBPUSD";}
else if (Symbol()=="USDCHF" || Symbol()=="USDCHFm") {symbol="USDCHF";}
else if (Symbol()=="USDJPY" || Symbol()=="USDJPYm") {symbol="USDJPY";}
else if (Symbol()=="EURJPY" || Symbol()=="EURJPYm") {symbol="EURJPY";}
else if (Symbol()=="EURCHF" || Symbol()=="EURCHFm") {symbol="EURCHF";}
else if (Symbol()=="EURGBP" || Symbol()=="EURGBPm") {symbol="EURGBP";}
else if (Symbol()=="USDCAD" || Symbol()=="USDCADm") {symbol="USDCAD";}
else if (Symbol()=="AUDUSD" || Symbol()=="AUDUSDm") {symbol="AUDUSD";}
else if (Symbol()=="GBPCHF" || Symbol()=="GBPCHFm") {symbol="GBPCHF";}
else if (Symbol()=="GBPJPY" || Symbol()=="GBPJPYm") {symbol="GBPJPY";}
else if (Symbol()=="CHFJPY" || Symbol()=="CHFJPYm") {symbol="CHFJPY";}
else if (Symbol()=="NZDUSD" || Symbol()=="NZDUSDm") {symbol="NZDUSD";}
else if (Symbol()=="EURCAD" || Symbol()=="EURCADm") {symbol="EURCAD";}
else if (Symbol()=="AUDJPY" || Symbol()=="AUDJPYm") {symbol="AUDJPY";}
else if (Symbol()=="EURAUD" || Symbol()=="EURAUDm") {symbol="EURAUD";}
else if (Symbol()=="AUDCAD" || Symbol()=="AUDCADm") {symbol="AUDCAD";}
else if (Symbol()=="AUDNZD" || Symbol()=="AUDNZDm") {symbol="AUDNZD";}
else if (Symbol()=="NZDJPY" || Symbol()=="NZDJPYm") {symbol="NZDJPY";}
else if (Symbol()=="CADJPY" || Symbol()=="CADJPYm") {symbol="CADJPY";}
else if (Symbol()=="XAUUSD" || Symbol()=="XAUUSDm") {symbol="XAUUSD";}
else if (Symbol()=="XAGUSD" || Symbol()=="XAGUSDm") {symbol="XAGUSD";}
else if (Symbol()=="GBPAUD" || Symbol()=="GBPAUDm") {symbol="GBPAUD";}
else if (Symbol()=="GBPCAD" || Symbol()=="GBPCADm") {symbol="GBPCAD";}
else if (Symbol()=="AUFCHF" || Symbol()=="AUFCHFm") {symbol="AUFCHF";}
else if (Symbol()=="CADCHF" || Symbol()=="CADCHFm") {symbol="CADCHF";}
else if (Symbol()=="NZDCHF" || Symbol()=="NZDCHFm") {symbol="NZDCHF";}
else if (Symbol()=="GBPNZD" || Symbol()=="GBPNZDm") {symbol="GBPNZD";}
else if (Symbol()=="AUDCHF" || Symbol()=="AUDCHFm") {symbol="AUDCHF";}
else if (Symbol()=="EURNZD" || Symbol()=="EURNZDm") {symbol="EURNZD";}
else{symbol=Symbol();int syblsize = 5;int syblshift=2;}
CreateFX3_Labels( "Panel024",6-syblshift+Shift.up.down,22);
ObjectSetText("Panel024", symbol , 21-syblsize, BidFontType, color4);
if(show.account){
CreateFX3_Labels( "Panel025",7,180);
ObjectSetText("Panel025", "gggg", 22, "Webdings", C'7,40,80');
CreateFX3_Labels( "Panel026",7,214);
ObjectSetText("Panel026", "gggg", 22, "Webdings", C'7,40,80');
CreateFX3_Labels( "Panel027",7,248);
ObjectSetText("Panel027", "gggg", 22, "Webdings", C'7,40,80');
CreateFX3_Labels( "Panel028",22+Shift.up.down,262);
ObjectSetText("Panel028", "Account Bal", FontSize, FontType2, DodgerBlue);
CreateFX3_Labels( "Panel029",12+Shift.up.down,248);
ObjectSetText("Panel029", DoubleToStr(AccountBalance(),2) , FontSize, FontType2, color3);
CreateFX3_Labels( "Panel030",13+Shift.up.down,228);
ObjectSetText("Panel030", "Account Equity", FontSize, FontType2, DodgerBlue);
CreateFX3_Labels( "Panel031",12+Shift.up.down,214);
ObjectSetText("Panel031", DoubleToStr(AccountEquity(),2) , FontSize, FontType2, col);
CreateFX3_Labels( "Panel032",16+Shift.up.down,194);
ObjectSetText("Panel032", "Account Profit", FontSize, FontType2, DodgerBlue);
if (AccountProfit() >0) col = Lime;
if (AccountProfit() <0) col = Red;
CreateПоказано первые 50% кода (символов: 13847)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.