Uma estratégia de negociação simples baseada na sorte aleatória


Data de criação: 2023-09-13 17:48:13 última modificação: 2023-09-13 17:48:13
cópia: 0 Cliques: 734
1
focar em
1617
Seguidores

Esta estratégia é chamada de estratégia de negociação simples baseada em sorte aleatória. A estratégia usa um método aleatório para gerar sinais de fazer mais ou fazer menos no primeiro dia de cada semana, avaliando a eficácia das negociações aleatórias por meio de um grande número de testes repetidos.

A lógica de negociação da estratégia é simples e direta:

  1. Todos os dias de segunda-feira, uma moeda é jogada ao ar, gerando um resultado aleatório de cabeça ou cauda.

  2. Se for a cabeça, faça mais no dia; se for a cauda, faça vazio no dia.

  3. Quando você faz mais, o stop loss é de 1x o ATR, o stop loss é de 1x o ATR; o shorting é o mesmo, alcançando uma relação de risco-retorno de 1: 1.

  4. A posição foi mantida até o fim de semana.

A vantagem da estratégia é que a análise de dados de muitos anos permite avaliar a taxa média de sucesso de uma transação aleatória. As regras de negociação são muito simples e podem ser usadas como referência para a comparação da estratégia.

No entanto, a negociação aleatória não pode aproveitar as regras do mercado e é difícil obter lucros positivos de forma contínua. O stop loss fixo também pode causar expansão de perdas. O comerciante pode usá-lo apenas como uma estratégia experimental e não pode ser usado no mercado real.

Em geral, a retrospectiva de dados pode indicar a eficácia de negociações aleatórias, mas não representa uma estratégia de uso prático. Os comerciantes, no final, precisam de discernimento e técnicas de negociação sistemáticas.

Código-fonte da estratégia
/*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)