[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 756

 
ToLik_SRGV:

Ilya, darò un'occhiata, ma non capisco bene perché gli array hanno il tipo stringa?

è una variante funzionante per ora :)

In realtà, vorrei chiarire:

C'è una "struttura" simile in mql come in c.

Ho bisogno di memorizzare nell'array dato i dati di diversi tipi - data + ora di formazione dell'estremo, così come il valore dell'estremo stesso...

Di conseguenza, volevo chiarire - esiste una funzione standard per convertire una stringa in data+ora... o come si può aggirare questa situazione?

 

Prendi questo ZZ e non preoccuparti.

File:
zigzag2_r_.mq4  10 kb
 
Morzh09:

Mi scuso per essermi ripetuto, ma vorrei davvero capire...


Ciò che ha immediatamente colpito il mio occhio, il tuo array Number_of_extremum[] non è inizializzato da nessuna parte, rispettivamente, non ha celle per memorizzare i dati, e stai cercando di scriverci dentro min/max (ovviamente, questo finisce sempre a 0). Suggerisco questa opzione - cambiare dinamicamente la dimensione dell'array a seconda della variabile K:

        
   }
   
//====================================================  

   ArrayResize(Number_of_extremum, k);
   
   for (int u=0;u<k;u++)//
   {
      if (StrToDouble(TimeSave1[u+1][1])<=StrToDouble(TimeSave1[u][1]))
      {
         Number_of_extremum[u]=1;// значит под номером u - нашли min
      }
      else
      if (StrToDouble(TimeSave1[u+1][1])>=StrToDouble(TimeSave1[u][1]))
      {
         Number_of_extremum[u]=2;// значит под номером u - нашли max
      }
   }
   
//====================================================   

Sembra funzionare, anche se penso che da qualche parte nella logica ci sia ancora un bug, a volte i numeri iniziano ad andare fuori sequenza, ma ci possono essere due massimi consecutivi?

 
ToLik_SRGV:

Cosa voleva ottenere alla fine?

Se ho calcolato correttamente:
1000*60*(240+1)*1000 = 14 460 000 secondi.

Volete che il tester metta in pausa ad ogni tick per 167 giorni?

Riguardo alla pausa, ho detto qualche pagina fa.

Grazie, è più o meno giusto - Sleep non funziona nel tester. Questo ritardo impossibilmente lungo l'ho impostato per verificare se il sonno funziona.
 

Ciao. Esiste una strategia di arbitraggio, è perfetta? Cioè è irreale perderci sopra o il prezzo non raggiunge sempre il livello giusto?

Grazie

 
Swetten:

Qual è il numero massimo di finestre in MT4?

Avevo bisogno di aprire 3x19 finestre, ma sono 54 (credo) e basta.

Cioè la finestra è disegnata, ma ha una schermata delle finestre precedenti (che sono sullo sfondo).

E questo è tutto.

Succede quando non c'è abbastanza memoria video...
 

Si prega di consigliare quale codice dovrebbe essere aggiunto all'Expert Advisor, in modo che si fermerebbe a pareggio dopo un profitto di almeno 20 pips e non si muoverebbe più

Vi sarò molto grato per il vostro feedback

 

Colleghi, potete dirmi se esiste un indicatore che consiste in tre linee orizzontali parallele, cioè una specie di canale. Per esempio, se si prende una linea orizzontale, la si mette ad un certo livello, e da questa linea dopo un certo (dato) numero di punti si disegnano le altre linee parallele ad essa. Grazie in anticipo.

 

Nel tester, l'Expert Advisor apre 5 ordini durante il periodo selezionato.

Se cambiamo l'OrderSend(Symbol(),OP_BUY, Lots,Ask,3,Ask-10*Point,0,"", 0,0,Blue); sostituendo 10 con 15, allora verranno aperti 4 ordini su 5, e se sostituiamo 10 con 20, allora solo 3 verranno aperti. Allo stesso tempo,

solo gli ordini perdenti che sono chiusi da Stop Loss. Non si vede alcun messaggio di errore. Qual è la ragione di questo, per favore?

E la sensazione è che non entri nemmeno in questo ramo.

if (OrdersTotal()!=0) {
   if (OrderType()==OP_BUY && stochMain0<stochSIGNAL0) CLOSEORDER("Buy");     
   if (OrderType()==OP_SELL && stochMain0>stochSIGNAL0) CLOSEORDER("Sell");  
}
else {
   double MA0 = iMA(NULL,timeframe,Period_MA,0,MODE_SMA, PRICE_OPEN,0);   
   double MA1 = iMA(NULL,timeframe,Period_MA,0,MODE_SMA, PRICE_OPEN,Shift);   
   double MA2 = iMA(NULL,timeframe,Period_MA,0,MODE_SMA, PRICE_OPEN,Shift*2); 
   if (MA0>MA1-razn1 && MA1>MA2-razn1 && MA0<Ask)    
      if(stochMain0>stochSIGNAL0 && stochMain_1>stochSIGNAL_1 && stochMain_4<stochSIGNAL_4) {
         //OPENORDER ("Buy");
         OrderSend(Symbol(),OP_BUY, Lots,Ask,3,Ask-10*Point,0,"", 0,0,Blue);
      }
   else if (MA0+razn1<MA1 && MA1+razn1<MA2 && MA0>Bid)     
      if(stochMain0<stochSIGNAL0 && stochMain_1<stochSIGNAL_1 && stochMain_4>stochSIGNAL_4)  //   
         {OPENORDER ("Sell");  }
}     
File:
stoch_1.mq4  7 kb
 
profitinvesting:

Si prega di consigliare quale codice dovrebbe essere aggiunto all'Expert Advisor, in modo che si fermerebbe a pareggio dopo un profitto di almeno 20 pips e non si muoverebbe più

Vi sarò molto grato per il vostro feedback

Avete bisogno del profitto totale di tutte le posizioni aperte o volete mettere uno stop su ciascuna di esse quando raggiungono 20 punti di profitto?