Propiedades de la Estrategia

Cada estrategia de Pine tiene una serie de propiedades que determinan su comportamiento: 

  1. Capital Inicial
  2. Moneda Base
  3. Tamaño de la Orden
  4. Piramidación
  5. Comisión
  6. Verificar el Precio de las Órdenes Limitadas
  7. Deslizamiento
  8. Margen
  9. Recálculo 

Están disponibles en la configuración de la estrategia, en la pestaña Propiedades:

Cada uno de los parámetros especificados en las propiedades de la estrategia pueden modificarse editando los argumentos de la llamada a la función strategy() en el correspondiente script de Pine:

strategy(title, initial_capital, currency, default_qty_value, default_qty_type, pyramiding, commission_type, commission_value, backtest_fill_limits_assumption, slippage, process_orders_on_close, margin_long, margin_short, calc_on_order_fills, calc_on_every_tick)

Veamos cada parámetro de entrada en el menú Propiedades y su correspondiente parámetro en el lenguaje de Pine:

1 - Capital Inicial (parámetro: initial_capital) representa la cantidad de fondos iniciales disponibles para que la estrategia opere, en la moneda definida en Moneda Base. Por defecto, este valor es igual a 100.000. Es posible que tenga que aumentar este valor para que se produzcan operaciones con determinados símbolos.

2 - Moneda Base (parámetro: currency) especifica la moneda utilizada para los cálculos. Los resultados aparecen en la pestaña Probador de Estrategias (ganancias, pérdidas, reducción, etc.) se expresan en esta moneda. Las opciones disponibles son:

Por defecto, USD, EUR, AUD, GBP, NZD, CAD, CHF, HKD, JPY, NOK, SEK, SGD, TRY, ZAR. Si se selecciona la opción por Defecto, la estrategia utilizará la divisa por defecto para este símbolo y no habrá conversión de divisas.

3 - Tamaño de la Orden (parámetros: default_qty_value, default_qty_type). Esto requiere un valor y un modo de cálculo. Tenga en cuenta que los valores calculados pueden estar sujetos a restricciones debido a las cantidades mínimas negociables para el símbolo:

  • Contratos (argumento: strategy.fixed) - la estrategia entrará con el número especificado de contratos/acciones/lotes.
  • Cantidad en Moneda (argumento: strategy.cash) - la estrategia entrará con la cantidad especificada en moneda base.
  • Porcentaje de Capital (argumento: strategy.percent_of_equity) - el tamaño de las posiciones se calculará como un porcentaje del capital disponible cuando se abra la operación.

4 - Piramidación (parámetro: pyramiding) especifica el número máximo de entradas sucesivas permitidas en la misma dirección. Cuando la piramidación está desactivada, la estrategia sólo puede abrir una posición larga o corta, incluso si se cumplen las condiciones de entrada. La piramidación sólo afecta a las entradas realizadas mediante la función strategy.entry(). No tiene efecto en las órdenes creadas mediante strategy.order().

5 - Comisión (parámetros: tipo_comisión, valor_comisión). Es la cantidad que se paga comisiones por cada operación. Se debe proporcionar un valor y un modo de cálculo. Tenga en cuenta que la comisión se aplica tanto a las entradas como a las salidas, y que cuando se utiliza un porcentaje, la comisión calculada variará con el valor de la transacción:

  • Porcentaje del Valor Transaccionado (argumento: strategy.commission.percent) - impone una comisión a cada orden igual al porcentaje especificado.
  • Moneda por Contrato (argumento: strategy.commission.cash_per_contract) - impone una comisión a cada contrato.
  • Moneda por Orden (argumento: strategy.commission.cash_per_order) - impone una comisión a cada orden.

6 - Verificar el Precio de las Ordenes Limitadas (parámetro: backtest_fill_limits_assumption) hace que las condiciones para entrar en una posición utilizando órdenes de límite sean más estrictas. Por defecto, este valor es 0, es decir, las órdenes limitadas se ejecutan en los datos históricos en cuanto se alcanza el precio indicado en la orden. Si el parámetro es distinto de cero, las órdenes limitadas pueden entrar en una posición dentro de la barra sólo si el precio de mercado ha superado el nivel de la orden limitada en el número de ticks especificado.

7 - Deslizamiento (parámetro: slippage) especifica el valor en ticks que se añade al precio de ejecución de las órdenes de mercado o stop. Se puede utilizar para tener en cuenta el spread.

8 - Margen para posiciones Largas/Cortas (parámetros: margin_long, margin_short) especifica el margen para cada operación, es decir, el porcentaje de la posición que el trader debe financiar. Por ejemplo, si el Margen para posiciones largas se fija en el 25%, el trader tiene que tener fondos suficientes para cubrir el 25% de la operación abierta y puede gastar potencialmente hasta el 400% de su capital por cada operación.

Si se ha abierto una operación y ésta empieza a perder dinero hasta el punto de que los fondos del trader no son suficientes para cubrir su parte de la operación, se produce una Llamada de Margen y se liquida a la fuerza una parte de la posición original. El número exacto de unidades que se liquidarán es 4 veces la cantidad que se necesita para cubrir simplemente la pérdida. Se calcula mediante el siguiente algoritmo:

9 - Las opciones de Recálculo especifican la frecuencia con la que se debe recalcular la estrategia. Por defecto, la estrategia se recalcula al cierre de cada barra, pero utilizando las opciones de abajo, también se puede recalcular:

  • Después de que se Complete la Orden (parámetro: calc_on_order_fills) - permite que la estrategia realice un cálculo adicional de la orden dentro de la barra inmediatamente después de que se complete una orden. Ese cálculo adicional ocurre tanto en las barras históricas como en las de tiempo real.
  • En Cada Tick (parámetro: calc_on_every_tick). Por defecto, las estrategias sólo calculan al cierre de las barras en tiempo real. Este parámetro permite que la estrategia calcule en cada actualización de las barras en tiempo real, como lo haría un estudio. Tenga en cuenta que los datos de los ticks se pierden cuando se actualiza el gráfico, por lo que las estrategias que utilicen esta opción volverán a pintarse. Este parámetro no afecta al comportamiento de las estrategias en barras históricas. También tenga en cuenta que las estrategias que utilicen esta opción no mostrarán resultados realistas en las barras históricas, ya que no contienen datos de ticks.