
یہ حکمت عملی ایک ایسی حکمت عملی ہے جس میں اے ٹی آر کے اشارے کا استعمال کرتے ہوئے ایک متحرک رجحان چینل کی تعمیر کی جاتی ہے جس میں ایک سے زیادہ ٹائم فریم ہوتا ہے۔ اس حکمت عملی میں ایک سگنل پیدا ہوتا ہے جب قیمت ایک چینل کو توڑ دیتی ہے ، اور اس چینل کو مستقل طور پر ایڈجسٹ کرکے ایک بڑا رجحان پکڑ لیتا ہے۔
حکمت عملی اے ٹی آر اشارے کا استعمال کرتے ہوئے اوپر کی طرف جانے والی ٹرینڈ چینل اور نیچے کی طرف جانے والی ٹرینڈ چینل کی تعمیر کرتی ہے۔ خاص طور پر ، اوپر کی طرف جانے والی چینل لائن اختتامی قیمت کو اے ٹی آر اشارے سے کم کرنے کے لئے N گنا ہے؛ نیچے کی طرف جانے والی چینل لائن اختتامی قیمت کے علاوہ اے ٹی آر اشارے کے N گنا ہے۔ N کی قدر کو پیرامیٹرز کے ذریعہ ایڈجسٹ کیا جاسکتا ہے۔
جب قیمت اوپر کی طرف جانے والی چینل کو توڑتی ہے تو ، خریدنے کا اشارہ پیدا ہوتا ہے۔ جب قیمت نیچے کی طرف جانے والی چینل کو توڑتی ہے تو ، فروخت کا اشارہ پیدا ہوتا ہے۔ چینل تازہ ترین قیمت کی حرکیات کے مطابق ایڈجسٹ ہوتا ہے ، جس سے رجحان کی پیروی ہوتی ہے۔
اس کے علاوہ ، حکمت عملی نے ایک ٹرینڈ متغیر کی وضاحت کی ہے جس کا اندازہ لگانے کے لئے کہ آیا اس وقت ایک بڑھتی ہوئی رجحان ہے یا نیچے کا رجحان ہے۔ ٹرینڈ متغیر کو چینل لائن کے ساتھ مل کر استعمال کیا جاتا ہے تاکہ غلط سگنل پیدا نہ ہوں۔
آپٹمائزڈ طریقہ:
یہ حکمت عملی مجموعی طور پر ایک اچھی ٹرینڈ ٹریکنگ حکمت عملی ہے۔ یہ متحرک طور پر ایڈجسٹ کرنے کی صلاحیت رکھتی ہے ، اور اس کے نتیجے میں ، اونچائی اور گرنے کا پیچھا کرنے سے گریز کرتی ہے۔ پیرامیٹرز کو بہتر بنانے اور مناسب اصلاحات کے ذریعہ ، حکمت عملی کے فوائد کو مزید بڑھاوا دیا جاسکتا ہے ، خطرے کو کم کیا جاسکتا ہے ، اور اس طرح بہتر اثر حاصل کیا جاسکتا ہے۔
/*backtest
start: 2023-01-08 00:00:00
end: 2024-01-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('超级趋势精简优化版', overlay=true)
Periods = input(title='ATR周期', defval=10)
src = input(hl2, title='价格数据源')
Multiplier = input.float(title='ATR 乘数', step=0.1, defval=3.0)
changeATR = input(title='更改ATR计算方法', defval=true,tooltip = '默认为art否则sma(ta.tr,ATR周期)')
showsignals = input(title='显示买入/卖出信号', defval=false)
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = src - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title='上涨趋势', style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0))
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal and showsignals ? up : na, title='买点', text='买点', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.new(color.white, 0))
dnPlot = plot(trend == 1 ? na : dn, title='下跌趋势', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal and showsignals ? dn : na, title='卖点', text='卖点', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.new(color.white, 0))
FromMonth = input.int(defval=9, title='From Month', minval=1, maxval=12)
FromDay = input.int(defval=1, title='From Day', minval=1, maxval=31)
FromYear = input.int(defval=2018, title='From Year', minval=999)
ToMonth = input.int(defval=1, title='To Month', minval=1, maxval=12)
ToDay = input.int(defval=1, title='To Day', minval=1, maxval=31)
ToYear = input.int(defval=9999, title='To Year', minval=999)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() =>
time >= start and time <= finish ? true : false
longCondition = buySignal
if longCondition and window()
strategy.entry('BUY', strategy.long, comment = '买入')
shortCondition = sellSignal
if shortCondition and window()
strategy.close('BUY',comment = '卖出')
buy1 = ta.barssince(buySignal)
sell1 = ta.barssince(sellSignal)
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na