Первый раз создавала тему. Надо было сначала в поиск по форуму, есть решение от Vitalii Ananev
Если кому-то нужно, вот оно, все работает:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Почему съезжает панель при обновлении настроек эксперта?
Vitalii Ananev, 2016.03.09 07:26
Есть способ решить эту проблему.
class CTradePanel : public CAppDialog { private: public: CTradePanel(); ~CTradePanel(); bool isCreate; //вводите переменную ..... }
В методе Create инициализируете ее
bool CTradePanel::Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2) { if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2)) return(false); isCreate = true; return(true); }
И в конструкторе и деструкторе
CTradePanel::CTradePanel() { isCreate = false; } CTradePanel::~CTradePanel() { isCreate = false; }
В самом эксперте или индикаторе в функции OnInit()
if (!TradeDialog.isCreate) { if(!TradeDialog.Create(0,"Trade panel",0,10,10,250,150)) return(INIT_FAILED); if(!TradeDialog.Run()) return(INIT_FAILED); }
void OnDeinit(const int reason) { //--- destroy application dialog if ((reason != REASON_PARAMETERS) && (reason !=REASON_CHARTCHANGE) && (reason !=REASON_ACCOUNT)) TradeDialog.Destroy(reason); }
Ах как жаль что я магический шар отдал во временное пользование на неделю... А то мог-бы и без кода подсказать...
Гадаете на хрустальном шаре в свободное от основной работы в аншлаге время?)
Первый раз создавала тему. Надо было сначала в поиск по форуму, есть решение от Vitalii Ananev
Если кому-то нужно, вот оно, все работает:
Это тоже не всегда срабатывает как надо. Нужно использовать указатели.
CPanelDialog *ExtDialog; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- create application dialog ExtDialog = new CPanelDialog(); ............ } void OnDeinit(const int reason) { //--- destroy application dialog ExtDialog.Destroy(reason); if (ExtDialog!=NULL) delete(ExtDialog); }
Это тоже не всегда срабатывает как надо. Нужно использовать указатели.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Панель нормально перетаскивается по графику мышкой, все работает, но на второй смене таймфрейма кнопки уезжают от фона, если менять дальше - окно графика закрывается.
Подскажите, пожалуйста, в чем может быть дело?
MT4