Estrategia de orden de tiempo


Fecha de creación: 2023-09-28 15:26:20 Última modificación: 2023-09-28 15:26:20
Copiar: 4 Número de Visitas: 659
1
Seguir
1617
Seguidores

Descripción general

La idea principal de la estrategia de pedido a tiempo es comprar y vender operaciones en un momento personalizado por el usuario. La estrategia permite al usuario establecer un momento preciso en el que venderá la posición que tiene en ese momento y luego comprará a un precio límite del 1% por debajo del precio actual. Esto permite realizar reajustes periódicos de posición a una hora específica todos los días.

Principio de estrategia

La estrategia primero obtiene la hora y el minuto personalizados por el usuario a través de la función de entrada, y luego genera la hora de ejecución del pedido con la función de timestamp. Si la hora actual es después del punto de tiempo especificado, se activa la operación de venta y compra.

En concreto, la estrategia primero determina si la hora actual está dentro del rango de las fechas de inicio y finalización especificadas por el usuario. Si se satisface, se venderá la posición que se tiene en ese momento a la hora de ejecución de la orden especificada, a precio de mercado previo, y luego se comprará a precio límite al 99% del precio actual. De esta manera, se realiza una reajuste de posición al precio del 1% por debajo del precio actual en un momento específico.

Análisis de las ventajas

La mayor ventaja de esta estrategia es que se puede reajustar periódicamente la posición en un punto específico de tiempo, sin necesidad de operaciones manuales, reduciendo los costos de mano de obra. Además, cada vez que se realice una reubicación a un precio ligeramente inferior al precio actual, se puede obtener una cierta ventaja de compra ultra baja.

Las ventajas concretas incluyen:

  1. La operación está totalmente automatizada y reduce los costos de mano de obra.

  2. Se puede reajustar la posición periódicamente en un momento determinado.

  3. Cada reajuste de posición ofrece una oportunidad de compra ultrabaja de un poco menos del 1% del precio actual.

  4. Se puede personalizar el momento de la transferencia y el ajuste flexible.

  5. Se puede personalizar la fecha de inicio y finalización del ciclo de desmontaje para facilitar la optimización de la retroalimentación.

Análisis de riesgos

La estrategia también tiene algunos riesgos a tener en cuenta:

  1. Si no se elige el momento adecuado para el ajuste periódico, se puede perder una mejor oportunidad de compra o vender en el momento inadecuado.

  2. Si el precio de compra es solo un 1% inferior al precio de venta, es posible que no se obtenga suficiente diferencia de compra ultrabaja en cada período de liquidación.

  3. Las ventas y compras se realizan a precios de mercado y pueden verse afectadas por algún tipo de deslizamiento.

  4. Si la estrategia sólo opera en un punto de tiempo específico, no se puede administrar el mercado entre ese punto de tiempo.

  5. El cambio frecuente de posición genera más gastos de transacción.

Resolución de las mismas:

  1. Seleccionar el momento adecuado para el cambio de posición, combinado con otros indicadores técnicos.

  2. Se puede agregar el parámetro de diferencia de precio de compra si se desea.

  3. Es importante elegir una variedad de transacciones con una mayor profundidad y menor volatilidad.

  4. La gestión del riesgo durante el período de no desinversión puede combinarse con otras estrategias.

  5. Controlar adecuadamente la frecuencia de la negociación, equilibrar las ventajas de la negociación y los costos de transacción.

Dirección de optimización

La estrategia puede ser optimizada en las siguientes direcciones:

  1. Optimización de la elección de los puntos de negociación, combinando las características del ciclo intradiario de las variedades de negociación para elegir el punto de negociación óptimo.

  2. Añadir otros indicadores técnicos para evitar el cambio de posición en momentos desfavorables. Por ejemplo, indicadores de juicio de tendencias como la combinación de medias móviles.

  3. Optimización de los parámetros de compra ultrabajos para equilibrar la ventaja obtenida y el costo de la transacción.

  4. El uso de un bloqueador de pérdidas de seguimiento para administrar las posiciones en el intervalo de almacenamiento.

  5. El entrenamiento de datos históricos en combinación con algoritmos de aprendizaje automático para optimizar automáticamente los puntos de tiempo de despacho.

  6. Se ha añadido la función de recuperación de derechos, que permite ajustar los puntos de ajuste en momentos como la división de acciones, dividendos y otros.

Resumir

En general, las estrategias de órdenes a tiempo pueden automatizar el proceso de negociación y reducir los costos de operación manual mediante el ajuste periódico de las posiciones. La estrategia tiene un gran espacio de optimización, que se puede mejorar desde la selección del punto de negociación, la configuración de los parámetros de compra, el stop loss y la optimización de los algoritmos.

Código Fuente de la Estrategia
/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/








// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ytrevor

//@version=4
strategy("Order At Specified Time", overlay=true)


// -- These inputs are for customizing the times of your desired orders -- //
customHour = input(title="Hour for Order Execution", type=input.integer, defval=01, minval=00, maxval=24) //
customMinute = input(title="Minute for Order Execution", type=input.integer, defval=00, minval=00, maxval=59)
targetTime = timestamp("UTC", year, month, dayofmonth, customHour, customMinute, 00) //Order executes at this time

inDateRange = (time >= targetTime) and (time <= targetTime) //Orders are placed everyday at 01:00 UTC, or any other time specified via input


// -- These inputs are for back testing. Feel free to change the start and end dates via input -- // 
startDay = input(title="Start Day", type=input.integer, defval=10, minval=1, maxval=31) 
startMonth = input(title="Start Month", type=input.integer, defval=2, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer, defval=2021)
endDay = input(title="End Day", type=input.integer, defval=22, minval=1, maxval=31)
endMonth = input(title="End Month", type=input.integer, defval=3, minval=1, maxval=12)
endYear = input(title="End Year", type=input.integer, defval=2021)

betweenDates = true


// -- Order execution --  //
if betweenDates
    buyPrice = close*0.99 //Buy at 1% lower than selling price
    strategy.entry("Sell", strategy.short, when=inDateRange) //Sell at 01:00 UTC, or at any other time specified via input
    strategy.entry("Buy", strategy.long, limit=buyPrice, when=inDateRange) //Buy limit order placed at the same time, 1% lower than selling price