
یہ حکمت عملی ایک قیمت چینل پر مبنی بریک آؤٹ حکمت عملی ہے ، جس میں داخلہ اور باہر نکلنے کے لئے ایکویلیو اشارے اور اسٹاپ / اسٹاپ ٹریکنگ شامل ہیں۔ یہ قیمت چینل کی تعمیر کے لئے اعلی اور کم قیمتوں کی مساوی لائنوں کا استعمال کرتا ہے ، جب قیمت چینل کو توڑتی ہے تو زیادہ / خالی ہوتا ہے ، اور خطرے کو کنٹرول کرنے کے لئے فکسڈ اسٹاپ یا ٹریلنگ اسٹاپ کا استعمال کرتا ہے۔
یہ حکمت عملی ایک قیمت چینل کی تشکیل کرتی ہے جس میں اعلی اور کم قیمت کی اوسط لائنوں کا حساب لگایا جاتا ہے۔ خاص طور پر ، اس کی لمبائی 10 کی اعلی قیمت اور کم قیمت کی ایس ایم اے اوسط لائنوں کا حساب لگایا جاتا ہے ، جس سے چینل کے اوپری اور نچلے حصے کی تشکیل ہوتی ہے۔ جب قیمت نچلے حصے سے اوپری حصے میں داخل ہوتی ہے تو ، زیادہ داخل ہوتا ہے۔ جب قیمت اوپری حصے سے نچلے حصے میں داخل ہوتی ہے تو ، خالی داخل ہوتا ہے۔
داخلے کے بعد ، حکمت عملی ایک مقررہ نقصان یا ٹریلنگ اسٹاپ کا استعمال کرتے ہوئے پوزیشن سے باہر نکلتی ہے۔ ٹریلنگ اسٹاپ میں دو پیرامیٹرز شامل ہیں: فکسڈ اسٹاپ اور ایکٹیویٹنگ آفسیٹ۔ جب قیمت ایکٹیویشن آفسیٹ تک پہنچ جاتی ہے تو ، اسٹاپ کو ٹریل کیا جاتا ہے۔ یہ منافع کو مقفل کرسکتا ہے ، جبکہ منافع بخش جگہ کو برقرار رکھتا ہے۔
اس حکمت عملی میں ایک ساتھ وقت کی مدت کے فلٹرنگ کو شامل کیا گیا ہے اور صرف مخصوص تاریخی تاریخوں کے اندر ہی بیک اپ کیا گیا ہے تاکہ مارکیٹ کے مختلف مراحل کی کارکردگی کا تجربہ کیا جاسکے۔
اس حکمت عملی میں قیمت چینل اور ٹرینڈ ٹریکنگ اسٹاپ کا استعمال کیا گیا ہے ، جس میں لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لم
مجموعی طور پر ، اس حکمت عملی کی منطق واضح ہے ، اشارے اور پیرامیٹرز کا کم استعمال ہوتا ہے ، اس کی پیمائش کرنا آسان ہے ، اور یہ وسط اور طویل لکیری رجحانات کی تجارت کے لئے موزوں ہے ، جو مضبوط حالات میں منافع بخش ہوسکتی ہے۔
اس حکمت عملی کو زلزلے کے حالات میں باہر نکلنے کے لئے آسان بنایا گیا ہے اور اس سے پائیدار منافع نہیں مل سکتا ہے۔ اس کے علاوہ ، انتہائی حالات میں ، قیمت براہ راست روک تھام کی سطح کو توڑ سکتی ہے جس سے زیادہ نقصان ہوتا ہے۔
پیرامیٹرز کی ترتیب نسبتا subjective ذیلی ہے ، مختلف مارکیٹ کے مراحل میں پیرامیٹرز کو ایڈجسٹ کرنے کی ضرورت ہوتی ہے۔ مقررہ اسٹاپ بائیڈ اور ایکٹیویٹ ڈیفیوژن ، مارکیٹ میں اتار چڑھاؤ کی سطح کے مطابق ایڈجسٹ نہیں کیا جاسکتا ہے۔
دوسرے اشارے کے ساتھ مل کر انٹری سگنل کو فلٹر کرنے پر غور کیا جاسکتا ہے ، جیسے تجارت کا حجم ، برلن بینڈ وغیرہ ، تاکہ اسٹیک سے بچ سکے۔ یا متحرک اسٹاپ کا استعمال کرتے ہوئے ، اے ٹی آر یا قیمت میں اتار چڑھاؤ کی حد کے مطابق اسٹاپ نقصان کی حد طے کریں۔
نکلنے کے قواعد کو متحرک روکنے یا Chandelier Exit کے لئے بہتر بنایا جاسکتا ہے۔ جب قیمت چینل میں دوبارہ داخل ہوتی ہے تو جزوی نکلنے پر بھی غور کیا جاسکتا ہے۔ داخلہ فلٹرنگ اور نکلنے کے قواعد کی اصلاح سے حکمت عملی کی استحکام میں نمایاں اضافہ ہوسکتا ہے۔
یہ حکمت عملی مجموعی طور پر ایک مقداری حکمت عملی ہے جو قیمت چینل ، رجحان سے باخبر رہنے ، اور نقصان / اسٹاپ مینجمنٹ پر مبنی ہے۔ اس میں واضح منطقی ڈھانچہ ، آسان پیرامیٹر ڈھانچہ ، آسانی سے سمجھنے اور جانچ پڑتال کے لئے موزوں ہے ، جو مقدار کی تجارت کو سیکھنے کے لئے موزوں ہے۔ اس حکمت عملی کو استحکام اور منافع کو بڑھانے کے لئے متعدد طریقوں سے بہتر بنایا جاسکتا ہے۔ اس کا بنیادی نظریہ قیمت کے رجحانات کی سمت کو پکڑنا ہے ، اور نقصان اور اسٹاپ کے ذریعہ خطرے کو کنٹرول کرنا ہے۔
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-21 23:59:59
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Generalized SSL Backtest w/ TSSL", shorttitle="GSSL Backtest", overlay=true )
// Generalized SSL:
// This is the very first time the SSL indicator, whose acronym I ignore, is on Tradingview.
// It is based on moving averages of the highs and lows.
// Similar channel indicators can be found, whereas
// this one implements the persistency inside the channel, which is rather tricky.
// The green line is the base line which decides entries and exits, possibly with trailing stops.
// With respect to the original version, here one can play with different moving averages.
// The default settings are (10,SMA)
//
// Vitelot/Yanez/Vts March 2019
lb = input(10, title="Lb", minval=1)
maType = input( defval="SMA", title="MA Type", options=["SMA","EMA","HMA","McG","WMA","Tenkan"])
fixedSL = input(title="SL Activation", defval=300)
trailSL = input(title="SL Trigger", defval=1)
fixedTP = input(title="TP Activation", defval=150)
trailTP = input(title="TP Trigger", defval=1)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2019, title = "From Year", minval = 2017)
ToMonth = input(defval = 6, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 19, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 2020, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
startTimeOk() => true // create function "within window of time" if statement true
// QUANDL:BCHAIN/ETRVU is USD-denominated daily transaction value on BTC blockchain
// QUANDL:BCHAIN/MKTCP is USD-denominated Bitcoin marketcap
hma(sig, n) => // Hull moving average definition
wma( 2*wma(sig,round(n/2))-wma(sig,n), round(sqrt(n)))
mcg(sig,length) => // Mc Ginley MA definition
mg = 0.0
mg := na(mg[1]) ? ema(sig, length) : mg[1] + (sig - mg[1]) / (length * pow(sig/mg[1], 4))
tenkan(sig,len) =>
0.5*(highest(sig,len)+lowest(sig,len))
ma(t,sig,len) =>
sss=na
if t =="SMA"
sss := sma(sig,len)
if t == "EMA"
sss := ema(sig,len)
if t == "HMA"
sss := hma(sig,len)
if t == "McG" // Mc Ginley
sss := mcg(sig,len)
if t == "Tenkan"
sss := tenkan(sig,len)
if t == "WMA"
sss := wma(sig,len)
sss
base(mah, mal) =>
bbb = na
inChannel = close<mah and close>mal
belowChannel = close<mah and close<mal
bbb := inChannel? bbb[1]: belowChannel? -1: 1
uuu = bbb==1? mal: mah
ddd = bbb==1? mah: mal
[uuu, ddd]
maH = ma(maType, high, lb)
maL = ma(maType, low, lb)
[up, dn] = base(maH,maL)
plot(up, title="High MA", color=lime, linewidth=3)
plot(dn, title="Low MA", color=orange, linewidth=3)
long = crossover(dn,up)
short = crossover(up,dn)
// === STRATEGY - LONG POSITION EXECUTION ===
strategy.entry("Long", strategy.long, when= long and startTimeOk())
strategy.exit("Exit", qty_percent = 100, loss=fixedSL, trail_offset=trailTP, trail_points=fixedTP)
strategy.exit("Exit", when= short)
// === STRATEGY - SHORT POSITION EXECUTION ===
strategy.entry("Short", strategy.short, when= short and startTimeOk())
strategy.exit("Exit", qty_percent = 100, loss=fixedSL, trail_offset=trailTP, trail_points=fixedTP)
strategy.exit("Exit", when= long)