Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Quand non-zéro De l'intérieur CopyTicks cherche (probablement une recherche binaire) un endroit pour commencer - index dans la base interne.
Veuillez ajouter une fonction qui renvoie l'index dans la base de données par heure. Il sera alors possible de résoudre cette tâche de manière optimale
Quel est l'algorithme optimal (le plus rapide) pour obtenir les ticks de_time à_time ?
Pour de bonnes raisons, le sujet "Qu'est-ce qu'une tique ?" a été supprimé. Je vais donner certaines de mes réponses à partir de l 'histoire qui a survécu.
В парадигме MT тик - это то, что пришло от биржи. Единица стрима(-ов). Поэтому два подряд идущих тика могут полностью совпадать (MqlTick), но при этом не обозначать одно и то же событие. Помимо MqlTick-данных есть еще номер тика, который не показывается в MT. И есть MT-нюанс с тиками, когда сама история тиков переписывается задним числом из-за нескольких источников получения тиков.
deux ticks consécutifs (provoquant un événement Tick/Calculate) peuvent être identiques dans la structure MqlTick (tous les prix, volumes, temps et drapeaux sont égaux), mais sont en réalité différents. Bid/Ask est toujours un multiple de TickSize. Last (hors bourse) peut ne pas être un multiple de TickSize. TickSize peut être plusieurs fois plus grand que Point (regardez RTS, par exemple). Il n'est donc pas tout à fait correct de parler de Point dans ce cas.
Cela peut être utile. SymbolInfoTick est une fonction non synchronisée. Cela signifie qu'il peut renvoyer différents ticks à différents endroits de OnTick. De plus, même si vous appelez SymbolInfoTick au début de OnTick, le tick résultant ne sera pas l'initiateur de l'événement Tick pour lequel OnTick est déclenché. Les champs de sa structure MqlTick ne seront pas égaux au tick provenant de la bourse, car ces champs sont synthétisés par le terminal lui-même et sont égaux aux valeurs Marketwatch.
{
static bool FirstRun = true;
if (FirstRun)
{
MqlTick Ticks[1];
if (SymbolInfoTick(_Symbol, Ticks[0]))
Print(CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, Ticks[0].time_msc + 1)); // Сколько тиков со временем больше последнего
FirstRun = false;
}
}
Résultat
Devrait renvoyer zéro, mais renvoie un. Ticks[] ne change pas. Bug !
Lancement d'un conseiller expert dans le testeur de stratégie
{
static bool FirstRun = true;
if (FirstRun)
{
MqlTick Ticks[1];
if (SymbolInfoTick(_Symbol, Ticks[0]))
Print(CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, Ticks[0].time_msc + 1)); // Сколько тиков со временем больше последнего
FirstRun = false;
}
}
Résultat
Il devrait renvoyer zéro, mais il renvoie un. Dans ce cas, Ticks[] ne change pas. Bug !
Est-ce que ça pourrait être le week-end ?
De l'aide. CopyTicks La fonction récupère le ticks_array des ticks accumulés par le terminal pendant la session de travail en cours.
Est-ce que ça pourrait être le week-end ?
Dans le fichier d'aide. CopyTicks La fonction récupère les ticks accumulés par le terminal pendant la session de travail en cours dans le tableau ticks_array.
Problème de performance de CopyTicks.
Robo
BCS
Il s'agit des données de l'indicateur tick. Dans les deux cas, il y a 2 à 3 mille tiques téléchargées. Mais en robo, il est plus d'un ordre de grandeur plus rapide.
J'ai vu les mêmes vitesses sur le marché des changes dans la journée - le marché était alors plus agile. Copitix semble ralentir une veille active du marché.
Le seul graphique et le seul indicateur dans les deux cas. Et kopitix avait certainement déjà des citations téléchargées dans la base de données/cache.
1) les piles étaient-elles sur les deux ?
2) les ticks de commerce et d'information ont-ils été séparés dans leur fil d'origine? Les fils complexes nécessitent un nouveau calcul et une émission simple.
3) quelle était la demande réelle ?
4) par combien de requêtes les résultats ont-ils été validés ? Suivi des règles d'essai et de la manière exacte dont elles ont été suivies : prise en compte du démarrage à froid, élimination des valeurs aberrantes, répétabilité des résultats par série, code de reproduction.
De manière générale, les résultats numériques doivent être précédés d'un code exact afin que chacun puisse les reproduire. Sinon, il est inutile d'en discuter.
1) les piles étaient-elles sur les deux ?
2) les ticks de commerce et d'information ont-ils été séparés dans leur fil d'origine? Les fils complexes nécessitent un nouveau calcul et une émission simple.
3) quelle était la demande réelle ?
4) par combien de requêtes les résultats ont-ils été validés ? Suivi des règles d'essai et de la manière exacte dont elles ont été suivies : prise en compte du démarrage à froid, élimination des valeurs aberrantes, répétabilité des résultats par série, code de reproduction.
De manière générale, les résultats numériques doivent être précédés d'un code exact afin que chacun puisse les reproduire. Sinon, il n'y a pas lieu d'en discuter.
Je vous ai donné un lien vers le code exact.
Nous allons vérifier.
Mais sur l'absence d'un gobelet dans l'un des serveurs, il y a de gros doutes. Le fait que le culbuteur ne soit pas rendu n'a aucune importance. Si un symbole en dispose, ses données sont toujours présentes et un algorithme d'émission plus complexe fonctionne lors de la demande de ticks.