Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 230

 

begDayBar= iBarShift(_Symbol,_Period,begDayTime,false) secondo la documentazione la funzione restituisce -1 o l'offset della barra più vicina a seconda del parametro esatto.

ma oggi, per qualche motivo, se begDayTime=2023.01.26 00:00:00 restituisce -1 anche se esistono tali barre e non sono le ultime.

2023.02.15 15:19:23.254 !indDAY_WSOWROhLine (EURRUB_TOM,M15) begDayTime=2023.01.26 00:00:00 endDayTime=2023.01.27 00:00:00 begDayBar=-2 endDayBar=-1 indATR=0 Q5days=0

può restituire -1 o la barra corretta.

Документация по MQL5: Доступ к таймсериям и индикаторам / iBarShift
Документация по MQL5: Доступ к таймсериям и индикаторам / iBarShift
  • www.mql5.com
iBarShift - Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
IuriiPrugov #:

oggi per qualche motivo se begDayTime=2023.01.26 00:00:00 restituisce -1 anche se ci sono tali barre e non sono le ultime

Fornire tutti i dati per la riproduzione.
 
fxsaber #:
Fornire tutti i dati per la riproduzione.

begDayTime=iTime(Symbol(),Inp_period,bar);begDayBar=iBarShift(_Symbol,_Period,begDayTime,false)-1;

Periodo_Inp = M15

2023.02.19 13:02:42.517 !indDAY_WSOWROhLine (EURRUB_TOM,M15) bar=14 begDayTime=2023.01.30 00:00:00 endDayTime=2023.01.31 00:00:00 begDayBar=-2 endDayBar=673 indATR=0 Q5days=0
se si inserisce

if (begDayBar<0) { k=0; do {k++;} while(begDayTime<time[k] && !IsStopped()); begDayBar=k; }

allora tutto è OK (cioè correggete iBarShift quando fallisce)

 
IuriiPrugov #:

Non sono dati.

 
fxsaber #:

Non sono dati.

Quali altri dati? Inp_period = D1 viene cercato per 15 giorni in un ciclo! begDayTime= bar= bar =14

begDayTime=iTime(Symbol(),Inp_period,bar); _Symbol= EURRUB_TOM; _Period= M15; dopodiché

iBarShift(_Symbol,_Period,begDayTime,false) può produrre una barra normale o -1 oppure non ha il tempo di contare le barre o altro.

in generale, funziona in modo instabile se si cambia indicatore (basta premere un altro periodo sul pannello "periodo del grafico"), ad esempio su M30 può produrre una barra normale o -1.

stessa cosa su un altro strumento se non inserito if (begDayBar<0) { k=0; do {k++;} while(begDayTime<time[k] && !IsStopped()); begDayBar=k; } poi si verificherà un errore.

2023.02.20 07:58:01.698 !indDAY_WSOWROhLine (CNYRUB_TOM,M15) array fuori range in '!indDAY_WSOWROhLine.mq5' (202,148)

e così via dopo una o due volte. Potete provare voi stessi.

Inserite questo pezzo nell'indicatore più semplice e passate a un periodo diverso nel pannello "periodo del grafico".

 
IuriiPrugov #:

e quali altri dati?

Codice sorgente completo e dati di ambiente per la riproduzione. Cioè che chiunque possa riprodurre il problema in un minuto dopo averlo letto.
 

ok

nuovo di MQL4 e ora di MQL5.

Sono stato un programmatore in Visual C/C++, quindi so come si fa a programmare.

ma non ho familiarità con le librerie e con il linguaggio.

La mia prima domanda è: se carico un modello e questo produce un grafico in Oanda, come faccio a impostare il codice e così via?

Voglio usare il mio conto di paper trading e sviluppare codice per testare alcune strategie di trading.

Ora, non voglio reinventare la ruota, quindi, se posso ottenere qualche frammento di codice che faccia cose "standard" come

-ottenere il conto e le connessioni al server/database

-impostare un progetto

-eseguire magari prima un codice preesistente e poi esercitarmi a fare delle modifiche e a "compilarlo", se è così che funziona, oppure eseguire una build del mio progetto.

Ho intenzione di essere attivo in questa comunità una volta che mi sarò orientato, quindi sono contento di aver trovato questo. sono stanco di cercare di commerciare manualmente

Posso usarlo per fare trading di criptovalute?

Mi scuso se non mi sono preparato meglio - ho fatto questo commento solo dopo aver dato un'occhiata in giro - mi sono iscritto solo oggi.

Grazie!

RayRay

RR

 
@rrb1002 #: nuovo in MQL4 e ora in MQL5....

Ci sono articoli che descrivono come fare le cose in modo più dettagliato.

C'è il CodeBase con esempi di codice scritti da utenti che vanno da principianti assoluti a sviluppatori altamente qualificati.

E c'è la versione online della documentazione (disponibile anche in MetaEditor).

rrb1002 #: posso usarlo per fare trading di criptovalute?

Potete negoziare qualsiasi cosa offra il vostro broker, comprese le criptovalute.

 
Ok, sono confuso. Sono nuovo. Pensavo fosse il linguaggio MQL4. Il nuovo linguaggio in arrivo è MQL5? MQL4 sarà compatibile con MQL5 e si spera che estenda il linguaggio MQL4?
 
@rrb1002 #: Ok, sono confuso. Sono nuovo. Pensavo che si trattasse del linguaggio MQL4. Il nuovo linguaggio in arrivo è MQL5? MQL4 sarà compatibile con MQL5 e si spera di estendere il linguaggio MQL4?

MQL5 è in circolazione da più di un decennio. Non è "nuovo". È maturo.

MetaTrader 4 e MQL4 non sono stati ulteriormente sviluppati da diversi anni (probabilmente 6-8 anni, credo). Solo gli aggiornamenti critici vengono effettuati sporadicamente.

I linguaggi sono molto simili e molte funzionalità sono in qualche modo compatibili, ma le funzionalità di trading sono completamente diverse e per nulla compatibili.

Motivazione: