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

 
Seric29:

In generale, poiché Artyom non risponde a nulla, e l'uomo sopra ha dato la risposta che le funzioni lavorano con strutture che devono essere conosciute e quindi devono essere dichiarate globalmente, concludiamo che la struttura deve essere dichiarata globalmente.

Per sua natura, una funzione che lavora con una struttura può accettare solo le stesse strutture statiche. Significa che non possiamo dichiarare una struttura localmente in modo che abbia un ambito limitato e passarla in una funzione.

Non fate riferimento a me quando non capite quello che ho detto. Leggi attentamente quello che ha detto Artem.

Nella sua fretta, ha fatto alcune imprecisioni nel codice. Questo non significa che stesse parlando in modo scorretto. Una struttura è un tipo di dati personalizzato ed è definita nell' ambito globale. Una variabile di tipo utente può essere dichiarata ovunque. E ci può essere un numero qualsiasi di tali variabili dichiarate.
 
Artyom Trishkin:
Le statistiche non cambieranno da questo.

A proposito, non solo non mi mostra l'1 di notte o le 11 di sera, mi mostra questo.


Il lavoro tecnico.

Progresso

Approvazione del TOR
Demo
Trasmissione del lavoro e del pagamento


Tutte queste caselle di controllo sono cliccate. dice che tra una settimana il pagamento andrà via automaticamente. Solo che solo il file demo è stato ricevuto e c'è un limitatore di data che permette di lavorare solo l'anno scorso. Immagino che si sia annoiato e ora aspetterà una settimana per cambiare automaticamente il file di pagamento?


È già successo.


Il cliente Zlaya_budka ha confermato il passo"Demo
2020.01.29 21:47

Trasferimento del lavoro e pagamento

Il cliente ha accettato la demo, ora lo sviluppatore deve consegnare il risultato finale.

Dopo l'accettazione del lavoro, il pagamento verrà automaticamente dal conto del cliente (meno una commissione). Se il Cliente non risponde al lavoro presentato entro una settimana, l'Ordine sarà automaticamente considerato completato.

2020.01.29 21:47

Developer=========conferma il passo"Trasferimento di lavoro e pagamento"


Cosa significa questo? già avuto una bella da pipal dove il saldo di debito e parola sono stati scambiati, già stato in attesa di 3 settimane per servicedesk con il pagamento. ora questa gioia cosa significa?

Zlaya_budka
Zlaya_budka
  • www.mql5.com
Профиль трейдера
 
Alexey Viktorov:

Non fate riferimento a me quando non sapete di cosa sto parlando. Leggete attentamente quello che ha detto Artem.

Nella sua fretta, ha fatto alcune imprecisioni nel codice. Non significa che abbia parlato male. Una struttura è un tipo di dati personalizzato ed è definita nell' ambito globale. Una variabile di tipo utente può essere dichiarata ovunque. E ci può essere un numero qualsiasi di tali variabili dichiarate.

Bene, sto parlando esattamente del mio caso ed esattamente della struttura, è chiaro che è anche un tipo di variabile personalizzata, ma in particolare mi interessa il livello locale. Forse si potrebbe fare attraverso una classe. In linea di principio, si può dichiarare un tipo privato attraverso una classe e basta, ma non lo capisco troppo bene.

 
Colleghi - potete dirmi se l'init parte ad ogni passaggio del tester?
 
Seric29:

Beh, sto parlando esattamente del mio caso ed esattamente della struttura ed esattamente così, è chiaro che è anche un tipo di variabile personalizzata ma in particolare mi interessa il livello locale. Forse si potrebbe fare attraverso una classe. In linea di principio, si può dichiarare un tipo privato attraverso una classe, ma non lo capisco troppo bene.

Definite la vostra struttura a livello globale - l'intero programma deve conoscerla - è un nuovo tipo di variabili che avete creato.

E potete definire diverse variabili con il tipo di questa struttura in uno qualsiasi dei livelli locali - solo in essi (i livelli locali) saranno visibili le variabili create nel loro ambito.

 

Ciao a tutti!

Aiutami a collegare

extern   ENUM_BASE_CORNER  InpCorner      =  CORNER_LEFT_UPPER;   // Угол привязки индикатора

a questo oggetto

//--- Clicking on the fifth rectangle
   if(id==CHARTEVENT_OBJECT_CLICK) 
     {
      string clickedChartObject=sparam;
      if(clickedChartObject==obj_name[5]) 
        {
         string name="name_"+IntegerToString(MathRand()+100,0,' ');

         y=100;x=5;
         ChartXYToTimePrice(0,x,y,window,dt_1,price_1);
         ChartXYToTimePrice(0,x+250,y,window,dt_2,price_2);
         ChartXYToTimePrice(0,x,y+20,window,dt_3,price_3);

         ChannelCreate(0,name,0,dt_1,price_1,dt_2,price_2,dt_3,price_3,1,clrRed,STYLE_SOLID,1,InpBackRect,true,false,false,InpHidden_OBJ,0);
        }
     }

bool

//+------------------------------------------------------------------+
//| Create an equidistant channel by the given coordinates           |
//+------------------------------------------------------------------+
bool ChannelCreate(const long             chart_ID=0,                   // chart's ID
                   const string           name="Channel",               // channel name
                   const int              sub_window=0,                 // subwindow index  
                   datetime               time1=0,                      // first point time
                   double                 price1=0,                     // first point price
                   datetime               time2=0,                      // second point time
                   double                 price2=0,                     // second point price
                   datetime               time3=0,                      // third point time
                   double                 price3=0,                     // third point price
                   const ENUM_BASE_CORNER corner = CORNER_RIGHT_UPPER,  // the angle of the graph for the binding
                   const color            clr=clrRed,                   // channel color
                   const ENUM_LINE_STYLE  style=STYLE_SOLID,            // style of channel lines
                   const int              width=1,                      // width of channel lines
                   const bool             back=false,                   // in the background
                   const bool             selection=true,               // highlight to move
                   const bool             ray_left = false,             // extend the line to the left
                   const bool             ray_right=false,              // channel's continuation to the right
                   const bool             hidden=true,                  // hidden in the object list
                   const long             z_order=0)                    // priority for mouse click
  {
//--- reset the error value
   ResetLastError();
//--- create a channel by the given coordinates
   if(!ObjectCreate(chart_ID,name,OBJ_CHANNEL,sub_window,time1,price1,time2,price2,time3,price3))
     {
      Print(__FUNCTION__,
            ": failed to create an equidistant channel! Error code = ",GetLastError());
      return(false);
     }
   ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
   ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
   ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
   ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
   ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
   ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
   ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- 
   return(true);
  }
//+------------------------------------------------------------------+
//| Delete the channel                                               |
//+------------------------------------------------------------------+
bool ChannelDelete(const long   chart_ID=0,     // chart's ID
                   const string name="Channel") // channel name
  {
//--- reset the error value
   ResetLastError();
//--- delete the channel
   if(!ObjectDelete(chart_ID,name))
     {
      Print(__FUNCTION__,
            ": failed to delete the channel! Error code = ",GetLastError());
      return(false);
     }
//---
   return(true);
  }
//---
 

Ho capito che ChartXYToTimePrice calcola anche le coordinate dall'angolo in alto a sinistra per default.

Come potrebbe ChartXYToTimePrice ricalcolare dall'angolo che ho specificato?

 
MakarFX:

Ho capito che ChartXYToTimePrice calcola anche le coordinate dall'angolo in alto a sinistra per default.

Come verrebbe ricalcolato ChartXYToTimePrice dall'angolo che ho specificato?

Si può solo cambiare la mente di qualcuno che ha qualcosa con cui decidere. E se "esso" esegue solo le impostazioni di qualcun altro, allora tutto il dialogo nel tentativo di convincervi di qualcosa è solo una perdita di tempo)).

Non capisco bene il compito, ma fate attenzione non solo all'angolo di legame ENUM_BASE_CORNER, ma anche al punto di legame ENUM_ANCHOR_POINT

 

Alexey Viktorov:

Non capisco bene il compito

l'indicatore alla chiamata crea un oggetto (OBJ_CHANNEL) nell'angolo superiore sinistro

come impostare la condizione per creare un oggetto nell'altro angolo.

 
MakarFX:

l'indicatore alla chiamata crea un oggetto (OBJ_CHANNEL) nell'angolo superiore sinistro

come impostare la condizione per creare un oggetto nell'altro angolo.

Leggere attentamente il manuale. OBJ_CHANNEL non ha niente a che fare con l'angolo.

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Способы привязки объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Способы привязки объектов
  • www.mql5.com
Графические объекты Text, Label, Bitmap и Bitmap Label (OBJ_TEXT, OBJ_LABEL, OBJ_BITMAP и OBJ_BITMAP_LABEL) могут иметь один из 9 различных способов привязки своих координат, задаваемых свойством OBJPROP_ANCHOR. – объекты имеет ширину и высоту. Если указано "только для чтения", то это означает, что значения ширины и высоты...
Motivazione: