его можно и как Индикатор создать - проверил работает как Экспертом так и Индикатором
Да. А также работает и в виде скрипта.
Я уже задумался что не будь из него слепить. Интересная панелька с информацией, с которой можно брать значения
Каким образом её можно сделать динамической, чтобы подстраивалась под размер высоты графика с перестраиванием списка к новой высоте?
Каким образом её можно сделать динамической, чтобы подстраивалась под размер высоты графика с перестраиванием списка к новой высоте?
Я видел Ваш вопрос - мне не удалось это сделать. Пока только вариант - дождаться изменения размера панели после чего убивать и пересоздавать список.
Я видел Ваш вопрос - мне не удалось это сделать. Пока только вариант - дождаться изменения размера панели после чего убивать и пересоздавать список.
Вот с этим возникают проблемы.
Задача такая: добавлять в панель открытые позиции и удалять с неё закрытые.
Логика примерно: одна запись занимает 15рх, если имеется 50 позиций, им нужно 50*15=750рх.
Считаем новый размер для панели:
int heightChart = ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS); // ширина окна графика int heightСontent = PositionTotal()*15; int heightDialog = heightСontent; if(heightChart < heightСontent) heightDialog = heightChart; //-- // Здесь перерисовка высоты диалог-окна и содержимого в чём собственно и проблемы
Спасибо!
---
P.S. Данные в панели также должны обновляться, показывать текущий профит по каждой позиции, для этого можно использовать в таймере: ExtDialog.m_list_view.ItemUpdate(i,str);
Вот с этим возникают проблемы.
Задача такая: добавлять в панель открытые позиции и удалять с неё закрытые.
Логика примерно: одна запись занимает 15рх, если имеется 50 позиций, им нужно 50*15=750рх.
Считаем новый размер для панели:
Спасибо!
---
P.S. Данные в панели также должны обновляться, показывать текущий профит по каждой позиции, для этого можно использовать в таймере: ExtDialog.m_list_view.ItemUpdate(i,str);
В общем через наследование не вышло. Создал копию класса и добавил в него немного функционала.
Срабатывает на нажатие клавиши '5' (на цифровой клавиатуре справа).
В общем через наследование не вышло. Создал копию класса и добавил в него немного функционала.
Срабатывает на нажатие клавиши '5' (на цифровой клавиатуре справа).
Cпасибо, не совсем то, но направление уже есть!
Как-бы создать сразу в диалоговом окне, должно-же как-то получится?
Cпасибо, не совсем то, но направление уже есть!
Как-бы создать сразу в диалоговом окне, должно-же как-то получится?
Про какое диалоговое окно спрос?
Про какое диалоговое окно спрос?
Не корректно задал вопрос.
Вопрос, как сделать так, чтобы список подстраивался под размер окна, сейчас оно меняется, но список идёт на уменьшение.
В коде изменил размер списка:
//+------------------------------------------------------------------+ //| Create the "ListView" element | //+------------------------------------------------------------------+ bool CControlsDialog::CreateListView() { //--- coordinates int x1=0; int y1=0; int x2=ClientAreaWidth(); int y2=ClientAreaHeight(); //--- create if(!m_list_view.Create(m_chart_id,m_name+"ListView",m_subwin,x1,y1,x2,y2)) return(false); if(!Add(m_list_view)) return(false); //--- fill out with strings for(int i=0; i<16; i++) if(!m_list_view.AddItem("Item "+IntegerToString(i))) return(false); //--- succeed return(true); }
-------------
В код добавил:
void OnChartEvent(const int id, // event ID const long& lparam, // event parameter of the long type const double& dparam, // event parameter of the double type const string& sparam) // event parameter of the string type { ExtDialog.ChartEvent(id,lparam,dparam,sparam); //--- keypress if(id==CHARTEVENT_KEYDOWN) { switch((int)lparam) { case KEY_NUMPAD_5: Print("Pressed KEY_NUMPAD_5"); ExtDialog.Resize(); break; default: Print("Pressed unlisted key"); } } /*//--- left-clicking on a chart if(id==CHARTEVENT_CLICK) ExtDialog.Resize();*/ if(id==CHARTEVENT_CHART_CHANGE) { if(ExtDialog.Height()>40) // Если окно не свёрнуто { ExtDialog.Height((int)ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS)-50); // Изменим высоту диалог-окна ExtDialog.Resize(); } } }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
All information about the symbol 2:
Панель-утилита: вся информация о текущем символе (информация берётся из объекта класса CSymbolInfo). Панель на базе класса CDialog
Автор: Vladimir Karputov