इस रणनीति को द्वि-वितरण आधारित मूल्य चरम वापसी रणनीति कहा जाता है। यह रणनीति द्वि-वितरण फ़ंक्शन का उपयोग करके कीमतों के उलट होने की संभावना का आकलन करती है और द्वि-ईएमए सम-रेखा रणनीति को व्यापारिक संकेत उत्पन्न करने के लिए सेट करती है।
इस नीति का गणना तर्क इस प्रकार है:
हाल ही में 20 K लाइनों में बढ़त की संख्या की गणना करें और पिछले 100 K लाइनों में बढ़त की अवधि के अनुपात को गणना करें।
संचयी वितरण फ़ंक्शन ((CDF)) की गणना करने के लिए, संचयी वितरण फ़ंक्शन में संचयी चक्रों की संख्या और संभावना p को दो वितरण फ़ंक्शंस में लाएं।
सीडीएफ के लिए 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")