Ticks history
DonnéesPas d'authentificationObtenez les données de tick historiques pour un symbole. Les champs requis de la réponse ont été modifiés, la validation assouplie et de nouvelles options de paramètres ajoutées.
6 modifications majeures
history et candles ont changé. Le champ echo_req n'est plus garanti.Comparaison rapide
Modifications majeures
1. Champs requis dans l'objet history modifiés
Les tableaux prices et times à l'intérieur de l'objet history sont désormais des champs requis.
- Ancienne version :
pricesettimesétaient tous deux optionnels. - Nouveau : Les deux sont désormais requis lorsque l'objet
historyest présent.
Modification requise : Vous pouvez désormais accéder en toute sécurité à history.prices et history.times sans vérification null lorsque l'objet history existe.
2. Champs obligatoires dans le tableau de bougies modifiés
Toutes les propriétés de bougie (close, epoch, high, low, open) sont désormais requises.
- Ancienne version : Toutes les propriétés de chandelier étaient facultatives.
- Nouvelle version : Les cinq propriétés sont requises dans chaque objet bougie.
Modification requise : Vous pouvez maintenant déstructurer en toute sécurité toutes les propriétés de chandelier sans vérifications null.
3. echo_req n'est plus requis dans la réponse
Le champ echo_req n'est plus un champ requis dans la réponse.
- Ancienne version :
echo_reqetmsg_typeétaient requis. - Nouvelle version : Seul
msg_typeest requis.
Modification requise : Ajoutez des vérifications d'existence avant d'accéder à response.echo_req.
4. Restriction d'énumération de granularité supprimée
Le paramètre granularity n'a plus un ensemble fixe de valeurs autorisées.
- Ancienne version : Limité à [60, 120, 180, 300, 600, 900, 1800, 3600, 7200, 14400, 28800, 86400].
- Nouvelle version : N'importe quelle valeur entière est acceptée.
Modification requise : Vous avez maintenant plus de flexibilité dans les valeurs de granularité.
5. Modèles de validation des entrées supprimés
La validation du modèle sur les paramètres ticks_history et end a été supprimée.
- Legacy:
ticks_historyrequired pattern^\w{{2,30}}$,endrequired pattern^(latest|[0-9]{{1,10}})$. - Nouvelle version : Aucune validation de modèle sur ces paramètres.
6. subscribe et adjust_start_time acceptent maintenant 0
Les deux paramètres acceptent désormais 0 comme valeur valide en plus de 1.
- Ancienne version : Les deux paramètres n'acceptaient que
1. - Nouvelle version : Les deux acceptent
0ou1.
Modification requise : Il s'agit d'une nouvelle fonctionnalité. Utilisez subscribe: 0 pour les requêtes ponctuelles sans abonnement.
Structure de la demande
{
"ticks_history": "frxEURUSD",
"end": "latest",
"start": 1234567890,
"style": "ticks",
"count": 100,
"adjust_start_time": 1, // Only 1 allowed
"subscribe": 1 // Only 1 allowed
}{
"ticks_history": "frxEURUSD",
"end": "latest",
"start": 1234567890,
"style": "ticks",
"count": 100,
"adjust_start_time": 1,
"subscribe": 1
}Structure de réponse
{
"echo_req": { // REQUIRED in legacy
"ticks_history": "frxEURUSD",
"end": "latest"
},
"history": {
"prices": [1.0850, 1.0851], // Optional
"times": [1234567890, 1234567891] // Optional
},
"pip_size": 5,
"msg_type": "history"
}{
"echo_req": { // Now OPTIONAL
"ticks_history": "frxEURUSD",
"end": "latest"
},
"history": {
"prices": [1.0850, 1.0851], // REQUIRED
"times": [1234567890, 1234567891] // REQUIRED
},
"pip_size": 5,
"msg_type": "history" // Only required field
}Exemples de code
async function getTicksHistory(symbol) {
const request = {
ticks_history: symbol,
end: "latest",
start: Date.now() / 1000 - 86400,
style: "ticks",
count: 100,
adjust_start_time: 1, // Only 1 is valid
subscribe: 1 // Only 1 is valid
};
ws.send(JSON.stringify(request));
ws.onmessage = (event) => {
const response = JSON.parse(event.data);
// echo_req is guaranteed
console.log('Request:', response.echo_req);
if (response.msg_type === 'history') {
// history.prices and history.times may be missing
if (response.history) {
if (response.history.prices) {
console.log('Prices:', response.history.prices);
}
if (response.history.times) {
console.log('Times:', response.history.times);
}
}
}
if (response.msg_type === 'candles') {
response.candles?.forEach(candle => {
// Each property may be missing
const close = candle.close ?? null;
const open = candle.open ?? null;
const high = candle.high ?? null;
const low = candle.low ?? null;
console.log({ open, high, low, close });
});
}
};
}D'autres questions ? Nous contacter