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

 
Lians:

Ho già contattato il forum sulla scrittura e la lettura di array in un file, e ora mi sono imbattuto di nuovo in un problema: avendo scritto un array in un file, non riesco poi a trovare l'elemento dell'array per valore, quindi ecco lo script:

Il risultato dell'esecuzione di questo script su di me è la voce di registro "La parola xyz non è nel file scritto, ma la parola xyz è"

Potreste dirmi cosa c'è che non va e come risolvere il problema?

State usando una stringa di array bidimensionale y[][] mentre controllate (cercate) in un array unidimensionale. Provate questa funzione:

bool ArraySearchString (string m[][], string e1)
{
    for (int i1 = 0; i1 < ArrayRange (m, 0); i1++)
    {
        for (int i2 = 0; i2 < ArrayRange (m, 1); i2++)
        if (m[i1][i2] == e1) return (true);
    }
    return (false);
}

e cambiare la condizione di controllo in

if (ArraySearchString (y,"xyz"))
 

TarasBY, grazie mille! Funziona!

E un'altra domanda, qualcuno ha incontrato un fenomeno in cui lo stesso script che calcola matematicamente un intero in diverse build del terminale dà valori diversi. Per esempio, nella build 399 produce 488143839, ma nella build 416 produce 348186686.

Ho già controllato diverse volte - lo script gira lo stesso con gli stessi parametri in diverse build.

 
Lians:

TarasBY, grazie mille! Funziona!

E un'altra domanda, qualcuno ha incontrato un fenomeno in cui lo stesso script che calcola matematicamente un intero in diverse build del terminale dà valori diversi. Per esempio, nella build 399 produce 488143839, ma nella build 416 produce 348186686.

Ho già controllato diverse volte - lo script gira lo stesso con gli stessi parametri in diverse build.



I vostri numeri sono grandi, forse la causa è un overflow di una variabile intera.
 
Salve, potete aiutarmi ad aggiungere uno stop loss? Ho provato io stesso, lo stop loss non appare.
File:
q163hud4n85.mq4  33 kb
 
moskitman:
No, Vadim, il desktop! Una scheda grafica GForce 9600 da 512mb.
I sistemi operativi client a 32bit non possono usare più di 3,5GB di memoria (alcuni 3,25, dipende dalla natura del bios della scheda madre)
Questo è dovuto all'architettura a 32 bit e al fatto che da 3,5 a 4Gb di spazio sono dedicati all'indirizzamento dei dispositivi PCI, in particolare, se avete molti dispositivi PCI installati, "vedrete" meno RAM di quella che avete
.
 
Zhunko:
Mi è stato detto, ma grazie lo stesso, Vadim.
 
sand:

I vostri numeri sono grandi, forse la ragione è un overflow di una variabile intera.
Sapete come evitarlo? Non usare funzioni come MathFloor(), MathSqrt() ...? O non c'è niente da fare? Ho bisogno che conti allo stesso modo dappertutto.
 
yosuf:
Spesso internet va giù, è possibile automatizzare il suo riavvio con un software? O cosa si sa di questo? C'è un modo per alimentare due o più ISP allo stesso tempo, nel senso di parallelismo? Grazie in anticipo.

XmaksasX:

fare un documento di testo semplice e mettere questo testo

:LOOP
ping 8.8.8.8 | find "100%" && (rasdial /disconnect & rasdial "NAME OF YOUR CONNECTION" login pass)
ping -w 1000 -n 30 127.0.0.1

goto LOOP

salvarlo e cambiare l'estensione da *.txt a *.bat, arrotolarlo e godere))

XmaksasX, grazie mille per il tuo saggio consiglio, la connessione internet non è stata interrotta per due giorni, o forse non me ne sono accorto, dato che il principio di cui sopra funziona. Avevo dei vuoti di memoria ogni 10 minuti, ogni ora o di notte, ancora più tristi al lavoro, cioè senza alcun sistema. Ora è una benedizione, si può anche dormire bene.

Un'altra domanda, è possibile gestire un account reale contemporaneamente da due computer, uno a casa e uno al lavoro?

 

Ecco un pezzo di codice dell'EA. Volevo implementare l'idea che se c'è una deviazione dal prezzo aperto di sigma, allora chiudere. in teoria se si mette sigma = 1*Point. Allora l'Expert Advisor dovrebbe sempre chiudere con profitto, perché la deviazione è sempre presente a 1*Punto. Un'altra cosa è che nel trading reale, c'è uno spread quindi perderà profitto e nello Strategy Tester non c'è spread, quindi dovrebbe fare profitto tutto il tempo.

Credo che ci sia un errore qui.

if (OrdersTotal()!=0)
    {
     OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
     
     if (OrderType()==OP_BUY)
     {
      if ((Bid-Open[0])>=SigmaHigh*Point) OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Red);
     }
      
     if (OrderType()==OP_SELL) 
     {
       if ((Open[0]-Ask)>=SigmaLow*Point) OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Green);
     }
    }
 
orb:

e non c'è diffusione nel tester


C'è una diffusione nel tester. Esattamente come nel grafico quando il test è stato eseguito.
Motivazione: