Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 518

 

Ciao, sto ottenendo i dati sulla chiusura delle candele dell'ora, li disegno, tutto è normale, voglio ottenere i dati per il periodo N-esimo indietro, scrive l'array fuori portata

Ho provato a utilizzare il buffer dell'indicatore dall'array, per favore consigliatemi come ottenere i dati per il periodo precedente

{
 


if(prev_calculated<1) limit=rates_total-1;
if(prev_calculated>0)limit=rates_total-prev_calculated;
for(i=limit; i>=0; i--)
{  
int yesterday_weekday = TimeHour(iTime(Symbol(),0,i+1))-TimeHour(iTime(Symbol(),0,i));
if(yesterday_weekday!=0)  
  {
P=C; 
T = iTime(NULL,0,i+1); 
shift=iBarShift(NULL,PeriodGR,T); 
C= iClose(NULL,PeriodGR,shift);   
CB[n]=C;n++; 

 }
 CC[i]=C; 
 Comment(StringFormat("CC[i]=%G\r\nCB[n-2]=%G\r\n",CC[i],CB[n-2])); 
  }
   return(rates_total);
  }
 
PokrovMT5:

Buon pomeriggio, ottengo i dati sulla chiusura delle candele orarie, li disegno, tutto è OK, voglio ottenere i dati per il N-esimo periodo precedente, scrive una matrice vuota, ho provato a utilizzare il buffer dell'indicatore dalla matrice, consigliate come ottenere i dati per il periodo precedente

Forse questo aiuterà

https://www.mql5.com/ru/code/7297

https://www.mql5.com/ru/code/20343

TZ-Breaktout
TZ-Breaktout
  • voti: 2
  • 2007.09.14
  • Scriptor
  • www.mql5.com
Индикатор TZ-Breaktout.
 
PokrovMT5:

Ciao, sto ottenendo i dati sulla chiusura delle candele dell'ora, li disegno, tutto è normale, voglio ottenere i dati per il periodo N-esimo indietro, scrive l'array fuori portata

Ho provato a utilizzare il buffer dell'indicatore dall'array, per favore consigliatemi come ottenere i dati per il periodo precedente

limit=rates_total-1;

Il tuo limite punta alla prima barra della storia. Ma tu vuoi i+1 - ecco perché i è fuori portata.

Prova

limit=rates_total-2;

... anche se è improbabile che aiuti - ci sono probabilmente molti altri valori di calcolo che non controlli...

 
Salve. Ho una domanda, l'indicatore variabile limite in mql4 mostra 3555 barre per l'oro al giorno, mentre mql5 ne mostra la metà? Dove mettere le citazioni? Un'altra domanda, perlimit=rates_total-2; che è stato discusso sopra, nella mia variante non c'è overflow dell'array solo quandolimit=rates_total-5; il programma funziona. Inoltre ho notato che in mql5 la compilazione del codice sta rallentando notevolmente, il processo richiede 13 secondi, è normale? Grazie.

 
mwwm:
Salve. La mia domanda, può essere il limite variabile indicatore in mql4 mostra 3555 barre giornaliere per l'oro e mql5 mostra due volte meno? Dove mettere le citazioni? Un'altra domanda, perlimit=rates_total-2; che è stato discusso sopra, nella mia variante non c'è overflow dell'array solo quandolimit=rates_total-5; il programma funziona. Ho anche notato che in mql5 la compilazione del codice sta rallentando notevolmente, il processo richiede circa 13 secondi, è normale? Grazie.

In MT5, le quotazioni sono scaricate dal server: quello che c'è è lì...

Circa il limite non devi indovinare e modificare, e devi calcolare accuratamente - da quali variabili dipende l'offset, e prendere una unità da rates_total e i valori di queste variabili (se non sono calcolati). Se le variabili sono calcolate, dovreste controllare il valore dell'indice del ciclo e, se è maggiore di rates_total-1, saltare questa iterazione (continuare)

 

Ciao, qualcuno può dirmi se qualcuno lo sa, carico i dati tick per testare con il 99% come dovrebbe essere, tutto funziona bene per il grafico 30 min, ma non appena carico i dati H4 e provo a eseguire un EA su di esso nel tester, - non funziona, il tester dà fuori 2018.04.05 16:41:08.576 TestGenerator: file "C:-Users\user\AppData\Roaming\MetaQuotes\Terminal\7E781795884A398A87F33ED1B942D689\tester\history\USDJPY240_0.fxt" cannot open [5]

E 2018.04.05 16:41:08.535 TestGenerator: file "C:-Users\user\AppData\Roaming\MetaQuotes\Terminal\7E781795884A398A87F33ED1B942D689\tester\history\USDJPY240_0.fxt" è di sola lettura

quale potrebbe essere la ragione??????
 
pryn:

Ciao, qualcuno può dirmi se qualcuno lo sa, carico i dati tick per testare con il 99% come dovrebbe essere, tutto funziona bene per il grafico 30 min, ma non appena carico i dati H4 e provo a eseguire un EA su di esso nel tester, - non funziona, il tester dà fuori 2018.04.05 16:41:08.576 TestGenerator: file "C:-Users\user\AppData\Roaming\MetaQuotes\Terminal\7E781795884A398A87F33ED1B942D689\tester\history\USDJPY240_0.fxt" cannot open [5]

E 2018.04.05 16:41:08.535 TestGenerator: file "C:-Users\user\AppData\Roaming\MetaQuotes\Terminal\7E781795884A398A87F33ED1B942D689\tester\history\USDJPY240_0.fxt" è di sola lettura

quale potrebbe essere la ragione??????
Non c'è bisogno di moltiplicare le domande, per favore.
 
Artyom Trishkin ...Seil tempo attuale è più lungo, allora salvatelo in una variabile per il controllo...

Grazie, ho trovato quello che stavo cercando.

Un'altra domanda - chiudo una posizione parzialmente, come faccio a prendere in considerazione questo profitto o perdita chiusa quando calcolo il profitto corrente.

 
PolarSeaman:

Grazie, ho trovato quello che stavo cercando.

Un'altra domanda - chiudo una posizione parzialmente, come faccio a prendere in considerazione questo profitto o perdita chiusa quando calcolo il profitto corrente.

Esattamente come per la chiusura completa. La posizione viene divisa: la parte chiusa va nella storia e la parte rimanente ottiene un nuovo biglietto e rimane sul mercato.

 
Artyom Trishkin:

una parte chiusa va nella storia.

Come faccio a sapere che nella storia di questa particolare posizione parte chiusa?

Ho aperto una posizione con 1.0 lotti, e ho chiuso 0.5 con 10$ di perdita. Più tardi ho chiuso un altro 0.25 con 5$ di profitto. Chiuderò tutto a 50$ di profitto. Infatti, ora ho 50 dollari di profitto.

if (OrderProfit()+OrderSwap()>=50) ClosePosBySelect();

Come faccio a chiudere -$10 e +$5 nel calcolo del profitto corrente? Per chiudere a 55 dollari di profitto

Motivazione: