Эта стратегия называется “Стратегия регрессии ценового максимума на основе двоичного распределения”. Она использует функцию двоичного распределения, чтобы определить вероятность возникновения обратного курса и установить двойную стратегию выравнивания EMA для получения торгового сигнала.
Вычислительная логика стратегии такова:
Вычислить количество последних 20 увеличений цен на закрытие в K-линии и просчитать, сколько циклов увеличения в последних 100 K-линии составляет p。
Введите число циклов наркомании и вероятность p в двойную функцию распределения и вычислите кумулятивную функцию распределения ((CDF)).
Для CDF рассчитывается среднее значение EMA на 10 и 20 день соответственно. При прохождении медленной линии по быстрой линии считается, что вероятность возврата цены к предельным значениям выше, что создает сигнал к покупке.
Когда быстрая линия пересекает медленную линию, цена может находиться на краткосрочной высоте, в это время создается сигнал продажи.
Преимущество этой стратегии заключается в том, что она использует вероятностные методы для определения максимального времени возврата цены. Однако параметры должны быть скорректированы в зависимости от рынка, чтобы избежать создания слишком много ложных сигналов.
В целом, статистические методы помогают объективно обнаружить закономерности поведения цен. Однако в конечном итоге трейдеры должны сохранять остроту зрения на рынок и правильно использовать технические показатели в качестве вспомогательного инструмента.
/*backtest
start: 2022-09-06 00:00:00
end: 2023-05-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © pieroliviermarquis
//@version=4
strategy("Binomial Strategy", overlay=false, default_qty_type= strategy.percent_of_equity, default_qty_value= 100, slippage=1, initial_capital= 10000, calc_on_every_tick=true)
factorial(length) =>
n = 1
if length != 0
for i = 1 to length
n := n * i
n
binomial_pdf(success, trials, p) =>
q = 1-p
coef = factorial(trials) / (factorial(trials-success) * factorial(success))
pdf = coef * pow(p, success) * pow(q, trials-success)
binomial_cdf(success, trials, p) =>
q = 1-p
cdf = 0.0
for i = 0 to success
cdf := cdf + binomial_pdf(i, trials, p)
up = close[0] > close[1] ? 1 : 0
//long-term probabilities
lt_lookback = 100
lt_up_bars = sum(up, lt_lookback)
prob = lt_up_bars/lt_lookback
//lookback for cdf
lookback = 20
up_bars = sum(up, lookback)
cdf = binomial_cdf(up_bars, lookback, prob)
//ema on cdf
ema1 = ema(cdf, 10)
ema2 = ema(cdf, 20)
plot(cdf*100)
plot(ema1*100, color=color.red)
plot(ema2*100, color=color.orange)
buy = ema1 > ema2
sell = ema1 < ema2
//////////////////////Bar Colors//////////////////
var color buy_or_sell = na
if buy == true
buy_or_sell := #3BB3E4
else if sell == true
buy_or_sell := #FF006E
barcolor(buy_or_sell)
///////////////////////////Orders////////////////
if buy
strategy.entry("Long", strategy.long, comment="")
if sell
strategy.close("Long", comment="Sell")