Sistema aleatorio Ibex

  Hace un tiempo subí un video que habla de la importancia relativa que tiene dedicar tiempo a las salidas de las operaciones en lugar de a las entradas. Pueden encontrarlo aquí.

Para realizar ese video programé un sistema totalmente "tonto" que entra al mercado indistintamente corto o largo aleatoriamente. He recibido algunas consultas sobre el funcionamiento del sistema. Intentaré contestarlas, pero es que realmente no hay mucho que contar. El sistema, aunque no lo parezca, es un sistema perdedor en el largo plazo.

He ejecutado el sistema en un gráfico de barras diarias (aunque es un aspecto que no tiene la menor importancia). Básicamente lo que hace el sistema es evaluar en cada barra dos cosas. Primero mira si hay o no abierta una posición. Si hay una posición abierta no hace nada. Si no hay evalúa la condición de aleatoriedad. Si la condición da entrada pues abre entrada y andando. Vamos, que no hay nada que pensar ni 5 pies que buscar para el gato.

Dado que es un sistema que funciona en barras diarias (en este ejemplo) las condiciones se verifican y ejecutan en la apertura de la próxima barra (como todos los sistemas diarios). Las salidas, en este caso, se ejecutan en tiempo real.

En el ejemplo del video el sistema tiene un stop loss del 1% y juego con el variando las salidas al 0.3%, 0.6% y 0.9%.

Y realmente no hay mucho más que contar. Para el ejemplo sirve, pero para la vida real no. Entre otras cosas porque, como digo, pierde pasta.

Adjunto les dejo el código del programa en PRT.

 

 

ONCE nbTrades = 0

x=10

IF BarIndex < 2 THEN

wasLong = 0

wasShort = 0

ENDIF

random = ROUND((close MOD 2)/2) //True o false generado al azar

IF BarIndex > 1 THEN

IF (random = 0) AND (NOT LongOnMarket AND NOT ShortOnMarket) THEN

IF nbTrades >= 2 THEN

IF (PreviousTrade(1) < 0 AND PreviousTrade(2) < 0) AND (wasLong = 1 AND wasLong[1] = 1) THEN

SELLSHORT 1 shares AT MARKET

nbTrades = nbTrades +1

wasShort = 1

wasLong = 0

ELSE

BUY 1 shares AT MARKET

nbTrades = nbTrades +1

wasLong = 1

wasShort = 0

ENDIF

ELSE

BUY 1 shares AT MARKET

nbTrades = nbTrades +1

wasLong = 1

wasShort = 0

ENDIF

ENDIF

IF (random = 1) AND (NOT LongOnMarket AND NOT ShortOnMarket) THEN

IF nbTrades >= 2 THEN

IF (PreviousTrade(1) < 0 AND PreviousTrade(2) < 0) AND (wasShort = 1 AND wasShort[1] = 1) THEN

BUY 100%capital AT MARKET

nbTrades = nbTrades +1

wasLong = 1

wasShort = 0

ELSE

SELLSHORT 1 shares AT MARKET

nbTrades = nbTrades +1

wasShort = 1

wasLong = 0

ENDIF

ELSE

SELLSHORT 0 shares AT MARKET

nbTrades = nbTrades +1

wasShort = 1

wasLong = 0

ENDIF

ENDIF

IF LongOnMarket AND BarIndex = ENTRYINDEX+x THEN

SELL CountOfLongShares SHARES AT MARKET

ENDIF

IF ShortOnMarket AND BarIndex = ENTRYINDEX+x THEN

EXITSHORT CountOfShortShares SHARES AT MARKET

ENDIF

ENDIF

REM PROFIT STOP BULL

nivelprofit=p

IF Longonmarket and HIGH > ENTRYQUOTE * (1 + nivelprofit / 100) THEN

SELL CountofLongShares SHARES AT MARKET

ENDIF

REM PROFIT STOP BEAR

IF Shortonmarket and LOW < ENTRYQUOTE * (1 - nivelprofit / 100) THEN

Exitshort AT ENTRYQUOTE * (1 - nivelprofit / 100) limit

ENDIF

 

Aquí pueden ver la curva de liquidez presentada en el video y sus correspondientes estadísticas.

 

 

 

Ahora vean la curva de liquidez, con los mismos parámetros, pero ya para todo el histórico.

 

Este sistema, como se puede ver, es bastante mediocre. Si, efectivamente ha ganado dinero en este caso concreto con estas entradas concretas y en este periodo concreto, pero es una casualidad.

De hecho miren como desde mayo del 99 hasta ahora (más de 10 años de historia) no ha hecho nada

En fin, espero haber contestado las preguntas. Y no le den más vueltas. Es un sistema que NO SIRVE para operar en el mercado.

 

Saludos y suerte en el trading,

 

Horace

Operar pensando en el riesgo (video)

Las posiciones de hoy