Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 459

 
HUNTERGOOD:

Всем добрый день. Уважаемые программисты, помогите пожалуйста вставить в индикатор строку с возможностью указания звукового файла, для каждого Alert3.Lv1;2;3, чтобы срабатывал разный звук, который укажешь.

Всем добрый день. Уважаемые программисты, помогите пожалуйста вставить в индикатор строку с возможностью указания звукового файла, для каждого Alert3.Lv1;2;3, чтобы срабатывал разный звук, который укажешь.

Всем добрый день. Уважаемые программисты, помогите пожалуйста вставить в индикатор строку с возможностью указания звукового файла, для каждого Alert3.Lv1;2;3, чтобы срабатывал разный звук, который укажешь. 

Начинайте делать, и вам помогут.

Начинайте делать, и вам помогут.

Начинайте делать, и вам помогут.

 

Помогите, коньки не скользят.

Пытаюсь научиться работать с графическими панелями и создать свою.

Я создал 2 прямоугольника, 1 главный, на координаты которого должны ориентироваться все объекты панели, при ее перемещении.

В ChartEvent сделал такое условие, и теперь когда я перемещаю главный прямоугольник второй за ним перемещается только спустя 2-3 секунды, как это исправить??
также в условии пробовал CHARTEVENT_MOUSE_MOVE, то же эффект

input string ds;//Параметры заднего фона панели
input int x_offset_anchor=100;
input int y_offset_anchor=100;
int anchor_width=150;
int anchor_height=20;
int back_height=100;
input color anchor_color=clrBlue, back_color=clrAquamarine, clrBorder=clrAliceBlue;
input string ds2;//
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   RectLabelCreate(0,"Back_panel_anchor_point",0,x_offset_anchor,y_offset_anchor,anchor_width,anchor_height,anchor_color,BORDER_SUNKEN,CORNER_LEFT_UPPER,clrBorder,STYLE_SOLID,2,false,true,true,0);
   RectLabelCreate(0,"Back_panel",0,x_offset_anchor,y_offset_anchor+anchor_height,anchor_width,back_height,back_color,BORDER_SUNKEN,CORNER_LEFT_UPPER,clrBorder,STYLE_SOLID,1,false,false,true,0);
   
   
   
   ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,true);
//---
   return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason){
   ObjectsDeleteAll(0,-1,-1);
}  
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   
//--- 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)
  {
   if(id == CHARTEVENT_OBJECT_DRAG && sparam == "Back_panel_anchor_point")
      {
         ObjectDelete(0,"Back_panel");
         RectLabelCreate(0,"Back_panel",0,ObjectGetInteger(0,"Back_panel_anchor_point", OBJPROP_XDISTANCE),ObjectGetInteger(0,"Back_panel_anchor_point", OBJPROP_YDISTANCE)+anchor_height,anchor_width,back_height,back_color,BORDER_SUNKEN,CORNER_LEFT_UPPER,clrBorder,STYLE_SOLID,1,false,false,true,0);
      }   
  }
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+ 
//| Создает прямоугольную метку                                      | 
//+------------------------------------------------------------------+ 
bool RectLabelCreate(const long             chart_ID=0,               // ID графика 
                     const string           name="RectLabel",         // имя метки 
                     const int              sub_window=0,             // номер подокна 
                     const int              x=0,                      // координата по оси X 
                     const int              y=0,                      // координата по оси Y 
                     const int              width=50,                 // ширина 
                     const int              height=18,                // высота 
                     const color            back_clr=C'236,233,216',  // цвет фона 
                     const ENUM_BORDER_TYPE border=BORDER_SUNKEN,     // тип границы 
                     const ENUM_BASE_CORNER corner=CORNER_LEFT_UPPER, // угол графика для привязки 
                     const color            clr=clrRed,               // цвет плоской границы (Flat) 
                     const ENUM_LINE_STYLE  style=STYLE_SOLID,        // стиль плоской границы 
                     const int              line_width=1,             // толщина плоской границы 
                     const bool             back=false,               // на заднем плане 
                     const bool             selection=false,          // выделить для перемещений 
                     const bool             hidden=true,              // скрыт в списке объектов 
                     const long             z_order=0)                // приоритет на нажатие мышью 
  { 
//--- сбросим значение ошибки 
   ResetLastError(); 
//--- создадим прямоугольную метку 
   if(!ObjectCreate(chart_ID,name,OBJ_RECTANGLE_LABEL,sub_window,0,0)) 
     { 
      Print(__FUNCTION__, 
            ": не удалось создать прямоугольную метку! Код ошибки = ",GetLastError()); 
      return(false); 
     } 
//--- установим координаты метки 
   ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x); 
   ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y); 
//--- установим размеры метки 
   ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width); 
   ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height); 
//--- установим цвет фона 
   ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr); 
//--- установим тип границы 
   ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_TYPE,border); 
//--- установим угол графика, относительно которого будут определяться координаты точки 
   ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner); 
//--- установим цвет плоской рамки (в режиме Flat) 
   ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr); 
//--- установим стиль линии плоской рамки 
   ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style); 
//--- установим толщину плоской границы 
   ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,line_width); 
//--- отобразим на переднем (false) или заднем (true) плане 
   ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back); 
//--- включим (true) или отключим (false) режим перемещения метки мышью 
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection); 
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection); 
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов 
   ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden); 
//--- установим приоритет на получение события нажатия мыши на графике 
   ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order); 
//--- успешное выполнение 
   return(true); 
  } 
 
Roman Sharanov:

Помогите, коньки не скользят.

Пытаюсь научиться работать с графическими панелями и создать свою.

Я создал 2 прямоугольника, 1 главный, на координаты которого должны ориентироваться все объекты панели, при ее перемещении.

В ChartEvent сделал такое условие, и теперь когда я перемещаю главный прямоугольник второй за ним перемещается только спустя 2-3 секунды, как это сделать?
также в условии пробовал CHARTEVENT_MOUSE_MOVE, то же эффект

после создания объекта и перемещения надо делать ChartRedraw()

 
Vladislav Andruschenko:

после создания объекта и перемещения надо делать ChartRedraw()

Да, уже лучше. А чтобы прям плавное скольжение было невозможно я так понимаю?

upd добавил условие на перерисовку только если выделен этот главный прямоугольник и теперь хорошо, благодарю за помощь!)

 

Перепост с другой ветки. Может встряхну кого, и получу помощь:


<Местные специалисты напоминают мне моего соседа по парте (ох, как давно это было) - он знал все правила, все формулы, но когда какую применить, сразу сообразить не мог, и перебирал чуть ли не все подряд, из-за чего никогда на укладывался в отведенное время. Так и здесь: знают много, а решения проблемы не видят, работают методом "научного тыка". В институте нас учили - решайте проблему без цифр и формул, и только потом вы четко будете знать, какие формулы применить. Новички в МКЛ4 не понимают тонкостей языка, и именно в этом им нужна помощь (только не в смысле "читай учебник"). Да только показать подводные камни при открытии/закрытии позиций никто не может. Может сами не знают? Поэтому и спустили мой вопрос на тормозах...>

 
Приветствую, помогите записать  в файл текущую цену.
 
lil_lil:
Приветствую, помогите записать  в файл текущую цену.

Здесь посмотри.

 
Artyom Trishkin:

Начинайте делать, и вам помогут.

Начинайте делать, и вам помогут.

Начинайте делать, и вам помогут.

Я оценил ваш сарказм, только не по достоинству. Что я должен начать делать? Если бы я знал, с чего начать, откуда начать и куда кончить, я бы наверно не проявлял интереса к помощи со стороны более опытных сидельцев этого форума. Просто я думаю человеку разбирающемуся в данном виде деятельности, то есть в программировании, не составило бы великого труда воткнуть какие-то там строчки, в какие-то там определенные места, чтобы можно было в индикаторе указать определенный звуковой файл. А вы мне предлагаете "начать",  с каких азов мне нужно начать осваивать это великое и непостижимое искусство кодинга, что бы я знал куда правильно мне нужно воткнуть эти самые строчки?  Я, вот о чем....

 
HUNTERGOOD:

Я оценил ваш сарказм, только не по достоинству. Что я должен начать делать? Если бы я знал, с чего начать, откуда начать и куда кончить, я бы наверно не проявлял интереса к помощи со стороны более опытных сидельцев этого форума. Просто я думаю человеку разбирающемуся в данном виде деятельности, то есть в программировании, не составило бы великого труда воткнуть какие-то там строчки, в какие-то там определенные места, чтобы можно было в индикаторе указать определенный звуковой файл. А вы мне предлагаете "начать",  с каких азов мне нужно начать осваивать это великое и непостижимое искусство кодинга, что бы я знал куда правильно мне нужно воткнуть эти самые строчки?  Я, вот о чем....

В индикаторах не работает playsound,  только alert,  только 1 звук. 
 
Alexey Viktorov:

Здесь посмотри.

Спасибо, там значения из файла и одним разом а у меня задача растянута по времени.

Записывать текущую цену и время в начале каждого дня в течение 30 минут, каждые 120 секунд 

Предыдущие записи не затирать. 


Причина обращения: