Type/to search
8
Follow
1364
Followers
Descripción del mecanismo de prueba retrospectiva del nivel de simulación cuantitativa del inventor
Tutorials
Created 2017-02-07 13:04:57  Updated 2023-09-07 17:49:15
 34
 15370

Descripción del mecanismo de prueba retrospectiva del nivel de simulación cuantitativa del inventor


  • 1 , la arquitectura de retroalimentación

    El inventor de la calibración de la retroalimentación de la política de programación es el proceso de control completo, el programa es una encuesta de seguimiento de una cierta frecuencia sin parar. Los datos devueltos por cada caso, la API de transacción es de acuerdo a la hora de la convocatoria, la simulación de la situación en el momento de la ejecución real. Pertenece a nivel onTick, no a nivel onBar de otros sistemas de retroalimentación.

  • 2. Diferencias entre la detección a nivel analógico y la detección a nivel de disco

    • Retroalimentación en el nivel de simulación

      El retroceso de nivel analógico es el resultado de la inserción de datos de ticker en la secuencia de tiempo de esta barra, de acuerdo con los datos de la línea K subyacente del sistema de retroceso, de acuerdo con un algoritmo en un marco compuesto por los valores de la barra K subyacente, el precio máximo, el precio mínimo, el precio de apertura y el precio de cierre.

    • Evaluación a nivel de disco duro

      La retroalimentación a nivel de disco real es el dato a nivel de ticker real en la secuencia temporal de Bar. Para las estrategias basadas en datos a nivel de ticker, el uso de retroalimentación a nivel de disco real es más cercano a la verdad.
      La retroalimentación a nivel de disco, ticker es el registro real de los datos, no la simulación generada.

  • 3 - Mecanismo de retroalimentación de nivel analógico - línea K de fondo

    La retroalimentación a nivel de disco no tiene opción de línea K subyacente (ya que los datos de ticker son reales, no se usa una línea K subyacente para simular la generación).
    En la retroalimentación de nivel de simulación, el ticker generado en la simulación basado en los datos de la línea K. Este dato de la línea K es la línea K subyacente. En el uso real de la retroalimentación de nivel de simulación, el ciclo de la línea K subyacente debe ser menor que el ciclo de la llamada a la API para obtener la línea K cuando se ejecuta la estrategia. De lo contrario, debido a que el ciclo de la línea K subyacente es mayor y la cantidad de tickers generados es insuficiente, la llamada a la API para obtener la línea K de la ciclo especificado, los datos tendrán errores.

  • 4. Cómo generar datos de ticker en la línea K subyacente

    El mecanismo para generar tickers analógicos de la línea K de la base es el mismo que el MT4.

    img
    img
    img
    img

  • 5. Código de algoritmo para generar datos de ticker

    El algoritmo específico para simular los datos de la línea K subyacente para los datos de tick:

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 }

Por lo tanto, el uso de la retroalimentación de nivel de simulación produce fluctuaciones de precios en la secuencia temporal.

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)