Простая торговая стратегия, основанная на случайной удаче


Дата создания: 2023-09-13 17:48:13 Последнее изменение: 2023-09-13 17:48:13
Копировать: 0 Количество просмотров: 734
1
Подписаться
1617
Подписчики

Эта стратегия называется “Простая торговая стратегия, основанная на случайной удаче”. Эта стратегия использует случайный метод, чтобы генерировать сигнал о том, чтобы сделать больше или сделать меньше, в первый день недели, чтобы оценить эффективность случайных сделок с помощью большого количества повторных тестов.

В частности, логика сделки в стратегии очень проста:

  1. Каждую неделю в понедельник мы бросаем монетку, произвольно выбирая, кто будет головой или хвостом.

  2. Если это голова, то сделайте больше в тот день; если это хвост, то сделайте пустое в тот день.

  3. При использовании лишнего, установка стоп-лоста составляет 1xATR, а стоп-стоп - 1xATR; при использовании дифференцированного, достигается соотношение риска и прибыли 1:1.

  4. Позиция была закрыта до конца недели.

Преимущество этой стратегии заключается в том, что данные за многие годы позволяют оценить среднюю победу случайных сделок. Правила торговли очень просты, и могут служить базовой базой для сравнения стратегии.

Однако случайная торговля не может использовать рыночные правила, и трудно получать постоянную положительную прибыль. Фиксированный стоп-стоп также может привести к увеличению убытков. Трейдеры могут использовать его только в качестве экспериментальной стратегии и не могут использовать его в реальной торговле.

В целом, отсчет данных может дать подсказку о эффективности случайной торговли, но не представляет собой практически применимую стратегию. В конечном итоге трейдеру все же требуются суждения и системные торговые навыки.

Исходный код стратегии
/*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)