Estrategia de comercio simple basada en la suerte al azar

El autor:¿ Qué pasa?, Fecha: 2023-09-13 17:48:13
Las etiquetas:

Esta estrategia se llama Simple Trading Strategy Based on Random Luck. Utiliza métodos aleatorios para generar señales largas o cortas el primer día de negociación de cada semana, evaluando el rendimiento de la negociación aleatoria a través de una gran cantidad de pruebas repetitivas.

Específicamente, la lógica de negociación es muy sencilla:

  1. Lanzar una moneda todos los lunes, generando resultados al azar cara o cola.

  2. Si es cabeza, vaya largo ese día. Si es cola, vaya corto ese día.

  3. Establezca el stop loss en 1 x ATR y tome ganancias en 1 x ATR cuando sea largo, y viceversa cuando sea corto, logrando una relación riesgo-recompensación de 1:1.

  4. Mantenga la posición hasta el final de la semana y luego cierre.

La ventaja es backtesting de muchos años de datos para evaluar la tasa de ganancia promedio de la negociación aleatoria.

Pero el comercio aleatorio no puede utilizar los patrones del mercado y es poco probable que genere ganancias sostenidas.

En conclusión, los resultados de las pruebas de retroceso pueden sugerir resultados de operaciones aleatorias, pero no representan estrategias realmente aplicables.


/*backtest
start: 2022-09-12 00:00:00
end: 2023-01-12 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("CoinFlip", overlay = true)

int result = int(math.random()+0.5)
atr_period = input(defval = 20, title = "ATR Period")
year_to_test = input(defval = 2022, title = "Year to Test")
day_of_week = input(defval = 1, title = "Day of Week")

atr = ta.atr(atr_period)

shouldSell = result == 0 and dayofweek == day_of_week
shouldBuy = result == 1 and dayofweek == day_of_week 

plotshape(result == 0 and dayofmonth == day_of_week, title="sell", location=location.abovebar, color=color.red, transp=0, style=shape.arrowdown)
plotshape(result == 1 and dayofmonth == day_of_week, title="buy", location=location.belowbar, color=color.lime, transp=0, style=shape.arrowup)


strategy.entry("short entry", strategy.short, 1000 / (1*atr), when=shouldSell and year == year_to_test)
strategy.entry("long entry", strategy.long,  1000  / (1*atr), when=shouldBuy and year == year_to_test)

strategy.exit("exit", "long entry", limit = close + 1*atr, stop = close - 1*atr, when = shouldBuy)
strategy.exit("exit", "short entry", limit = close - 1*atr, stop = close + 1*atr, when = shouldSell)



Más.