Domande da un "manichino" - pagina 130

 
Omg... Continua a leggere.
 

Bene!

Win7 non ho trovato nulla nel forum, che dire della directory di lavoro del programma? Come mi è sembrato, in win7 al momento dell'avvio viene creata una directory temporanea dove viene copiato tutto il programma, così, quando lavoro con MetaEditor risulta che copio un file da includere, per esempio nell'unità D, ma non c'è nulla nella finestra di metaeditor. Chiamo "Apri cartella" dalla finestra del metaeditor, e la finestra appare sull'unità C da qualche parte nella memoria temporanea. Cosa fare? Come sincronizzarli o impedire a win7 di dividerli in questo modo?

Grazie!

Документация по MQL5: Файловые операции / FileCopy
Документация по MQL5: Файловые операции / FileCopy
  • www.mql5.com
Файловые операции / FileCopy - Документация по MQL5
 
bivmail:

Bene!

Win7 non ho trovato nulla nel forum, che dire della directory di lavoro del programma? Come mi è sembrato, in win7 al momento dell'avvio viene creata una directory temporanea dove viene copiato tutto il programma, così, quando lavoro con MetaEditor risulta che copio un file da includere, per esempio nell'unità D, ma non c'è nulla nella finestra di metaeditor. Chiamo "Apri cartella" dalla finestra del metaeditor e la finestra appare sull'unità C da qualche parte nel temp. Cosa fare? Come sincronizzarli o impedire a win7 di dividerli in questo modo?

Grazie!

https://www.mql5.com/ru/forum/1111/page712#comment_173757
 
TheXpert:

1. Ogni lingua ha il suo campo di applicazione. Dire che una lingua è "la più avanzata" in generale è assurdo.

2. Che differenza fa come si chiama? Il punto non cambia quasi mai.

1. ok, sono d'accordo. allora mql5 è il linguaggio più avanzato per l'auto-trading. :) Continuiamo a spingere.

2... Ecco, lo stiamo chiedendo, lo stiamo chiedendo!

Vladix:
2. Sostenuto da

Lo chiediamo tutti insieme!

:)

 
Ciao a tutti.
le domande elementari sul linguaggio mql5 sono poste qui? :-)
a giudicare dalla discussione, ci sono solo hell-oop qui...
 
GameOver:
Ciao a tutti.
le domande elementari sul linguaggio mql5 sono poste qui? :-)
Non lo so, ma a giudicare dalla discussione, qui ci sono solo OOP-ers infernali...

Ci sono sempre manichini di diversi calibri. Beh, puoi fare un ramo "per i lamer", se ti senti più a tuo agio lì ;-).
 
Nel tentativo di padroneggiare questa creazione sintattica, credendo nella "semplicità" del linguaggio,
ha iniziato a disegnare una sceneggiatura rudimentale.
Comunque, una nota e una domanda.

void OnStart() {
   MqlRates  aBars[];
   ArraySetAsSeries(aBars,true);
   int maxBars=TerminalInfoInteger(TERMINAL_MAXBARS); , bad_bars=0;
   int bars=CopyRates(Symbol(),Period(),0,maxBars,aBars);

c'è solo una cosa da fare - cioè non ho abbastanza memoria, lo script non funziona con maxBars,
dice che non c'è abbastanza memoria. Cioè una chiamata diTerminalInfoInteger(TERMINAL_MAXBARS) in realtà risulta essere

il che è strano, perché in realtà non ci sono più di 100 000 barre sul grafico.
Perché i copywriter semplicemente non hanno tempo di restituire nulla...

la seconda domanda è questa.
cercare di implementare un controllo elementare (era elementare in µl4)

      // delete bad day of week and bad bars
      if (TimeDayOfWeek(Time[i])<1 || TimeDayOfWeek(Time[i])>5 || (High[i]-Low[i])<10*Point) { errBar++; continue; }

Le ricerche sul forum (la ricerca dell'aiuto di mql5 sulle frasi day_of_week, dayofweek non ha dato nulla... aiuto molto utile!) hanno portato alla seguente implementazione

MqlDateTime temp;
TimeToStruct(aBars[i].time,temp);
if (temp.day_of_week<1 || temp.day_of_week>5 ||  aBars[i].high-aBars[i].low<10*Point() ) {errBar++; continue;}

Come no? Invece di una linea ce ne sono tre - ed è elementare.
è possibile semplificarlo? o tutte queste operazioni elementari sono ormai sostituite dalla creazione ingombrante di oggetti, classi, strutture intermedie?

Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
  • www.mql5.com
Основы языка / Операторы / Оператор создания объекта new - Документация по MQL5
 

Buona giornata!

Potreste dirci se ci sono broker in Russia che offrono Metatrader come terminale per lavorare su FORTS e MICEX?

 

Per favore, suggerisci una variante più veloce dell'algoritmo "roulette" rispetto a questa:

//——————————————————————————————————————————————————————————————————————————————
// Рулетка.
int Selection()
{
  //----------------------------------------------------------------------------
  int    i=0,u=0;
  double p=0.0,start=0.0;
  double          fit[][2];
  ArrayResize(fit,SizeOfPop);
  ArrayInitialize(fit,0.0);
  double delta=(Population[0][0]-Population[0][SizeOfPop-1])*0.1-Population[0][SizeOfPop-1];
  //----------------------------------------------------------------------------
  for(i=0;i<SizeOfPop;i++)
  {
    fit[i][0]=start;
    fit[i][1]=start+MathAbs(Population[0][i]+delta);
    start=fit[i][1];
  }
  p=RNDfromCI(fit[0][0],fit[SizeOfPop-1][1]);

  for(u=0;u<SizeOfPop;u++)
    if((fit[u][0]<=p && p<fit[u][1]) || p==fit[u][1])
      break;
    //--------------------------------------------------------------------------
  return(u);
}
//——————————————————————————————————————————————————————————————————————————————
È chiaro che gli array possono essere portati fuori dalla funzione in modo che non debbano essere dichiarati ogni volta e ridimensionati, ma ho bisogno di una soluzione più rivoluzionaria. :)
 
GameOver:
Nei miei tentativi di padroneggiare questa creazione sintattica, credendo nella "semplicità" del linguaggio,
ha iniziato a disegnare una sceneggiatura rudimentale.
Comunque, una nota e una domanda.

void OnStart() {
   MqlRates  aBars[];
   ArraySetAsSeries(aBars,true);
   int maxBars=TerminalInfoInteger(TERMINAL_MAXBARS); , bad_bars=0;
   int bars=CopyRates(Symbol(),Period(),0,maxBars,aBars);

Ahimè, se il numero di barre è impostato come Unlimited, lo script non funziona,
dice che non c'è abbastanza memoria. cioè in sostanza, verrà chiamato ilTerminalInfoInteger(TERMINAL_MAXBARS);

il che è strano, perché in realtà non ci sono più di 100 000 barre sul grafico.
Come posso ottenere il numero di barre realmente caricate? Perché i diritti d'autore non hanno tempo di restituire nulla...

Cerchiamo di capirlo. Per la funzione CopyRates() il penultimo parametro

int              count,             // сколько копируем
Cioè il numero di elementi da copiare. Nel tuo design, il numero di elementi è illimitato. Approssimativamente, irreale :) Questo è probabilmente ciò che accade quando si lavora, ridistribuendo costantemente la memoria fino ad esaurirla. Prova a usare un valore più specifico, invece di TerminalInfoInteger(TERMINAL_MAXBARS):MQL5 Reference / Accesso a serie temporali e indicatori / Bars