اس حکمت عملی میں برن بینڈ (BB) ، نسبتا strong مضبوط اشاریہ (RSI) اور آرون اشارے شامل ہیں تاکہ ہر اشارے کی طاقت کو استعمال کیا جاسکے اور تجارت کے لئے موثر اندراج اور خارجی سگنل فراہم کیے جائیں۔
جب قیمت بلین نیچے کی طرف سے ٹوٹ جاتا ہے تو، ایک کثیر سگنل ظاہر ہوتا ہے.
جب RSI پر اوپری خرید لائن کو عبور کیا جاتا ہے تو ، کثیر سر تصدیق کا اشارہ ظاہر ہوتا ہے۔
جب Aroon اوپر اور نیچے پہنا جاتا ہے تو ، ایک سے زیادہ سر کی تصدیق کا اشارہ ظاہر ہوتا ہے۔
جب یہ تینوں شرائط مل کر پوری ہوں تو زیادہ کریں۔
جب قیمت بلین بینڈ سے اوپر کی طرف جاتی ہے تو ، ایک خالی سر کا اشارہ ظاہر ہوتا ہے۔
جب RSI نیچے oversold لائن کو پار کرتا ہے تو ، ایک خالی سر تصدیق کا اشارہ ظاہر ہوتا ہے۔
جب Aroon نیچے پہنا جاتا ہے تو ، خالی سر کی تصدیق کا اشارہ ظاہر ہوتا ہے۔
جب مذکورہ بالا تینوں شرائط مل کر پوری ہوں تو خالی کرنا۔
اس حکمت عملی میں متعدد اشارے کے فوائد کو مربوط کیا گیا ہے تاکہ ایک مضبوط انٹری سگنل تشکیل دیا جاسکے۔ پیرامیٹرز کو بہتر بنانے ، ضرورت سے زیادہ اشارے کو ہٹانے اور کوڈ کو بہتر بنانے کے ذریعے اس حکمت عملی کے اثرات کو ایک اعلی سطح تک پہنچایا جاسکتا ہے۔ مجموعی طور پر ، اس حکمت عملی نے تجارت کے لئے موثر تخصیص کردہ حل فراہم کیا۔
/*backtest
start: 2023-09-13 00:00:00
end: 2023-09-20 00:00:00
period: 5m
basePeriod: 1m
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/
// Developed by Marco Jarquin as part of Arkansas 22 Project for Binary Options
// CBRA for binary options (Configurable Bollinger Bands, RSI and Aroon)
//@version=4
// ====================================================================================
//strategy("A22.CBRA.Strat", overlay=true, initial_capital=10000, currency="USD", calc_on_every_tick=true, default_qty_type=strategy.cash, default_qty_value=4000, commission_type=strategy.commission.cash_per_order, commission_value=0)
// Aroonish Parameters
// ====================================================================================
Aroonish_length = input(4, minval=1, title="Aroonish Lenght")
Aroonish_ConfVal = input(50, minval=0, maxval=100, step=25, title="Aroonish Confirmation Value")
Aroonish_upper = 100 * (-highestbars(high, Aroonish_length+1) + Aroonish_length)/Aroonish_length
Aroonish_lower = 100 * (-lowestbars(low, Aroonish_length+1) + Aroonish_length)/Aroonish_length
// Aroonish confirmations
// ====================================================================================
Aroonish_ConfLong = (Aroonish_lower >= Aroonish_ConfVal) and (Aroonish_upper < Aroonish_lower)
Aroonish_ConfShrt = (Aroonish_upper >= Aroonish_ConfVal) and (Aroonish_upper > Aroonish_lower)
plotshape(crossover(Aroonish_lower, Aroonish_upper), color = color.red, style = shape.triangledown, location = location.abovebar, size = size.auto, title = "Ar-B")
plotshape(crossover(Aroonish_upper, Aroonish_lower), color = color.green, style = shape.triangleup, location = location.belowbar, size = size.auto, transp = 0, title = "Ar-S")
// RSI Parameters
// ====================================================================================
RSI_length = input(4, title="RSI Lenght")
RSI_overSold = input(20, title="RSI Oversold Limit")
RSI_overBought = input(80, title="RSI Overbought Limit" )
RSI = rsi(close, RSI_length)
plotshape(crossover(RSI, RSI_overSold), color = color.orange, style = shape.square, location = location.belowbar, size = size.auto, title = "RSI-B")
plotshape(crossunder(RSI, RSI_overBought), color = color.orange, style = shape.square, location = location.abovebar, size = size.auto, transp = 0, title = "RSI-S")
// Bollinger Parameters
// ====================================================================================
BB_length = input(20, minval=1, title="Bollinger Lenght")
BB_mult = input(2.5, minval=0.1, maxval=50, step=0.1, title="Bollinger Std Dev")
// BB_bars = input(3, minval=1, maxval=5, title="Check bars after crossing")
BB_basis = sma(close, BB_length)
BB_dev = BB_mult * stdev(close, BB_length)
BB_upper = BB_basis + BB_dev
BB_lower = BB_basis - BB_dev
p1 = plot(BB_upper, color=color.blue)
p2 = plot(BB_lower, color=color.blue)
// Bars to have the operation open
// ====================================================================================
nBars = input(3, minval=1, maxval=30, title="Bars to keep the operation open")
// Strategy condition short or long
// ====================================================================================
ConditionShrt = ((crossunder(close, BB_upper) or crossunder(close[1], BB_upper[1])) and Aroonish_ConfShrt) and (crossunder(RSI, RSI_overBought) or crossunder(RSI[1], RSI_overBought[1]))
ConditionLong = ((crossover(close, BB_lower) or crossover(close[1], BB_lower[1])) and Aroonish_ConfLong) and (crossover(RSI, RSI_overSold) or crossover(RSI[1], RSI_overSold[1]))
plotshape(crossover(close, BB_lower), color = color.blue, style = shape.circle, location = location.belowbar, size = size.auto, title = "BB-B")
plotshape(crossunder(close, BB_upper), color = color.blue, style = shape.circle, location = location.abovebar, size = size.auto, transp = 0, title = "BB-S")
// Make input options that configure backtest date range
// ====================================================================================
iMo = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12)
iDy = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=31)
iYr = input(title="Start Year", type=input.integer, defval=(2020), minval=1800, maxval=2100)
eMo = input(title="End Month", type=input.integer, defval=1, minval=1, maxval=12)
eDy = input(title="End Date", type=input.integer, defval=1, minval=1, maxval=31)
eYr = input(title="End Year", type=input.integer, defval=(2021), minval=1800, maxval=2100)
// Look if the close time of the current bar falls inside the date range
// ====================================================================================
inDateRange = true
// Evaluates conditions to enter short or long
// ====================================================================================
if (inDateRange and ConditionLong)
strategy.entry("A22.L", strategy.long)
if (inDateRange and ConditionLong[nBars])
strategy.close("A22.L", comment="A22.L Exit")
if (inDateRange and ConditionShrt)
strategy.entry("A22.S", strategy.short)
if (inDateRange and ConditionShrt[nBars])
strategy.close("A22.S", comment="A22.S Exit")
if (not inDateRange)
strategy.close_all()