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

 

A proposito di cubi!

Puoi dirmi come cancellare un "cubo" non necessario?

 
im-zvv:

A proposito di cubi!

Potete dirmi per favore come cancellare un "cubo" non necessario?

Per fare questo, è necessario sapere in quale posizione si trova questo "cubo", quanti byte occupa, riscrivere un puntatore di file lì e scrivere un nuovo valore in quel posto.

Di conseguenza, se le stringhe hanno lunghezze diverse, semplicemente non è realistico. Non sarà possibile calcolare quanti byte al "cubo" desiderato.

 
Alexey Viktorov:

Per farlo, bisogna sapere in quale posizione si trova questo "cubo" e quanti byte occupa, quindi avvolgere il puntatore del file lì e scrivere il nuovo valore in quel posto.

Di conseguenza, se le stringhe hanno lunghezze diverse, non possiamo farlo. Sarà impossibile calcolare quanti byte al "cubo" giusto.

Ovviamente, tutti questi calcoli aumentano il tempo di elaborazione.

Cercherò altri metodi.

Grazie.

 
Alexey Viktorov:

Per fare questo, è necessario sapere in quale posizione si trova questo "cubo" e quanti byte occupa, riscrivere un puntatore di file lì e scrivere un nuovo valore in questo posto.

Di conseguenza, se le stringhe hanno lunghezze diverse, semplicemente non si può fare. Sarà impossibile calcolare quanti byte al "cubo" desiderato.

Se non è cruciale e puoi usare WinApi, allora penso che il compito possa essere risolto tramite FileMapping.

 

Proverò tutto. Inizierò creando un file "vuoto", con variabili astratte per la riserva. Poi lo sostituirò con i dati che otterrò.

Forse funzionerà. L'unico problema è la dimensione del file, che potrebbe diventare più grande. Dovrò creare un nuovo backup prima di ogni lettura.

 
Cerco articoli sull'uso delnuovo operatore in mql4, potete consigliare tali articoli? Chi può spiegare brevemente perché le classi sono necessarie se ci sono funzioni e variabili globali, ho guardato un sacco di video e letto la guida molte volte e ancora non capisco qual è il punto?
 
Seric29:
Cercando articoli sull'uso delnuovo operatore in mql4, consigliate tali articoli? Ho visto molti video e letto molte volte il file di aiuto, ma non capisco il significato delle classi.

il nuovo operatore in MQL è necessario solo per creare un puntatore a un'istanza dell'oggetto


I programmi MQL sono abbastanza specializzati e l'OOP è principalmente adatto per l'incapsulamento, ho dato un esempio della classeCWorkTime soprahttps://www.mql5.com/ru/forum/160683/page861#comment_11840254

è conveniente usare l'incapsulamento per fare diverse istanze dell'oggetto time-limit, come questo:

int OnInit()
{
   Work1=new CWorkTime(StartHour_1,StartMinute_1,StopHour_1,StopMinute_1);
   Work2=new CWorkTime(StartHour_2,StartMinute_2,StopHour_2,StopMinute_2);
}

.....


void OnTick()
  {

if(Work1.Disable() || Work1.Disable())
{
 Comment("Не торговое время!!!");
 }
else
{......

Cioè, nel mio esempio, puoi ora specificare 2 intervalli di tempo di lavoro dell'EA

SZY: leggere - cercare articoli del forum sezione "Oggetti".

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2019.05.26
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Igor Makanu:

È chiaro che in misura maggiore le classi compongono variabili dati e funzioni, e nella misura restante probabilmente fanno qualcosa di potente se ho capito bene, perché tutto può essere organizzato da funzioni, forse le classi lavorano più velocemente delle funzioni, si ottiene un accesso più veloce ai dati, ho letto nei forum che scrivono che usano la memoria in modo più uniforme ed economico e tutto il resto.

 

Perché questo codice non funziona?

#property version   "1.00"
#property strict
string iComments="\n 
 class CArray : public Cobject 
{
public:
    double m_Array[100];
}//дальше в OnInit()
 {Carray *arr = new CArray;
   arr.m_Array[22] = 1.23456;

....
}

Forse la classe dovrebbe essere descritta con i due punti ::? L'idea è di creare un puntatore che punta a un altro puntatore.

 

Ciao!

Grazie ancora adAlexey Viktorov per la dritta sulle citazioni - tutto funziona. Questo lunedì abbiamo una situazione - i tedeschi hanno scambiato, mentre gli inglesi hanno un giorno di riposo. Si è scoperto che nella condizione di apertura delle posizioni in euro sono stati utilizzati i vecchi valori della sterlina. Da qui la richiesta: consigliate come impostare il controllo nel codice che entrambi i simboli siano scambiati in questo giorno?

Grazie.

Motivazione: