[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 123

 
KabrGvin:

Si prega di consigliare come evitare l'influenza dei fine settimana quando non ci sono bar. Supponiamo che i numeri delle barre siano calcolati con le formule:

nt i1=(Time[0]-t1)/60/Periodo();

int i2=(Time[0]-t2)/60/Periodo();

E il numero di barre tra i1 e i2 è uguale alla differenza tra loro. Cioè: Numero di barre = i1-i2. Ma se i1 e i2 cadono tra i fine settimana, allora il numero di barre sarà calcolato tenendo conto delle barre che non esistono il sabato e la domenica. Come posso uscire da questa situazione?

Saluti, Dimitri.


Grazie a tutti. L'ho risolto da solo.



 

Gente, come si arrotonda 2,643789 a un numero intero?

Non riesco a trovarlo nel libro di testo o nella documentazione, non trovo niente nella ricerca, o sto cercando nel posto sbagliato.

 
eddy:

alsu, riempi il tutto come?:)

e perché stampare i?) i è uguale a Bars-counted+2. come può essere negativo?

              for(i=Bars; i>=0; i--) Rel[i]=pr(Close[i])-pr(Close[i+1]);
     if(teni) for(i=Bars; i>=0; i--) {Rhi[i]=pr(High[i])-pr(Close[i+1]);
                                      Rlo[i]=pr(Low[i])-pr(Close[i+1]);
                                                Rlo[i]=MathMin(Rlo[i],0);
                                                Rhi[i]=MathMax(Rhi[i],0);}

Questo codice viene eseguito ad ogni tick, cioè all'arrivo di ogni tick Tutti gli elementi degli array Rel,. da Bars a zero viene assegnato un certo valore. (A proposito, non c'è nessun elemento con il numero Bars, l'ultimo indice nell'array è Bars-1 - questo dovrebbe essere ricordato)

Ora per il non disegno.

Dobbiamo scoprire dov'è l'errore. Per prima cosa, suggerisco di guardare quali valori assume l'indice i e quali sono i risultati della funzione rsi(). Poiché non c'è un debugger in ME, dobbiamo usare echo, cioè Print().

 
gheka:

Gente, come si arrotonda 2,643789 a un numero intero?

Non riesco a trovarlo nel libro di testo o nella documentazione, non trovo niente nella ricerca, o sto cercando nel posto sbagliato.

https://docs.mql4.com/ru/math/MathRound

doppio MathRound( valore doppio)

La funzione restituisce il valore arrotondato al numero intero più vicino del valore numerico specificato.

Esempio:
doppio y=MathRound(2,8);
Stampa("Arrotondamento di 2,8 a ",y);
y=MathRound(2,4);
Stampa("Arrotondamento di -2,4 a ",y);
//Output: Arrotondamento da 2,8 a 3
//arrotondamento da -2,4 a -2

 
alsu:

..su ogni spunta Tutti gli elementi di Rel,... da Bars a zero viene assegnato un certo valore.

Ora riguardo al non disegno.

Dobbiamo scoprire dov'è l'errore. Per prima cosa, suggerisco di guardare quali valori assume l'indice i e quali sono i risultati della funzione rsi(). Poiché non c'è un debugger in ME, possiamo usare echo, cioè Print().

"Bars to zero" l'ho già aggiustato) sono sempre a leggere e aggiustare le cose.

ora sul non disegno)

Bars-counted+2 può essere negativo?

 

Come posso modificare tutti gli ordini aperti?

Modifico solo un ordine per qualche motivo

Ecco il mio codice

 tot=OrdersTotal();
if(tot>0)
{ if(OO_11(0)==false) <---- ОО_11() он проверяет есть ли стоп
{ int k=OrdersTotal();
for(int a=0;a<=k;a++)
{ if(OrderSelect(a,SELECT_BY_POS,MODE_TRADES))
{ if(OrderType()==OP_SELL)
{ if(OrderMagicNumber()==0)
{
int tik=OrderTicket();
OrderModify(tik,Ask,Ask+0.01000,0,0,0);
}
}
}
}
}
}
Ho 10-50 ordini aperti senza un mago ma imposta uno stop loss solo su un ordine, ditemi cosa c'è di sbagliato?
 
eddy:

"Bars to zero" l'ho già corretto) sono sempre a leggere e correggere le cose.

ora sul non disegno)

Bars-counted+2 può essere negativo?

Al volo, no, non può. Ma è comunque più veloce controllare che pensare. L'ideale sarebbe mettere delle stampe ovunque e vedere come funziona il software.
 
gheka:

Come posso modificare tutti gli ordini aperti?

Modifico solo un ordine per qualche motivo

Ecco il mio codice

Ho 10-50 ordini aperti senza magia aperta ma ottengo stop loss solo su un ordine, ditemi cosa c'è di sbagliato?

1) la variabile k ripete la variabile tot

2) a<=k è sbagliato, correggere a<k

3) Cosa c'è nel registro sulla modifica degli ordini?

 
alsu:

1) la variabile k ripete la variabile tot

2) a<=k non è corretto, correggere a<k

3) Cosa c'è nel registro riguardo alla modifica dell'ordine?

Non c'è nessuna informazione nel registro, solo l'apertura degli ordini e nient'altro, ancora non funziona
 
alsu:

1) la variabile k ripete la variabile tot

2) a<=k non è corretto, correggere a<k

3) Cosa c'è nel registro riguardo alla modifica dell'ordine?

Ora funziona) grazie.