Código para Amibroker:
Necesito crear un sistema de genere señales de compra/venta para una determinada divisa, en concreto €/$.
Marco temporal diario.
El precio del par generaría las siguientes señales iniciales:
- operación en largo, si cotización del precio <= 1,3000
- operación en corto, si cotización del precio => 1,3000
Operaciones en largo (cotización <= 1,3000):
- si el par cotiza, por ejemplo a 1,2950, habría activado la zona de validación de operación en largo;
- la/s compra/s se efectuarían cada 0,01 pips aproximadamente, es decir, una vez el precio alcanzase el valor 1,2900, optaríamos a comprar 25.000 uds. monetarias a 1,2900. Una vez ejecutada esta compra, se activaría automáticamente la orden de venta a aproximadamente 0,0090 pips (1,2990), por esas 25.000 uds. monetarias.
- Indistintamente de que se vendan o no, por no alcanzarse el precio necesario, el sistema queda abierto a comprar otras 25.000 uds. monetarias si se alcanzara el 1,2800, generando la orden de venta de estas 25.000 uds. monetarias a 0,0090 pips (1,2890)
- El sistema seguiría generando ordenes de compra cada 0,010 pips y caso de alcanzarse generar la venta correspondiente, a una distancia de 0,0090. En resumen quedaría:
• comprar a 1,2900, orden de venta 1,2990
• comprar a 1,2800, orden de venta 1,2890
• comprar a 1,2700, orden de venta 1,2790
• comprar a 1,2600, orden de venta 1,2690
• …
• compras cada 0,010, ventas a una distancia de 0,0090 de la compra.
- Si se produce la venta de cualquiera de los niveles comprados por ejemplo, tras comprar a 1,2700 se llega a uno 1,2790 (se cierra la venta) y el precio sube hasta 1,2850, lo que no produciría ninguna venta más, pero ocurre que llega nuevamente a 1,2700, aquí se volvería a producir una nueva compra de 25.000 uds. monetarias, con orden de vender nuevamente a 1,2790.
Operaciones al corto (cotización >= 1.30000):
- si el par cotiza, por ejemplo a 1,3050, habría activado la zona de validación de operación en corto;
- la/s venta/s se efectuarían cada 0,01 pips aproximadamente, es decir, una vez el precio alcanzase el valor 1,3100, optaríamos a vender 25.000 uds. momentarias a 1,3100. Una vez ejecutada esta venta, se activaría automáticamente la orde de venta a aproximadamente 0,0090 pips (1,3010), por esas 25.000 uds. monetarias.
- Indistintamente de que se compren o no, por no alcanzarse el precio necesario, el sistema queda abierto a generar ventas por otras 25.000 uds. monetarias si se alcanzara el 1,3200, generando la orden de compra de estas 25.000 uds. monetarias a 0,0090 pips (1,3110)
- El sistema seguiría generando ordenes de venta cada 0,010 pips y caso de alcanzarse generar la compra correspondiente, a una distancia de 0,0090. En resumen quedaría:
• vender a 1,3100, orden de compra 1,3010
• vender a 1,3200, orden de compra 1,3110
• vender a 1,3300, orden de compra 1,3210
• vender a 1,3400, orden de compra 1,3310
• …
• ventas cada 0,010, compras a una distancia de 0,0090 de la venta.
- Si se produce la compra de cualquiera de los niveles comprados por ejemplo, tras vender a 1,3400 se llega a uno 1,3310 (se cierra la compra) y el precio baja hasta 1,3350, lo que no produciría ninguna compra más, pero ocurre que llega nuevamente a 1,3400, aquí se volvería a producir una nueva compra de 25.000 uds. monetarias, con orden de vender nuevamente a 1,3310.
Busco con este sistema para distintos periodos de tiempo calcular mi máximo drawdown, con la intensión de optimizar para este par €/$, si esas entradas cada 0,0100 pips van bien, o por el contrario puedo encontrar otro valor, así como las salidas a 0.0090 pips son todo lo deseables que se pretende, o por el contrario hay valores que ofrecen mayor recompensa.