이 전략은
논리는 다음과 같습니다.
최근 20번의 근접 바의 수와 지난 100번의 근접 바의 비율을 계산합니다.
분포기수와 확률 p를 이분법 분포함수로 연결하여 누적 분포함수 (CDF) 를 계산합니다.
CDF에 10일 및 20일 EMA를 적용합니다. 빠른 EMA가 느린 EMA를 넘을 때, 가격 극심 회귀의 높은 확률을 신호하여 구매 신호를 생성합니다.
빠른 EMA가 느린 EMA 아래로 넘어가면, 가격이 단기간에 최고치를 기록할 수 있습니다. 여기서 판매 신호를 생성합니다.
이 전략의 장점은 확률 방법을 통해 가격 극심회전 시기를 추정하는 것입니다. 그러나 매개 변수는 과도한 잘못된 신호를 피하기 위해 시장 조정 최적화가 필요합니다.
결론적으로, 통계적 기법은 가격 행동 패턴을 객관적으로 밝혀내는 데 도움이 됩니다. 그러나 궁극적으로, 거래자들은 기술 지표를 보조 도구로 사용하기 위해 여전히 날카로운 시장 판단이 필요합니다.
/*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")