Мы выпустили новую версию MT4GUI. Все бета-тестеры могут связаться со мной
для получения образцов: http: //www.fx1.net/wiki/pmwiki.php/MT4GUI/MT4GUI
#import "toolbox.dll" int tbPutObject(int,string,int,int,int,int,string); int tbRemoveAll(int); int tbSetText(int,string,int,string); int tbSetBgColor(int,int); int tbSetTextColor(int,int); bool tbIsClicked( int ); int tbRemove(int); int tbEnable(int,int); #import
Отличная идея, но продукт пока не работает. Не работает без "libtrade.mqh" и "libvisual.mqh". Где я могу получить эти файлы, чтобы действительно протестировать mt4gui.dll?
Без этих файлов компилятор не сможет определить функции "pFontSize", "pReset", "p" и "CloseAllByMagic".
pro_
Вы можете найти файлы в разделе загрузки с 2 дней есть обновления. Цвета теперь работают и несколько ошибок были исправлены.
Да, вам нужны включаемые файлы, но они не связаны с проектом mt4gui. Это просто мои собственные процедуры для определения некоторых функций, таких как p (печать на экран). Код примера полностью демонстрирует mt4gui, с другой стороны, мы все еще работаем над этим проектом.
Скоро будет готов:
Определение положения мыши
Определение фона графика для автоматической адаптации bgcolors объектов
Listbox
привет
Продукт работает, и это именно то, что мне нужно. Но...
У меня есть несколько проблем с ним.
1) не могу разместить текст на экране; (лоты, SL, TP и т.д. линии)
2) цвета не работают, независимо от того, что я делаю;
3) это скорее предложение - возможно ли разместить кнопки в отдельном подокне? Это будет гораздо удобнее, будет выглядеть как торговая консоль и, если подокно свернуто, поможет избежать случайных нажатий на кнопку. Насколько я могу судить по функции PutObject, координаты не связаны с основным или подокном.
Но несмотря на все это, это отличный продукт. То, что он реализован в МТ4, было долгожданным. Спасибо.
pro__
1) для размещения текста на экране можно использовать внутренние объекты MQL, вот пример кода:
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= string pxy(string mytext,color clr,int posx,int posy,int size) { string n="pxy3txt"+posx+posy; ObjectCreate(n, OBJ_LABEL, 0, Time[lib_startbarno], lib_nextlinelevel); ObjectSet(n, OBJPROP_CORNER, 0); ObjectSet(n, OBJPROP_XDISTANCE, posx); ObjectSet(n, OBJPROP_YDISTANCE, posy); ObjectSet(n, OBJPROP_COLOR, clr); ObjectSet(n, OBJPROP_BACK, false); ObjectSetText(n, mytext, size); return(n); }
Еще один полный пример:
#import "mt4gui.dll" int tbPutObject(int,string,int,int,int,int,string); int tbRemoveAll(int); int tbSetText(int,string,int,string); int tbSetBgColor(int,int); int tbSetTextColor(int,int); string tbGetText( int ); bool tbIsClicked( int ); int tbRemove(int); int tbEnable(int,int); #import #include <libtrade.mqh> #include <libvisual.mqh> // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // Login implementation demo // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= int btn1,btn2,edit1,edit2,l1,l2; int ticks; bool LoggedIn = false; string obj1=""; int init() { int hwnd=WindowHandle(Symbol(),Period()); tbRemoveAll(hwnd); ObjectsDeleteAll(); //void pxy(string mytext,color clr,int posx,int posy,int size) pxy("Please login",Yellow,250,50,19); pxy("Login :",White,250,100,17); pxy("Passwd:",White,250,140,17); l1=tbPutObject(hwnd,"text",350,100,250,30,"Username"); l2=tbPutObject(hwnd,"text",350,140,250,30,"Password"); btn1=tbPutObject(hwnd,"button",250,200,150,40,"Login"); btn2=tbPutObject(hwnd,"button",450,200,150,40,"Exit"); // set colors tbSetBgColor(btn1,Green); tbSetTextColor(btn1,White); tbSetBgColor(btn2,IndianRed); tbSetTextColor(btn2,White); tbSetText(l2,"xxxxxxxxxx",24,"Wingdings"); return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //| dont forget to remove objects on deinit() | //+------------------------------------------------------------------+ int deinit() { tbRemove(btn1);tbRemove(btn2); tbRemove(l1);tbRemove(l2); return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int hwnd=WindowHandle(Symbol(),Period()); ticks++; pReset(); if (MathMod(ticks,20)==19 && StringLen(obj1)>0) ObjectDelete(obj1); // If still not logged in we use this block if (!LoggedIn) { // exit button if (tbIsClicked(btn2)) { ObjectsDeleteAll(); tbRemoveAll(hwnd); Destroy("Authentification Failed"); return(1); } // login button if (tbIsClicked(btn1)) { if (tbGetText(l1)=="admin" && tbGetText(l2)=="pass") { PlaySound("ok.wav"); LoggedIn=true; tbRemoveAll(hwnd); ObjectsDeleteAll(); } else { PlaySound("alert2.wav"); obj1 = pxy("Authentification Failed",Red,250,20,12);} } return(1); } // From here we have the functions after login p("Admin has been autentificated successfully",Green); return(0); } // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= string pxy(string mytext,color clr,int posx,int posy,int size) { string n="pxy3txt"+posx+posy; ObjectCreate(n, OBJ_LABEL, 0, Time[lib_startbarno], lib_nextlinelevel); ObjectSet(n, OBJPROP_CORNER, 0); ObjectSet(n, OBJPROP_XDISTANCE, posx); ObjectSet(n, OBJPROP_YDISTANCE, posy); ObjectSet(n, OBJPROP_COLOR, clr); ObjectSet(n, OBJPROP_BACK, false); ObjectSetText(n, mytext, size); return(n); }
Как вы видите на моих скриншотах демо-версии работают. Эту версию mt4gui я только что выложил как версию 0.3, вы можете взять последнюю версию. В 0.1 вообще нет поддержки цветов. Вероятно, вы используете 0.1.
Чтобы удалить кнопки с экрана, вы должны использовать deinit()
//+------------------------------------------------------------------+ //| expert deinitialization function | //| dont forget to remove objects on deinit() | //+------------------------------------------------------------------+ int deinit() { tbRemove(btn1);tbRemove(btn2); tbRemove(l1);tbRemove(l2); return(0); }
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здесь я хочу представить новый бесплатный аддон для mt4 в качестве предварительного просмотра. В настоящее время я тестирую продукт под названием mt4gui. Этот продукт позволяет размещать кнопки, текстовые поля, поля со списками прямо на графике; вот скриншот превью, которое уже работает
http://fx1.net/wiki/uploads/img_7.png
Кнопки реагируют сразу после нажатия, не дожидаясь тика со стороны брокера. В ближайшие недели мы улучшим этот продукт, добавив больше функций. Почему я разместил это, чтобы получить идеи от сообщества о том, что необходимо. Конечно, не все может быть реализовано на самом деле, но я буду фильтровать интересные идеи здесь.
Вот пример очень простого кода, демонстрирующего использование: