MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 459

 
HUNTERGOOD :

Herkese iyi günler. Sevgili programcılar, her Alert3.Lv1;2;3 için, belirttiğiniz farklı bir sesin tetiklenmesi için, lütfen göstergeye bir ses dosyası belirleme özelliğine sahip bir satır eklemeye yardımcı olun.

Herkese iyi günler. Sevgili programcılar, her Alert3.Lv1;2;3 için, belirttiğiniz farklı bir sesin tetiklenmesi için, lütfen göstergeye bir ses dosyası belirleme özelliğine sahip bir satır eklemeye yardımcı olun.

Herkese iyi günler. Sevgili programcılar, her Alert3.Lv1;2;3 için, belirttiğiniz farklı bir sesin tetiklenmesi için, lütfen göstergeye bir ses dosyası belirleme özelliğine sahip bir satır eklemeye yardımcı olun.

Başlayın ve size yardımcı olacaklar.

Başlayın ve size yardımcı olacaklar.

Başlayın ve size yardımcı olacaklar.

 

Yardım edin, paten kaymaz.

Grafik panellerle çalışmayı ve kendiminkini yaratmayı öğrenmeye çalışıyorum.

Panelin tüm nesnelerinin hareket ettirildiğinde yönlendirilmesi gereken koordinatları olan 1 ana olmak üzere 2 dikdörtgen oluşturdum.

ChartEvent'te böyle bir koşul yaptım ve şimdi ana dikdörtgeni hareket ettirdiğimde, arkasındaki ikincisi sadece 2-3 saniye sonra hareket ediyor, nasıl düzeltilir ??
ayrıca CHARTEVENT_MOUSE_MOVE denenmiş durumda, aynı etki

 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 :

Yardım edin, paten kaymaz.

Grafik panellerle çalışmayı ve kendiminkini yaratmayı öğrenmeye çalışıyorum.

Panelin tüm nesnelerinin hareket ettirildiğinde yönlendirilmesi gereken koordinatları olan 1 ana olmak üzere 2 dikdörtgen oluşturdum.

ChartEvent'te böyle bir koşul yapmıştım ve şimdi ana dikdörtgeni hareket ettirdiğimde, arkasındaki ikincisi sadece 2-3 saniye sonra hareket ediyor, nasıl yapılır?
ayrıca CHARTEVENT_MOUSE_MOVE denenmiş durumda, aynı etki

bir nesne oluşturup taşıdıktan sonra ChartRedraw () yapmanız gerekir.

 
Vladislav Andruschenko :

bir nesne oluşturup taşıdıktan sonra ChartRedraw () yapmanız gerekir.

Evet bu daha iyi. Ve anladığım kadarıyla bu düz pürüzsüz kayma imkansız mıydı?

upd, yalnızca bu ana dikdörtgen seçiliyse yeniden çizmek için bir koşul ekledi ve şimdi iyi, yardım için teşekkürler!)

 

Başka bir konudan tekrar yayınlayın. Belki birini sallar ve yardım alırım:


< Yerel uzmanlar bana masa komşumu hatırlatıyor (ah, ne kadar zaman önceydi) - tüm kuralları, tüm formülleri biliyordu, ancak hangisini uygulayacağını hemen bulamıyordu ve hemen hemen her şeyi tek seferde gözden geçirdi. sıra, çünkü ayrılan zamana asla uymadı. İşte burada: Çok şey biliyorlar ama soruna bir çözüm görmüyorlar, “bilimsel dürtme” yöntemini kullanarak çalışıyorlar. Enstitüde bize öğretildi - sorunu sayılar ve formüller olmadan çözün ve ancak o zaman hangi formülleri uygulayacağınızı açıkça bileceksiniz. MKL4'e yeni başlayanlar, dilin inceliklerini anlamazlar ve yardıma ihtiyaç duydukları yer burasıdır ("ders kitabını oku" anlamında değil). Evet, ancak pozisyonları açarken / kapatırken kimse tuzakları gösteremez . Belki bilmiyorlardır? Bu yüzden sorumu frenlediler...>

 
Selamlar güncel fiyatı bir dosyaya yazmama yardım edin.
 
lil_lil :
Selamlar güncel fiyatı bir dosyaya yazmama yardım edin.

Buraya bak.

 
Artyom Trishkin :

Başlayın ve size yardımcı olacaklar.

Başlayın ve size yardımcı olacaklar.

Başlayın ve size yardımcı olacaklar.

Alaycılığınızı takdir ettim ama gerçek değerinde değil. Ne yapmaya başlamalıyım? Nereden başlayacağımı, nereden başlayacağımı ve nerede bitireceğimi bilseydim, muhtemelen bu forumun daha deneyimli mahkumlarının yardımına ilgi göstermezdim. Sadece bu tür faaliyetlerde, yani programlamada usta olan bir kişinin, göstergede belirli bir ses dosyasını belirleyebilmeniz için belirli yerlere bazı satırlar yapıştırmanın çok zor olmayacağını düşünüyorum. Ve siz bana, bu büyük ve anlaşılmaz kodlama sanatında ustalaşmaya başlamak için hangi temel bilgilerle "başlamamı" teklif ediyorsunuz, böylece bu satırları doğru bir şekilde nereye yapıştırmam gerektiğini bilebileyim? Ben, işte bu...

 
HUNTERGOOD :

Alaycılığınızı takdir ettim ama gerçek değerinde değil. Ne yapmaya başlamalıyım? Nereden başlayacağımı, nereden başlayacağımı ve nerede bitireceğimi bilseydim, muhtemelen bu forumun daha deneyimli mahkumlarının yardımına ilgi göstermezdim. Sadece bu tür faaliyetlerde, yani programlamada usta olan bir kişinin, göstergede belirli bir ses dosyasını belirleyebilmeniz için belirli yerlere bazı satırlar yapıştırmanın çok zor olmayacağını düşünüyorum. Ve siz bana, bu büyük ve anlaşılmaz kodlama sanatında ustalaşmaya başlamak için hangi temel bilgilerle "başlamamı" teklif ediyorsunuz, böylece bu satırları doğru bir şekilde nereye yapıştırmam gerektiğini bilebileyim? Ben, işte bu...

Playsound göstergelerde çalışmıyor, sadece uyarı, sadece 1 ses.
 
Alexey Viktorov :

Buraya bak.

Teşekkürler dosyadan ve tek seferde değerler var ama benim işim zamanla uzuyor.

Her 120 saniyede bir 30 dakika boyunca her günün başında güncel fiyatı ve saati kaydedin

Önceki girişlerin üzerine yazmayın.


Neden: