J'ai commencé à douter de la fonctionnalité de cette conception. J'ai eu beau essayer de comprendre la logique du bloc, je n'y suis pas parvenu (et j'ai bien essayé)....
Qu'est-ce que le doute ? Il compte correctement.
//+------------------------------------------------------------------+//|test.mq5 |//+------------------------------------------------------------------+#include <InitMQL4.mqh>double close[];
int total,count;
datetime time[];
//+------------------------------------------------------------------+//||//+------------------------------------------------------------------+voidOnStart()
{
count=Bars(_Symbol,_Period);
total=CopyClose(_Symbol,_Period,0,count,close);
total=CopyTime(_Symbol,_Period,0,count,time);
ArraySetAsSeries(time,true);
ArraySetAsSeries(close,true);
int N=7;
int shift=iBarShiftMQL4(_Symbol,_Period,time[N]);
Print("TIME",time[N],"BAR=",shift," CLOSE=",close[shift]);
}
//+------------------------------------------------------------------+int iBarShiftMQL4(string symbol,
int tf,
datetime time,
bool exact=false)
{
if(time<0) return(-1);
ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
datetime Arr[],time1;
CopyTime(symbol,timeframe,0,1,Arr);
time1=Arr[0];
if(CopyTime(symbol,timeframe,time,time1,Arr)>0)
return(ArraySize(Arr)-1);
elsereturn(-1);
}
//+------------------------------------------------------------------+
Encore une fois, avez-vous lu la fonction sur laquelle vous écrivez ????
Sur mcl4, elle est écrite exactement comme suit
double iClose(
string symbol, int timeframe, int shift)
Renvoie la valeur du prix de clôture de la barre du graphique correspondant(symbole, période) spécifié par le paramètre shift. En cas d'erreur, la fonction renvoie 0. Pour obtenir plus d'informations sur l'erreur, appelez la fonction GetLastError(). Pour le graphique actuel, les informations sur les prix de clôture se trouvent dans le tableau prédéfini Close[].
boolSetIndexBuffer(
int index, // index de la mémoire tampondouble buffer[], // tableauENUM_INDEXBUFFER_TYPE data_type // ce que nous allons stocker
);
l'autre jour, quelqu'un a suggéré un moyen astucieux de créer un environnement μl4
Parce que si vous l'ouvrez, la question se pose, et la signification de ce qui est écrit ci-dessus ????.
et aussi au moins collecter les fonctions pour lesquelles toutes les questions sont résolues et procéder à l'étude des erreurs dans le reste.
Il y a beaucoup de solutions sur ce sujet dans les bibliothèques privées depuis longtemps.
Moi, par exemple, j'utilise IsTesting() et des choses similaires depuis le tout début, et tout a été résolu avec la date et l'heure depuis longtemps (bien sûr, il y a d'autres solutions)....
Une autre chose est la présence de telles "solutions dépassées" dans MT5 lui-même...
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
J'ai commencé à douter de la fonctionnalité de cette conception. J'ai eu beau essayer de comprendre la logique du bloc, je n'y suis pas parvenu (et j'ai bien essayé)....
Qu'est-ce que le doute ? Il compte correctement.
Quel est le problème ? Il compte correctement.
Et maintenant, le tour de passe-passe
1. Dans MT4, nous écrivons cette ligne et exécutons le code sur H4
Ensuite, nous faisons la même chose avec MT5 et la chaîne.
Le résultat est 8.
2. Ensuite, nous faisons exactement la même opération, mais avec D1.
Le résultat est le suivant : MT4 renvoie - 1 et MT5 renvoie 0.
Maintenant, qui peut me dire dans quelle mesure cette implémentation de iBarShiftMQL4 correspond à ce qui est nécessaire...
Essayez celui-ci :
Encore une fois, avez-vous lu la fonction sur laquelle vous écrivez ????
Sur mcl4, elle est écrite exactement comme suit
Pour le graphique actuel, les informations sur les prix de clôture se trouvent dans le tableau prédéfini Close[].
et vous avez....
que regardent les modérateurs...
Merci, CoreWinTT.
Fonctions corrigées : iClose, iLow, iHigh, iOpen, iTime, iVolume. Elles renvoient 0 au lieu de -1 en cas d'erreur.
et quand seront-ils dans la bibliothèque ? ???
pour qu'ils soient au moins
Parce que si vous l'ouvrez, la question se pose, et la signification de ce qui est écrit ci-dessus ????.
et aussi au moins collecter les fonctions pour lesquelles toutes les questions sont résolues et procéder à l'étude des erreurs dans le reste.
l'autre jour, quelqu'un a suggéré un moyen astucieux de créer un environnement μl4
en utilisant des tableaux de
mais il sera difficile de les utiliser car ils ont un état constant.
Vous ne pouvez pas créer de tampons globaux
car ils doivent être déclarés à l'aide de
SetIndexBuffer
Associe le tampon indicateur spécifié à un tableau dynamique unidimensionnel de type double déclaré globalement.
Les tampons globaux ne peuvent être déclarés qu'avec le type double, et les volumes et les tableaux de type date-heure ne passeront pas.
Il ne reste plus qu'à initier ces tableaux à l'intérieur du module mql4.
ce qui revient pratiquement à réécrire l'indicateur....
et quand seront-ils dans la bibliothèque ? ???
et quand seront-ils dans la bibliothèque ? ???
pour qu'ils soient au moins
Parce que si vous l'ouvrez, la question se pose, et la signification de ce qui est écrit ci-dessus ????.
et aussi au moins collecter les fonctions pour lesquelles toutes les questions sont résolues et procéder à l'étude des erreurs dans le reste.
Il y a beaucoup de solutions sur ce sujet dans les bibliothèques privées depuis longtemps.
Moi, par exemple, j'utilise IsTesting() et des choses similaires depuis le tout début, et tout a été résolu avec la date et l'heure depuis longtemps (bien sûr, il y a d'autres solutions)....
Une autre chose est la présence de telles "solutions dépassées" dans MT5 lui-même...