
یہ حکمت عملی خرید و فروخت کے سگنل کا تعین کرنے کے لئے بلین بینڈ اور نسبتا weak مضبوط اشارے ((RSI) کے ساتھ مل کر کام کرتی ہے۔ جب قیمت بلین بینڈ کو ٹریک کرتی ہے اور آر ایس آئی مقررہ نچلی حد سے کم ہوتی ہے تو خریدنے کا اشارہ ہوتا ہے۔ جب قیمت بلین بینڈ کو ٹریک کرتی ہے اور آر ایس آئی مقررہ اوپری حد سے زیادہ ہوتی ہے تو فروخت کا اشارہ ہوتا ہے۔ اس حکمت عملی میں خرید و فروخت کے وقفے کے پیرامیٹرز کو بھی متعارف کرایا گیا ہے تاکہ بار بار تجارت سے گریز کیا جاسکے۔
اس حکمت عملی میں بلین بینڈ اور آر ایس آئی کے دو کلاسیکی تکنیکی اشارے کو ہوشیار طریقے سے جوڑا گیا ہے تاکہ ڈبل تصدیق کے طریقہ کار کے ذریعہ رجحاناتی مواقع کو پکڑ سکے۔ اس کے ساتھ ہی ، اس حکمت عملی میں ایک پرامڈ اسٹاک کی تعمیر کا طریقہ متعارف کرایا گیا ہے ، جو خطرے کو کنٹرول کرنے کے ساتھ ساتھ منافع کو بہتر بنانے کی کوشش کرتا ہے۔ لیکن اس حکمت عملی میں رجحان کے تسلسل کا خطرہ ، پیرامیٹرز کی اصلاح کا خطرہ اور بلیک سویلم واقعے کا خطرہ بھی موجود ہے۔ مستقبل میں اس کو مزید بہتر بنانے کے لئے اسٹاپ نقصانات ، متحرک پیرامیٹرز کی اصلاح اور دیگر اشارے کے ساتھ مل کر استعمال کیا جاسکتا ہے۔
/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1h
basePeriod: 15m
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/
//@version=4
strategy(overlay=true, shorttitle="cakes'Strategy For RSI", default_qty_type = strategy.percent_of_equity, initial_capital = 100000, default_qty_value = 100, pyramiding = 0, title="cakes'Strategy", currency = 'USD')
////////// ** Inputs ** //////////
// Stoploss and Profits Inputs
v1 = input(true, title="GoTradePlz")
////////// ** Indicators ** //////////
// RSI
len = 14
src = close
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
// Bollinger Bands
length1 = 20
src1 = close
mult1 = 1.0
basis1 = sma(src1, length1)
dev1 = mult1 * stdev(src1, length1)
upper1 = basis1 + dev1
lower1 = basis1 - dev1
////////// ** Triggers and Guards ** //////////
// 输入
RSILowerLevel1 = input(30, title="RSI 下限水平")
RSIUpperLevel1 = input(70, title="RSI 上限水平")
// 购买间隔
buyInterval = input(5, title="购买间隔(K线数量)")
// 跟踪购买间隔
var int lastBuyBar = na
lastBuyBar := na(lastBuyBar[1]) ? bar_index : lastBuyBar
// 策略信号
BBBuyTrigger1 = close < lower1
BBSellTrigger1 = close > upper1
rsiBuyGuard1 = rsi < RSILowerLevel1
rsiSellGuard1 = rsi > RSIUpperLevel1
Buy_1 = BBBuyTrigger1 and rsiBuyGuard1 and (bar_index - lastBuyBar) >= buyInterval
Sell_1 = BBSellTrigger1 and rsiSellGuard1
if (Buy_1)
lastBuyBar := bar_index
strategy.entry("Long", strategy.long, when = Buy_1, alert_message = "Buy Signal!")
strategy.close("Long", when = Sell_1, alert_message = "Sell Signal!")