Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 459

 
HUNTERGOOD:

Buon pomeriggio a tutti. Cari programmatori, per favore aiutatemi a inserire una linea con la possibilità di specificare un file audio, per ogni Alert3.Lv1;2;3, per attivare un suono diverso che voi specificate.

Buon pomeriggio a tutti. Cari programmatori, per favore aiutatemi a inserire una stringa con la possibilità di indicare un file audio per Alert3.Lv1;2;3 per attivare un suono diverso.

Buon pomeriggio a tutti. Cari programmatori, per favore aiutatemi a inserire una stringa con il file del suono per Alert3.Lv1;2;3 per attivare un suono diverso.

Comincia a fare, e riceverai aiuto.

Comincia a fare, e riceverai aiuto.

Comincia a fare e riceverai aiuto.

 

Aiuto, i pattini non scivolano.

Cercando di imparare a lavorare con i pannelli grafici e creare il mio.

Ho creato 2 rettangoli, 1 rettangolo principale, a cui dovrebbero essere orientati tutti gli oggetti del pannello quando lo si sposta.

Ho fatto una tale condizione in ChartEvent e ora quando muovo il rettangolo principale, il secondo si muove solo dopo 2-3 secondi, come risolverlo?
Ho anche provato CHARTEVENT_MOUSE_MOVE nella condizione, stesso effetto

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:

Aiuto, i pattini non scivolano.

Cercando di imparare a lavorare con i pannelli grafici e creare i miei.

Ho creato 2 rettangoli, 1 rettangolo principale, alle cui coordinate dovrebbero essere orientati tutti gli oggetti del pannello, quando lo si sposta.

Ho fatto una tale condizione in ChartEvent, e ora quando muovo il rettangolo principale, il secondo si muove solo dopo 2-3 secondi, come fare?
provato anche CHARTEVENT_MOUSE_MOVE nella condizione, stesso effetto

Dopo aver creato un oggetto e il suo spostamento ho bisogno di fare ChartRedraw()

 
Vladislav Andruschenko:

Dopo aver creato un oggetto e averlo spostato, dovete fare ChartRedraw()

Sì, così va meglio. E quindi è impossibile farlo scorrere senza problemi, giusto?

aggiornamento aggiunto condizione per ridisegnare solo se questo rettangolo principale è selezionato ed è ok ora, grazie per l'aiuto!)

 

Repost da un altro thread. Forse scuoterò qualcuno e mi farò aiutare:


<Gli esperti locali mi ricordano il mio compagno di classe (oh, quanto tempo fa era) - sapeva tutte le regole, tutte le formule, ma quando applicare le quali, non riusciva a pensare immediatamente, e passava quasi tutto, in modo che non ha mai tenuto il passo con il tempo assegnato. È lo stesso qui: sanno molto, ma non vedono la soluzione, lavorano solo per "pancia". All'istituto, ci hanno insegnato a risolvere un problema senza numeri e formule, e solo allora saprai chiaramente quali formule applicare. I nuovi arrivati in MKL4 non capiscono le sottigliezze della lingua, ed è qui che hanno bisogno di aiuto (non nel senso di "leggere un libro di testo"). Ma nessuno puòmostrarvi le insidie dell'apertura/chiusura delle posizioni. Forse non lo sanno? Così hanno lasciato perdere la mia domanda...>.

 
Saluti, aiuto per scrivere il prezzo corrente in un file.
 
lil_lil:
Saluti, aiuto per scrivere il prezzo corrente in un file.

Date un'occhiataqui.

 
Artyom Trishkin:

Iniziate a fare e riceverete aiuto.

Iniziate a fare e riceverete aiuto.

Comincia a fare, e sarai aiutato.

Apprezzo il tuo sarcasmo, ma non in senso buono. Cosa dovrei iniziare a fare? Se sapessi da dove cominciare, dove iniziare e dove finire, probabilmente non sarei interessato all'aiuto dei sitter più esperti di questo forum. Penso solo che una persona esperta in questo tipo di attività, cioè la programmazione, non sarebbe un problema per me mettere alcune stringhe in alcuni posti specifici, in modo da poter indicare un certo file sonoro nell'indicatore. E tu mi proponi di "iniziare", con quali basi dovrei iniziare a padroneggiare questa grande e imperscrutabile arte del coding, in modo che saprei dove correttamente devo mettere queste stesse stringhe? Ecco cosa intendo

 
HUNTERGOOD:

Ho apprezzato il tuo sarcasmo, ma non nel merito. Cosa dovrei iniziare a fare? Se sapessi da dove cominciare, dove iniziare e dove finire, probabilmente non avrei mostrato interesse nell'aiuto dei membri più esperti di questo forum. Penso solo che una persona esperta in questo tipo di attività, cioè la programmazione, non sarebbe un problema per me mettere alcune stringhe in alcuni posti specifici, in modo da poter indicare un certo file sonoro nell'indicatore. E tu mi proponi di "iniziare", con quali basi dovrei iniziare a padroneggiare questa grande e imperscrutabile arte del coding, in modo che saprei dove correttamente devo mettere queste stesse stringhe? Ecco cosa intendo

Gli indicatori non funzionano, solo allarme, solo 1 suono.
 
Alexey Viktorov:

Vederequi.

Grazie, i valori lì sono di un file e di una volta, ma il mio compito è distribuito nel tempo.

Registra il prezzo corrente e l'ora all'inizio di ogni giorno per 30 minuti, ogni 120 secondi.

Non sovrascrivere le voci precedenti.


Motivazione: