[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 310

 
GarKain:
Hd... non leggiamo libri di testo, impariamo tutti facendo)))


Posso dire che non ho letto un libro di testo, ma non ho nemmeno fatto domande.

Se ci sono domande e c'è una fonte per risolvere il problema, probabilmente siete nel posto sbagliato. Devi tornare all'asilo. Non hai capito niente.

 
Vinin:


Posso dirvi che non ho letto il libro di testo, ma non ho nemmeno fatto domande.

Se ci sono domande e c'è una fonte per risolvere il problema, probabilmente siete nel posto sbagliato. Devi tornare all'asilo. Non hai capito niente.

Non ho detto che non leggo nulla per principio. Se il link mi aiuta, la questione non è più un problema. Una domanda e una fonte non sono sufficienti per risolvere un problema, bisogna sapere cosa cercare nella fonte.
 
Vinin:

È sempre da sinistra a destra e non dipende dai risultati delle espressioni di input. È sempre controllato fino alla fine.

In questo contesto vorrei aggiungere che se c'è bisogno di usare condizioni del tipo if (a>b && c>d)...

Per accelerare l'esecuzione, usate il seguente modo: se (a>b) se (c>d), allora...

Perché se risulta che a<b, l'esecuzione salterà immediatamente alla prossima if (a>b) if (c>d) ma non confronterà completamente le espressioni tra parentesi, cioè non controllerà c>d come nel primo caso.

 
GarKain:
Non ho detto che non leggo nulla. Se il link mi aiuta, la domanda non è più un problema. Una domanda e una fonte non sono sufficienti per risolvere un problema, bisogna anche sapere cosa cercare nella fonte.

Leggete il forum MQL5 - le persone lì raccomandano giustamente di leggere TUTTI gli articoli per capire le basi del linguaggio.

In ogni caso, è necessario conoscere (leggere) la base sotto forma di tutorial e documenti PRIMA di fare domande.


 
Roman.:


È tutto a posto. Gerchik su YouTube, guardare e ascoltare: "30% del mercato - già superiore al tetto ..." - come questo, ma la conversazione è principalmente con GEP da un milione di rubli e sopra ... Cioè da tali somme, quando si può già ritirare il denaro e vivere con esso. Tipo, quello che Soros ha in anni diversi in media il 37% di un anno prima e questo è più del normale...

Lui e la sua squadra, a proposito, stanno accettando fondi di gestione... da RUB 1 milione, allora sarà interessato a te. Vedere. "La caccia a Gerchik" su finam.fm. Tutti i pezzi.

Infatti, in una delle sue ultime "cacce" ha detto che anche se un "principiante" prende più dell'interesse della banca all'anno dal mercato, può essere fiero di se stesso che ha "battuto" il mercato e tutto il resto... MA, si tratta di derositi più/meno gravi, da cui il 10,20,30% è anche una quantità seria...

Se il DEP è molto più piccolo, usa il termine - "SVILUPPO DEL DEPOSITO"!

cioè dal 1000% annuo in su...

Sono d'accordo con lui.

 
MQL414:

Se il tester MT4 deve essere creduto, due condizioni sono il denaro e il tempo. 20.000 rubli. 200.000 rubli e 2 milioni di rubli.


Fa male... :-) immagini familiari. Posta il codice expa in questo ramo del forum. Lo guarderanno, lo testeranno e proporranno delle opzioni dopo che lo avrete ottimizzato...

 

Aiutami a trovare un errore logico nel codice. Quando è attaccato a un grafico, l'indicatore non disegna una linea, scrive un errore "4002 - Array index - out of range".

//+------------------------------------------------------------------+
//|                                                  +OtherChart.mq4 |
//|                                                       silhouette |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "silhouette"
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Black
//+------------------------------------------------------------------+
extern string Smb="GBPUSD";
extern bool Candles=false;
extern bool Line=true;
//+------------------------------------------------------------------+
double Buffer_ind[];
double Buffer_OHLC[4][];
string Symb;
int init()
  {
   Symb=Symbol();
   
   SetIndexBuffer(0,Buffer_ind);
   SetIndexStyle(0,DRAW_LINE,EMPTY,1);
   
   return(0);
  }

int deinit()
  {

   return(0);
  }

int start()
  {
   int counted_bars=IndicatorCounted();
   int limit=Bars-counted_bars-1;
   if (limit>1) 
      limit=Bars-1;
   for(int i=limit; i>=0; i--)
    {
      Buffer_OHLC[1][i]=iOpen (Smb,Period(),i);
      Buffer_OHLC[2][i]=iHigh (Smb,Period(),i);
      Buffer_OHLC[3][i]=iLow  (Smb,Period(),i);
      Buffer_OHLC[4][i]=iClose(Smb,Period(),i);
      
      if(Line==true)
       {
        double Cls=Buffer_OHLC[4][i];
        Buffer_ind[i]=Cls; 
       }
    }
   Alert("Error: ", GetLastError());
   return(0);
  }
 
silhouette:

Aiutami a trovare un errore logico nel codice. Quando è attaccato a un grafico, l'indicatore non disegna una linea, scrive un errore "4002 - Array index - out of range".


1. La variabile Candles non è usata da nessuna parte.

2. La linea

double Cls=Buffer_OHLC[4][i];

non è scritto correttamente. Sta nel ciclo - ad ogni iterazione del ciclo, si crea una nuova variabile Cls. E non è necessario lì. È sufficiente scrivere

Buffer_ind[i]=Buffer_OHLC[4][i];
 

E prova la linea

double Buffer_OHLC[4][];

sostituirlo con

double Buffer_OHLC[][];
 
Anche se è meglio impostare la dimensione dell'array esplicitamente - o cambiare la dimensione dell'array nel codice già all'inizio dell'indicatore.
Motivazione: