Type/to search
8
Follow
1364
Followers
Description du mécanisme de backtesting du niveau de simulation quantitative de l'inventeur
Tutorials
Created 2017-02-07 13:04:57  Updated 2023-09-07 17:49:15
 34
 15370

Description du mécanisme de backtesting du niveau de simulation quantitative de l'inventeur


  • 1 - Retour sur l'architecture

    La stratégie de l'inventeur est un processus de contrôle complet, qui consiste à effectuer des enquêtes en continu à une certaine fréquence. Les données renvoyées par l'API de transaction de chaque situation sont également en fonction du moment de l'appel et simulent le fonctionnement réel.

  • 2 Différence entre la détection de niveau analogue et la détection de niveau disque

    • Rétro-mesure au niveau de l'analogie

      Le repérage de niveau analogique est une simulation d'une séquence de temps d'insertion de données de ticker dans la barre de données de la barre K de base, selon un algorithme dans un cadre composé de valeurs de la barre de données de la barre K de base, les valeurs maximale, minimale, d'ouverture et de fermeture.

    • Retour au niveau du disque

      La rétroaction au niveau du disque est la valeur réelle des données au niveau du ticker dans la séquence de temps de la barre. Pour les stratégies basées sur des données au niveau du ticker, l'utilisation de la rétroaction au niveau du disque est plus proche de la valeur réelle.
      Les tickers sont des données enregistrées en temps réel, et non générées par simulation.

  • 3 - Système de rétroaction de niveau analogique - ligne K inférieure

    Il n'y a pas d'option de ligne K sous-jacente pour la détection au niveau du disque (parce que les données de ticker sont réelles, aucune ligne K sous-jacente n'est utilisée pour simuler la génération).
    Dans le cas d'une simulation au niveau de l'analogie, le ticker généré par la simulation de données K-lignes. Ces données K-lignes sont les lignes K-lignes. Dans le cas d'une simulation au niveau de l'analogie, la période de ligne K-ligne de base doit être inférieure à la période d'appel de l'API pour obtenir des lignes K-lignes lors de l'exécution de la stratégie.

  • 4, comment les lignes K sous-jacentes génèrent des données de ticker

    Le mécanisme de génération des tickers analogiques de la ligne K de base est le même que celui de MT4.

    img
    img
    img
    img

  • 5/ L'algorithme qui génère les données des tickers

    Les algorithmes pour simuler les données de tick sur les lignes K sous-jacentes sont les suivants:

function recordsToTicks(period, num_digits, records) { if (records.length == 0) { return [] } var ticks = [] var steps = [0, 2, 4, 6, 10, 12, 16, 18, 23, 25, 27, 29] var pown = Math.pow(10, num_digits) function pushTick(t, price, vol) { ticks.push([Math.floor(t), Math.floor(price * pown) / pown, vol]) } for (var i = 0; i < records.length; i++) { var T = records[i][0] var O = records[i][1] var H = records[i][2] var L = records[i][3] var C = records[i][4] var V = records[i][5] if (V > 1) { V = V - 1 } if ((O == H) && (L == C) && (H == L)) { pushTick(T, O, V) } else if (((O == H) && (L == C)) || ((O == L) && (H == C))) { pushTick(T, O, V) } else if ((O == C) && ((O == L) || (O == H))) { pushTick(T, O, V / 2) pushTick(T + (period / 2), (O == L ? H : L), V / 2) } else if ((C == H) || (C == L)) { pushTick(T, O, V / 2) pushTick(T + (period * 0.382), (C == L ? H : L), V / 2) } else if ((O == H) || (O == L)) { pushTick(T, O, V / 2) pushTick(T + (period * 0.618), (O == L ? H : L), V / 2) } else { var dots = [] var amount = V / 11 pushTick(T, O, amount) if (C > O) { dots = [ O - (O - L) * 0.75, O - (O - L) * 0.5, L, L + (H - L) / 3.0, L + (H - L) * (4 / 15.0), H - (H - L) / 3.0, H - (H - L) * (6 / 15.0), H, H - (H - C) * 0.75, H - (H - C) * 0.5, ] } else { dots = [ O + (H - O) * 0.75, O + (H - O) * 0.5, H, H - (H - L) / 3.0, H - (H - L) * (4 / 15.0), H - (H - L) * (2 / 3.0), H - (H - L) * (9 / 15.0), L, L + (C - L) * 0.75, L + (C - L) * 0.5, ] } for (var j = 0; j < dots.length; j++) { pushTick(T + period * (steps[j + 1] / 30.0), dots[j], amount) } } pushTick(T + (period * 0.98), C, 1) } return ticks }

Par conséquent, les fluctuations de prix sur la séquence temporelle peuvent survenir lors de l'utilisation de la rétro-évaluation au niveau de l'analogie.

Related Recommendations
Comment
All comments (7)

    带上下影线的K线为什么模拟成12个tick呢?仅仅是为了增加tick数量吗?

    3 years ago

    可以自定义增加模拟点位吗,目前的模拟级别生成的tick点位与实际差异很大

    4 years ago

    底层K线周期使用一分钟,数据粒度就很小了。可以用实盘级别回测,或者使用自定义数据源,提供自己收集的数据也可以。

    4 years ago

    合约回测能模拟爆仓吗?

    4 years ago

    本身回测系统没有爆仓机制, 不过自己在策略中可以增加爆仓检测。持仓亏损的数值大于账户可用资产就是爆仓了。

    4 years ago

    模拟回测的周期里面,1小时之后就直接是1天了,为什么没有2小时,4小时,6小时,12小时,这些常用的周期?

    9 years ago

    回测系统 设定了 一些 比较常用的周期,如果 需要任意周期的K线 可以看下 “策略广场” 有一些 可以转换 K线周期的模版 。

    9 years ago
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)