Эта стратегия называется “Простая торговая стратегия, основанная на случайной удаче”. Эта стратегия использует случайный метод, чтобы генерировать сигнал о том, чтобы сделать больше или сделать меньше, в первый день недели, чтобы оценить эффективность случайных сделок с помощью большого количества повторных тестов.
В частности, логика сделки в стратегии очень проста:
Каждую неделю в понедельник мы бросаем монетку, произвольно выбирая, кто будет головой или хвостом.
Если это голова, то сделайте больше в тот день; если это хвост, то сделайте пустое в тот день.
При использовании лишнего, установка стоп-лоста составляет 1xATR, а стоп-стоп - 1xATR; при использовании дифференцированного, достигается соотношение риска и прибыли 1:1.
Позиция была закрыта до конца недели.
Преимущество этой стратегии заключается в том, что данные за многие годы позволяют оценить среднюю победу случайных сделок. Правила торговли очень просты, и могут служить базовой базой для сравнения стратегии.
Однако случайная торговля не может использовать рыночные правила, и трудно получать постоянную положительную прибыль. Фиксированный стоп-стоп также может привести к увеличению убытков. Трейдеры могут использовать его только в качестве экспериментальной стратегии и не могут использовать его в реальной торговле.
В целом, отсчет данных может дать подсказку о эффективности случайной торговли, но не представляет собой практически применимую стратегию. В конечном итоге трейдеру все же требуются суждения и системные торговые навыки.
/*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)