Domande da un "manichino" - pagina 24

 
tol64:
Posso avere un semplice esempio?
mostrare il codice in quale linea viene emesso l'avvertimento. e quali tipi sta imprecando
 
sergeev:
mostra il codice su quale linea viene emesso l'avvertimento e quali tipi disapprova

void OnStart()
  {
//--- выведем всю информацию, доступную из функции AccountInfoInteger()
   printf("ACCOUNT_LOGIN =  %d",AccountInfoInteger(ACCOUNT_LOGIN));
   printf("ACCOUNT_LEVERAGE =  %d",AccountInfoInteger(ACCOUNT_LEVERAGE));
   bool thisAccountTradeAllowed=AccountInfoInteger(ACCOUNT_TRADE_ALLOWED);
   bool EATradeAllowed=AccountInfoInteger(ACCOUNT_TRADE_EXPERT);

   ENUM_ACCOUNT_TRADE_MODE tradeMode=AccountInfoInteger(ACCOUNT_TRADE_MODE);           // На этой строке: Строка 25 Столбец 40 и Столбец 78
   ENUM_ACCOUNT_STOPOUT_MODE stopOutMode=AccountInfoInteger(ACCOUNT_MARGIN_SO_MODE);   // И на этой     : Строка 26 Столбец 44 и Столбец 86

...
Evidenziato e commentato nel codice.
 
tol64:

Evidenziato e commentato nel codice.

   ENUM_ACCOUNT_TRADE_MODE tradeMode=(ENUM_ACCOUNT_TRADE_MODE)AccountInfoInteger(ACCOUNT_TRADE_MODE);
   ENUM_ACCOUNT_STOPOUT_MODE stopOutMode=(ENUM_ACCOUNT_STOPOUT_MODE)AccountInfoInteger(ACCOUNT_MARGIN_SO_MODE);

 
uncleVic:

Grazie. Vorrei anche chiedere informazioni sull'impostazione della modalità di livello di stop out. Posso sapere solo questa modalità come è impostata dal server di trading o posso cambiarla?
 
tol64:
Grazie. Vorrei anche chiedere informazioni sull'impostazione della modalità di livello di stop out. Posso scoprire questa modalità solo perché è impostata dal server di trading o posso cambiarla?
Stop Out è di sola lettura, non si può impostare. E tutto ciò con cui operano le funzioni AccountInfo...() è di sola lettura.
 
tol64:

Evidenziato e commentato nel codice.

Grazie, l'esempio è stato corretto. Ora il compilatore non emetterà un avviso su questo esempio.
 

Si scopre che ovunque si debba leggere certi dati/proprietà si dovrebbe applicare la variante che lo zioVic ha mostrato:https://www.mql5.com/ru/forum/3775/page24#comment_84143

Per esempio, se lo fate, cosa che sembra logica a prima vista (e familiare dalla transizione di mql4), allora il compilatore genererà un avvertimento:

   int val_x_dist;
   int val_y_dist;
   
   Create_Label(0,"INFO","//-------------------- INFORMATION --------------------//",ANCHOR_RIGHT_UPPER,CORNER_RIGHT_UPPER,font,font_sz,fnt_clr_hdr,10,20);
   
   val_x_dist = ObjectGetInteger(0,"INFO",OBJPROP_XDISTANCE,0);
   val_y_dist = ObjectGetInteger(0,"INFO",OBJPROP_YDISTANCE,0);

Per sbarazzarvi degli avvertimenti del compilatore, dovete fare o questo:

   int val_x_dist;
   int val_y_dist;
   
   Create_Label(0,"INFO","//-------------------- INFORMATION --------------------//",ANCHOR_RIGHT_UPPER,CORNER_RIGHT_UPPER,font,font_sz,fnt_clr_hdr,10,20);
   
   val_x_dist = (ENUM_OBJECT_PROPERTY_INTEGER)ObjectGetInteger(0,"INFO",OBJPROP_XDISTANCE,0);
   val_y_dist = (ENUM_OBJECT_PROPERTY_INTEGER)ObjectGetInteger(0,"INFO",OBJPROP_YDISTANCE,0);

O come ha dimostrato lo zioVic, cioè:

   Create_Label(0,"INFO","//-------------------- INFORMATION --------------------//",ANCHOR_RIGHT_UPPER,CORNER_RIGHT_UPPER,font,font_sz,fnt_clr_hdr,10,20);
   
   ENUM_OBJECT_PROPERTY_INTEGER val_x_dist = (ENUM_OBJECT_PROPERTY_INTEGER)ObjectGetInteger(0,"INFO",OBJPROP_XDISTANCE,0);
   ENUM_OBJECT_PROPERTY_INTEGER val_y_dist = (ENUM_OBJECT_PROPERTY_INTEGER)ObjectGetInteger(0,"INFO",OBJPROP_YDISTANCE,0);

Ho capito bene?

 
AUser:
Puoi dirmi come funziona il generatore di numeri casuali e se c'è una funzione per controllare il numero per i numeri pari/dispari? A proposito del generatore è auspicabile una spiegazione in un linguaggio comprensibile ai manichini))) L'aiuto non è compreso))

Ecco l'esempio più semplice di come scoprire cosa sta facendo una particolare funzione. Eseguite lo script e guardate il log.

void OnStart()
  {
   int x;
   
   x = MathRand();
   
   Print("x : ",x);
  }
 
#define Vrsn "0.01a"
#property version   Vrsn

ChartSaveTemplate(Chrt_Smbl_ID_Crrnt,Vrsn);

il modello è salvato come 0.tpl

#define Vrsn "001a"

Il modello è salvato come001a.tpl, che è effettivamente quello che vuoi ottenere.

Domanda: come faccio a rimuovere il punto prima?

probabilmente più precisamente: come trovo un carattere in una stringa?

upgr e un'altra confusione. Se c'è un punto in

#define Vrsn "0.01a"

c'è un punto, non solo taglia quello che c'è dopo, ma anche quello che è appiattito.

ChartSaveTemplate(Chrt_Smbl_ID_Crrnt,Vrsn+Smbl_Crrnt);
Se StringToInteger è attivato alla compilazione ...
 
Silent:

il modello è salvato come 0.tpl

Il modello è salvato come001a.tpl, che è effettivamente quello che vuoi ottenere.

Domanda: come faccio a rimuovere il punto prima?

upgr è probabilmente più preciso: come si fa a trovare un carattere in una stringa?

C'è anche un malinteso. Se in

c'è un punto, taglierà non solo quello che c'è dopo, ma anche quello che è appiattito

perché? se, presumibilmente, StringToInteger si attiva al momento della compilazione.

Tutto ciò che viene scritto su disco è necessariamente controllato per la spazzatura e la malizia.

Se si scrive un modello, il modello dovrebbe essere un file con estensione tpl, non importa cosa voleva l'utente. Questo è il motivo per cui il punto definito dall'utente nel nome è tagliato.