помогите разобраться с простым кодом (панель и две кнопки)

 

Создал таки панель и две кнопки в ней (пока без функций)

При добавлении советника на график, одна кнопка появляется криво поверх панели. Как только я делаю клик на графике или попытаюсь захватить панель, эта кнопка исчезает или перемещается и в панели появляются обе мои кнопки в нужном положении (и панель готова к перемещению). Пытался и так и сяк редактировать параметры X/Y кнопок, что-то не помогает, кнопка или кнопки вообще выплывают из панели и двигаются по каким-то своим осям при перемещении панели. 

В настройках осей панели я выставил так, чтобы она появлялась в правой части экрана ближе к центру.

Уже в процессе переноса работы с панелью все в порядке, панель перемещается и кнопки за ней (чтобы кнопки следы не оставляли, это потом уже сделаю)

Как это исправить? что я там напутал с X/Y и прочим? Спасибо!

upd. Продублировал параметры из OnChartEvent в OnInit, теперь сразу панель с двумя кнопками появляется, но что-то же здесь все равно не так сделано? Код нужно подправить?

Если я пытаюсь убрать те же строки из OnChartEvent, то панель перемещается уже без кнопок), а они остаются на месте что ли. 

Также при добавлении команды Ordersend в onchartevent, попытка покупки идет даже если я нажал на панель, а не на кнопки... как это исправить?

int OnInit()
   {

//--- create application dialog
         RectLabelCreate(0,"RectLabel",0,0,0);
   
   
         ButtonCreate(0,"buttonbuy",0,0,0,0,0,0,"Buy","Tahoma",11,clrWhite,clrLimeGreen,clrNONE,false,false,false,true,0);
         ButtonCreate(0,"buttonsell",0,0,0,0,0,0,"Sell","Tahoma",11,clrWhite,clrRed,clrNONE,false,false,false,true,0);
   
         int x = (int) ObjectGetInteger(0,"RectLabel",OBJPROP_XDISTANCE);
         int y = (int) ObjectGetInteger(0,"RectLabel",OBJPROP_YDISTANCE);
   
         ObjectSetInteger(0,"buttonbuy",OBJPROP_XDISTANCE,x+5);
         ObjectSetInteger(0,"buttonbuy",OBJPROP_YDISTANCE,y+35);
   
         ObjectSetInteger(0,"buttonsell",OBJPROP_XDISTANCE,x+100);
         ObjectSetInteger(0,"buttonsell",OBJPROP_YDISTANCE,y+35);
   
return(INIT_SUCCEEDED);

//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {

//---
         int x = (int) ObjectGetInteger(0,"RectLabel",OBJPROP_XDISTANCE);
         int y = (int) ObjectGetInteger(0,"RectLabel",OBJPROP_YDISTANCE);
   
         ObjectSetInteger(0,"buttonbuy",OBJPROP_XDISTANCE,x+5);
         ObjectSetInteger(0,"buttonbuy",OBJPROP_YDISTANCE,y+35);
   
         ObjectSetInteger(0,"buttonsell",OBJPROP_XDISTANCE,x+100);
         ObjectSetInteger(0,"buttonsell",OBJPROP_YDISTANCE,y+35);

  }