[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 312
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Non fate caso ai freni, è la prima volta che ho a che fare con gli array multidimensionali :)
È più facile orientarsi se si pensa a un array multidimensionale come a qualcos'altro. Vale a dire, se trovate un modello per l'array che cattura la sua essenza - il modello è più facile da tenere davanti agli occhi.
Una matrice unidimensionale è costituita da oggetti su una linea (un raggio di coordinate che parte da zero). Un esempio di una tale matrice sarebbe una coda in un negozio. Il primo in coda è la persona che si trova proprio dietro la persona che sta comprando ora. La persona che compra non può essere chiamata il primo della fila - sta comprando - è zero. Si trova all'interno della cella zero della matrice unidimensionale.
Una matrice bidimensionale è costituita da oggetti in un piano (piano delle coordinate). Un esempio potrebbe essere un auditorium. Questa e quella fila, questo e quel posto. Aggiungete la riga zero e la sede zero a questo modello, e avrete un modello esatto di un array bidimensionale.
Una matrice tridimensionale è un oggetto nello spazio (spazio delle coordinate) - la coordinata dell'oggetto è data da tre valori. È un cubo, con delle facce. Un modello potrebbe essere un edificio residenziale con ingresso numero zero, piano numero zero e appartamento numero zero (tra tutti gli altri). A condizione che in ogni ingresso la numerazione dei piani parta da zero.
Un array quadridimensionale è simile a un array unidimensionale. È un raggio di coordinate, tutti i punti del quale sono array tridimensionali. Il modello è una strada. La matrice di coordinate sarà specificata dai valori: numero di casa, numero di ingresso, numero di piano, numero di appartamento.
E così via nella enn-dimensionalità - dalle strade ai quartieri, dai quartieri alle città, dai quartieri alle città, dalle città ai paesi, dai paesi ai pianeti...
Qualcuno può spiegare come aprire un ordine in qualsiasi momento di una barra e aprire l'ordine successivo solo alla barra successiva?
Dovremmo scorrere l'elenco degli ordini. Se il tempo di apertura dell'ordine successivo è superiore o uguale al tempo di apertura della barra corrente (Time[0]), dovremmo impostare il flag che vieta l'apertura di ordini sulla coppia di valute corrente. Alla prossima candela, il ciclo rileverà che non c'è un ordine del genere e non metterà un divieto, cioè cancellerà la bandiera che proibisce l'apertura di ordini.
Scorriamo l'elenco degli ordini. Se il tempo di apertura del prossimo ordine è maggiore o uguale al tempo di apertura della barra corrente (Time[0]), allora impostiamo il flag che vieta l'apertura di ordini su questa coppia di valute.
Grazie mille.
Se il codice funziona solo su una coppia di valute, allora mettete una linea per tagliare gli ordini di altre coppie
Se il codice funziona solo su una coppia di valute, allora impostate una linea per scartare gli ordini di altre coppie
È possibile.
È possibile.
bool Times=true;
if (OrdersTotal()>0){
for(int g=OrdersTotal()-1; g>=0; g--){
datetime t;
OrderSelect(g,SELECT_BY_POS);
if (OrderMagicNumber()!=MagicNumber){continue;}
se (t<OrderOpenTime() || g==OrdersTotal()-1) t=OrderOpenTime();
if (t>=Time[0]) Times=falso;}}
è corretto?
bool Times=true;
se (OrdiniTotali()>0){
for(int g=OrdersTotal()-1; g>=0; g--){
datetime t;
OrderSelect(g,SELECT_BY_POS);
if (OrderMagicNumber()!=MagicNumber){continua;}
if (t<OrderOpenTime() || g==OrdersTotal()-1) t=OrderOpenTime();
if (t>=Time[0]) Times=falso;}}
è corretto?
No. Non c'è bisogno di dichiarare una variabile all'interno del ciclo ad ogni iterazione del ciclo.
bool Times=true;
if (OrdersTotal()>0){
for(int g=OrdersTotal()-1; g>=0; g--){
datetime t;
OrderSelect(g,SELECT_BY_POS);
if (OrderMagicNumber()!=MagicNumber){continue;}
se (t<OrderOpenTime() || g==OrdersTotal()-1) t=OrderOpenTime();
if (t>=Time[0]) Times=falso;}}
è corretto?
bool Times=true;
datetime t=Time[1];
if (OrdersTotal()>0){
for(int g=OrdersTotal()-1; g>=0; g--){
OrderSelect(g,SELECT_BY_POS);
if (OrderMagicNumber()!=MagicNumber){continue;}
se (t<OrderOpenTime()) t=OrderOpenTime();
if (t>=Time[0]) Times=falso;}}
è corretto?