Caractéristiques du langage mql5, subtilités et techniques - page 230

 

begDayBar= iBarShift(_Symbol,_Period,begDayTime,false) selon la documentation la fonction renvoie -1 ou le décalage de la barre la plus proche en fonction du paramètre exact.

Mais aujourd'hui, pour une raison inconnue, si begDayTime=2023.01.26 00:00:00, la fonction renvoie -1 bien qu'il y ait de telles barres et qu'elles ne soient pas les dernières.

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

Il se peut que le résultat soit -1 ou qu'il renvoie la bonne barre.

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

aujourd'hui, pour une raison quelconque, si begDayTime=2023.01.26 00:00:00, on obtient -1 bien qu'il y ait de telles barres et qu'elles ne soient pas les dernières.

Fournir toutes les données pour la lecture.
 
fxsaber #:
Fournir toutes les données pour la lecture.

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

Période_input = 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
si vous insérez

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

alors tout est OK (c'est-à-dire qu'il faut corriger iBarShift en cas d'échec)

 
IuriiPrugov #:

Il ne s'agit pas de données.

 
fxsaber #:

Il ne s'agit pas de données.

Quelles sont les autres données ? Inp_period = D1 est recherché pendant 15 jours dans un cycle ! begDayTime= bar= bar =14

begDayTime=iTime(Symbol(),Inp_period,bar) ; _Symbol= EURRUB_TOM ; _Period= M15 ; après cela

iBarShift(_Symbol,_Period,begDayTime,false) peut produire une barre normale ou -1 ou il n'a pas le temps de compter les barres ou quelque chose comme ça.

en général, il fonctionne de manière instable si vous changez d'indicateur (appuyez simplement sur une autre période dans le panneau "chart period"), par exemple, sur M30 il peut produire une barre normale ou -1.

même chose sur un autre instrument si non inséré if (begDayBar<0) { k=0 ; do {k++;} while(begDayTime<time[k] && !IsStopped()) ; begDayBar=k ; } alors une erreur apparaîtra.

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

et ainsi de suite après une ou deux fois. Vous pouvez essayer vous-même.

Insérez cette pièce dans l'indicateur le plus simple et changez de période dans le panneau "période du graphique".

 
IuriiPrugov #:

et quelles autres données ?

Code source complet et données d'environnement pour la reproduction. C'est-à-dire que n'importe qui peut reproduire le problème en une minute après l'avoir lu.
 

ok

Je suis nouveau à MQL4 et maintenant à MQL5.

J'ai été programmeur en Visual C/C++ et je sais donc comment coder.

Mais je ne suis pas familier avec les librairies et autres... enfin le langage.

La première question que je me pose est la suivante : si je charge un modèle et qu'il produit un graphique dans Oanda, comment dois-je m'y prendre pour coder et ainsi de suite ?

Je veux utiliser mon compte de trading papier et développer du code pour tester certaines stratégies de trading.

Je ne veux pas réinventer la roue, donc, si je peux obtenir quelques bouts de code qui font des choses "standard" comme

-obtenir les connexions au compte et au serveur/base de données

-mettre en place un projet

-Je n'ai pas l'intention de m'engager dans cette voie, mais j'ai l'intention de m'engager dans cette voie et de m'engager dans cette voie, mais j'ai l'intention de m'engager dans cette voie et de m'engager dans cette voie.

J'ai l'intention d'être actif dans cette communauté une fois que j'aurai pris mes marques, je suis donc très content d'avoir trouvé ceci.

Je ne sais pas si je peux l'utiliser pour échanger des crypto-monnaies, mais je ne sais pas si je peux l'utiliser.

Je m'excuse si je ne me suis pas mieux préparé - j'ai juste fait ce commentaire après avoir regardé un peu partout - je viens de m'inscrire aujourd'hui.

Merci !

RayRay

RR

 
@rrb1002 #: nouveau dans MQL4 et maintenant MQL5....

Vous avez des articles qui décrivent comment faire les choses plus en détail.

La base de code contient des exemples de code écrits par des utilisateurs allant du débutant absolu au développeur hautement qualifié.

Et vous avez la version en ligne de la documentation (également disponible dans MetaEditor).

rrb1002 #: oh, puis-je l'utiliser pour échanger des crypto-monnaies ?

Vous pouvez négocier tout ce que votre courtier propose, y compris les cryptomonnaies.

 
Je ne comprends pas bien. Je pensais qu'il s'agissait du langage MQL4. Le nouveau langage à venir est-il MQL5 ? MQL4 sera-t-il compatible avec MQL5 et, espérons-le, ne sera-t-il qu'une extension du langage MQL4 ?
 
@rrb1002 #: Je ne comprends pas bien. Je pensais qu'il s'agissait du langage MQL4. Le nouveau langage à venir est-il MQL5 ? MQL4 sera-t-il compatible avec MQL5 et, espérons-le, ne fera-t-il qu'étendre le langage MQL4 ?

MQL5 existe depuis plus d'une décennie. Il n'est pas "nouveau". Il est arrivé à maturité.

MetaTrader 4 et MQL4 n'ont pas été développés depuis plusieurs années maintenant (probablement 6-8 ans, je pense). Seules des mises à jour critiques sont effectuées sporadiquement.

Les langages sont très similaires et de nombreuses fonctionnalités sont quelque peu compatibles, mais les fonctionnalités de trading sont complètement différentes et pas du tout compatibles.