• ВНИМАНИЕ! С 1-го октября 2020 года бонусы за общение будут начисляться только на счета типа Standard Promo MT5.
    ВСЕМ участникам промоакции "Amega ОБЩЕНИЕ 2.0" необходимо оставить новую заявку! Обсуждения в теме...

Панель "Дворник" - удаление стрелок и новостей в один клик в MT5

Programmer96

Участник
Регистрация
10 Дек 2018
Сообщения
237
Поблагодарили
9
Поинты
0.00
Пол
Муж.
Панель "Дворник" в МТ5 предназначена удаление стрелок сделок и трендовых линий их связывающих в штатном режиме довольно неудобно.

Удаление значков новостей с графика (или запрет их вывода) вообще не нашел. А они мне прилично мешают - в этом месте у меня расположен вывод информации по паре и счету.

Написал простенькую панель их двух кнопок позволяющую в один клик удалять то и другое.

удаление стрелок и новостей в один клик в MT5
удаление стрелок и новостей в один клик в MT5
удаление стрелок и новостей в один клик в MT5


Скачать панель "Дворник"
 

Вложения

Mr_Robot

Участник
Регистрация
14 Апр 2018
Сообщения
1,334
Поблагодарили
160
Поинты
0.00
Пол
Муж.
Проблема удаления всех этих мешающих штучек как-то обсуждалась. Решается средствами самого терминала:

В окне "Торговля" кликнуть на ордер правой кнопкой мыши. В контекстном меню убрать галочку с Автообновление и выбрать Удалить все сделки:



В этом случае удалятся стрелочки от сделок со всех графиков, не только по выбранной валюте.
Вот так удаляются метки новостей, навсегда:

Это здесь
Снять галочку с автообновления, а потом - "удалить все события"

 

Programmer96

Участник
Регистрация
10 Дек 2018
Сообщения
237
Поблагодарили
9
Поинты
0.00
Пол
Муж.
Решается средствами самого терминала:
Вот так удаляются метки новостей, навсегда:
Удаление стрелок "средствами терминала" крайне неудобное. В МТ4 это можно было сделать в 2 клика - приемлемо, а в МТ5 нужно исполнить "танец с бубном". Проще нарисовать кнопку и не заморачиваться.
А вот за подсказку по меткам новостей спасибо - сам искал, не нашел. Теперь знаю где запретить.

И, похоже, не я один такой - я эту панельку выложил в Маркете - скачивают в довольно приличном темпе ;)
 

AlexeyVik

Участник
Регистрация
22 Ноя 2018
Сообщения
267
Поблагодарили
22
Поинты
0.00
Пол
Муж.
Увы, информация от Николь слегка устарела: давно уж нет в МТ5 закладки "Календарь". Закладку убрали, а вывод значков на график забыли. Пользы от них мало, раздражают здорово - занимают строку, мешают просматривать вывод инфо-строки робота. При том что некоторые брокеры дают события с жуткой интенсивностью это прилично достает. Хорошо что решение простое - в советники добавляю кнопочку "DEL" убирающую значки сделок когда их накапливается слишком много, а события календаря живут всего лишь один тик, их автоматом убирает строка
Код:
ObjectsDeleteAll(0,"20");
Когда убрали? Или у меня у одного забыли убрать?
 

Вложения

AlexeyVik

Участник
Регистрация
22 Ноя 2018
Сообщения
267
Поблагодарили
22
Поинты
0.00
Пол
Муж.
В качестве "алверды":



"Новости" вижу, "Почту" вижу, "Компанию" тоже вижу, "Календарь", который между ними должен быть в упор не вижу. Хоть застрелись.
У нас с вами явно разный вывод терминала. Данные моей версии:
Version: 5.0 build 1940
02 Nov. 2018
Раньше я не смотрел. Обновляю терминал регулярно, но думаю не из-за этого. У меня сейчас build 1961
Попробуй открыть демку на MetaQuotes-Demo отменить показ новостей и опять переключиться на AMEGA
 

Programmer96

Участник
Регистрация
10 Дек 2018
Сообщения
237
Поблагодарили
9
Поинты
0.00
Пол
Муж.
Раньше я не смотрел. Обновляю терминал регулярно, но думаю не из-за этого. У меня сейчас build 1961
Попробуй открыть демку на MetaQuotes-Demo отменить показ новостей и опять переключиться на AMEGA
Я ставил терминал совсем недавно - перед получением бонуса 20 баксов с подачи МОФТ, загружал софт терминала по ссылке от Амега, странно что у меня устаревшая сборка... и обновления она не просит.
Что касается поиска вкладки "Календарь" чтобы с нее отменить новости, то скажу так: Оно мне нада? Не имеет смысла. Я дописал в сов всего лишь одну короткую строку, которая по первому тику сама все чистит под ноль. Значки сделок удаляю кнопкой - они какое-то время нужны. А кто сам писать не умеет, тот может моего дворника скачать ;)
 
Последнее редактирование:

AlexeyVik

Участник
Регистрация
22 Ноя 2018
Сообщения
267
Поблагодарили
22
Поинты
0.00
Пол
Муж.
Я ставил терминал совсем недавно - перед получением бонуса 20 баксов с подачи МОФТ, загружал софт терминала по ссылке от Амега, странно что у меня устаревшая сборка... и обновления она не просит.
Что касается поиска вкладки "Календарь" чтобы с нее отменить новости, то скажу так: Оно мне нада? Не имеет смысла. Я дописал в сов всего лишь одну короткую строку, которая по первому тику сама все чистит под ноль. Значки сделок удаляю кнопкой - они какое-то время нужны. А кто сам писать не умеет, тот может моего дворника скачать ;)
Хотел я весь код посмотреть, да не судьба. Клик по cleaner.zip отвечает что это несуществующий файл. Ну, да ладно. А как быть если на график надо поставить ещё торгующий советник? Или то что ты сделал вовсе не советник?
Получить обновления можно так.
 

Вложения

Programmer96

Участник
Регистрация
10 Дек 2018
Сообщения
237
Поблагодарили
9
Поинты
0.00
Пол
Муж.
Хотел я весь код посмотреть, да не судьба. Клик по cleaner.zip отвечает что это несуществующий файл. Ну, да ладно. А как быть если на график надо поставить ещё торгующий советник? Или то что ты сделал вовсе не советник?
Получить обновления можно так.
С прикрепленным файлом сейчас разберусь - очень даже может быть, вставка картинок и файлов в этой версии форума ну очень хр....я - ты это и сам знаешь. Все делается не так как мы привыкли делать. Я бы сказал "через ..опу". Очень неудобно и напряжно.

Само собой что это не советник. "Дворник" сделан в оболочке индикатора, установке советника на график аж никак не мешает.
 

Programmer96

Участник
Регистрация
10 Дек 2018
Сообщения
237
Поблагодарили
9
Поинты
0.00
Пол
Муж.
Файл "Дворника" в заглавном посте вложен криво, скачивайте здесь.

Скачать файл панели "Дворник" cleaner.zip
или с Маркета https://www.mql5.com/ru/market/product/33526
Проверил - здесь вложено правильно.

Панель написана в оболочке индикатора, установке на график советников не мешает.
 

Вложения

AlexeyVik

Участник
Регистрация
22 Ноя 2018
Сообщения
267
Поблагодарили
22
Поинты
0.00
Пол
Муж.
Файл "Дворника" в заглавном посте вложен криво, скачивайте здесь.

Скачать файл панели "Дворник" cleaner.zip
или с Маркета https://www.mql5.com/ru/market/product/33526
Проверил - здесь вложено правильно.

Панель написана в оболочке индикатора, установке на график советников не мешает.
А код секретный?
 

Programmer96

Участник
Регистрация
10 Дек 2018
Сообщения
237
Поблагодарили
9
Поинты
0.00
Пол
Муж.
А код секретный?
Этот нет. Он примитивный. Это мои первые шаги в МТ5, потом начал адаптировать (с доработкой) к МТ5 универсальный сов из МТ4. Вот это не открою.
А "Дворника" даю:

Код:
#property copyright "1"
#property link      "1"
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1

//---------------------
input string Prefix_1    ="auto";
input string Prefix_2    ="20";

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit() {
//--- indicator buffers mapping
Comment("");
   ChartSetInteger(0,CHART_SHOW_GRID,0,0); ChartSetInteger(0,CHART_COLOR_CHART_UP,White);ChartSetInteger(0,CHART_MODE,1);ChartSetInteger(0,CHART_SHOW_OHLC,0,0);
   ChartSetInteger(0,CHART_COLOR_CANDLE_BULL,White);ChartSetInteger(0,CHART_COLOR_CANDLE_BEAR,LightSeaGreen);
   ChartSetInteger(0,CHART_SCALE,2); ChartSetInteger(0,CHART_SHIFT,true);

   zButton("Cleaner1"  ,120,2,50,15,"Delete 1",8,false,0);   
   zButton("Cleaner2"  ,172,2,50,15,"Delete 2",8,false,0);   

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
void OnDeinit(const int reason) {
//---
   ObjectDelete(0,"Cleaner1");  ObjectDelete(0,"Cleaner2");  
 } //-- OnDeinit
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[]) {
//---

//--- return value of prev_calculated for next call
   return(rates_total);
 } //--
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) {
//---
//---------------- D_Cleaner ---------------------
   if(ObjectGetInteger(0,"Cleaner1",OBJPROP_STATE)==true) {
      ObjectsDeleteAll(0,Prefix_1);
         ObjectSetInteger(0,"Cleaner1",OBJPROP_STATE,false);
   } //-- if(ObjectGet("D_Cleaner"
   if(ObjectGetInteger(0,"Cleaner2",OBJPROP_STATE)==true) {
      ObjectsDeleteAll(0,Prefix_2);
         ObjectSetInteger(0,"Cleaner2",OBJPROP_STATE,false);
   } //-- if(ObjectGet("D_Cleaner"

//--- return value of prev_calculated for next call
 } //-- OnChartEvent

//---
//+------------------------------------------------------------------+

//================================================== zButton ==============================================
void zButton(string name="",int Hdist=0,int Vdist=0,int H=0,int V=0,string text="",int FontSize=8,bool status=0,int corn=CORNER_RIGHT_UPPER) {
      ObjectCreate(0,name,OBJ_BUTTON,0,0,0);
      ObjectSetInteger(0,name,OBJPROP_XDISTANCE,Hdist);    
      ObjectSetInteger(0,name,OBJPROP_YDISTANCE,Vdist);  
      ObjectSetInteger(0,name,OBJPROP_XSIZE,H);     
      ObjectSetInteger(0,name,OBJPROP_YSIZE,V);    
      ObjectSetInteger(0,name,OBJPROP_CORNER,corn);
      ObjectSetString (0,name,OBJPROP_TEXT,text);
      ObjectSetString (0,name,OBJPROP_FONT,"Arial");  
      ObjectSetInteger(0,name,OBJPROP_FONTSIZE,FontSize);
      ObjectSetInteger(0,name,OBJPROP_COLOR,clrBlack);  
      ObjectSetInteger(0,name,OBJPROP_BGCOLOR,clrSilver);
      ObjectSetInteger(0,name,OBJPROP_STATE,status);     
      ObjectSetInteger(0,name,OBJPROP_ZORDER,10);
 } //-- zButton
 

AlexeyVik

Участник
Регистрация
22 Ноя 2018
Сообщения
267
Поблагодарили
22
Поинты
0.00
Пол
Муж.
Этот нет. Он примитивный. Это мои первые шаги в МТ5, потом начал адаптировать (с доработкой) к МТ5 универсальный сов из МТ4. Вот это не открою.
А "Дворника" даю:
А сколько предупреждений при компиляции такого кода?
 

Nataly

Супер модератор
Регистрация
13 Апр 2018
Сообщения
2,344
Поблагодарили
985
Поинты
17.70
Пол
Жен.
Файл загружен в первый пост!
 

AlexeyVik

Участник
Регистрация
22 Ноя 2018
Сообщения
267
Поблагодарили
22
Поинты
0.00
Пол
Муж.
У меня ноль, смотри картинку, а у тебя?
Я и не пытался компилировать. Скачать хотел для посмотреть код.
Странно, что нет предупреждений. ChartSetInteger возвращает bool значение, соответственно должен быть контроль результата выполнения, чего в твоём коде нету.
 

Programmer96

Участник
Регистрация
10 Дек 2018
Сообщения
237
Поблагодарили
9
Поинты
0.00
Пол
Муж.
Я и не пытался компилировать. Скачать хотел для посмотреть код.
Странно, что нет предупреждений. ChartSetInteger возвращает bool значение, соответственно должен быть контроль результата выполнения, чего в твоём коде нету.
В этом случае совсем не обязательно. Как в МТ5, так и в МТ5. Собственно эта часть кода тупо скопирована из МТ4 (терпеть не могу настройки графика по умолчанию. Особенно идиотскую сетку). Только не которые bool-функции требуют проверки. Там где требуют, там и проверяю. Если проверка формальная - пишу if( ![выражение] ), там где проверка имеет значение пишу bool ans= [выражение];
 

AlexeyVik

Участник
Регистрация
22 Ноя 2018
Сообщения
267
Поблагодарили
22
Поинты
0.00
Пол
Муж.
В этом случае совсем не обязательно. Как в МТ5, так и в МТ5. Собственно эта часть кода тупо скопирована из МТ4 (терпеть не могу настройки графика по умолчанию. Особенно идиотскую сетку). Только не которые bool-функции требуют проверки. Там где требуют, там и проверяю. Если проверка формальная - пишу if( ![выражение] ), там где проверка имеет значение пишу bool ans= [выражение];
Не обязательно, но желательно не оставлять бесконтрольно. В любой момент MQ могут внести изменения и не исключены проблемы. Была одна проблема в МТ4 когда список закрытых ордеров зависел от сортировки в закладке "История", тогда многие умники негодовали... И ещё знаю одного, который любил в имена переменных ставить точку. Нарвался, правил все свои коды, теперь этого не делает.
 
Сверху