Entradas:
conjunto de barras forex OHLC de tamaño N, apalancamiento máximo L, por ejemplo 200:1, un diferencial fijo bid ask S, una ventana fija lookahead whipsaw W (por ejemplo 3 barras de largo, ver más abajo).
Resultado deseado:
una lista de tuplas {índice de la matriz, acción = Comprar mercado|Vender mercado|No hacer nada, apalancamiento, recuento de retenciones}
Con el beneficio de la retrospectiva, construya un algoritmo codicioso (al que le importa muy poco el riesgo) que tenga como objetivo extraer el mayor beneficio posible de los datos dados.
El spread bid ask asegura que inmediatamente después de abrir o cerrar una posición se incurra en una pequeña pérdida. La ventana fija de lookahead whipsaw asegura que algo no siempre elija el máximo apalancamiento. Por ejemplo, si W=3 significa que si algo hubiera aguantado sólo 3 barras más, la acción de whipsaw podría haber causado una grave erosión de las pérdidas y ganancias. Por lo tanto, debido a W se debe utilizar un apalancamiento ajustado que perjudique menos el saldo de la cuenta flotante ("equidad" en la jerga forex).
Ejemplo de salida deseada:
[barra 0, Comprar, 180:1, 18] # La posición se cierra después de 18 barras, poco peligro de whipsaw
[bar 19, DoNothing, Nil, 12] # no hay acción durante 12 barras posiblemente debido al movimiento lateral y la propagación
[bar 32, Sell, 13:1, 11] # La posición se cierra después de 11 barras, alto peligro de whipsaw por delante
...etc...
Por favor, orienten cómo resolver esto con una torre numérica de python o R. No he hecho mucho para resolver esto porque no sé cómo hacerlo. Nota: el tamaño de la matriz de entrada puede ser bastante grande, así que si un máximo global es difícil de calcular en tiempo polinómico entonces un máximo local "suficientemente bueno" está bien.
Actualización: la única aclaración que merece la pena añadir es el efecto de W en el apalancamiento. Algunos ejemplos - suponga que cualquier barra en W llevó la P&L de la operación actual a un territorio negativo, en este caso debería salir DoNothing; suponga que cualquier barra en W llevó la P&L de la operación actual a un territorio ligeramente positivo, digamos +1%, en este caso la pregunta es cuánto deberíamos reducir el apalancamiento - no lo sé pero una función lineal puede ser apropiada, por ejemplo, 1% del máximo 200:1, es decir, 2:1 para las barras que preceden a W. Por ejemplo, el 1% del máximo de 200:1, es decir, 2:1 para las barras que preceden a W. No hace falta decir que cada operación comienza con el máximo apalancamiento y se ajusta después cuando se alcanza W.