
یہ حکمت عملی اوسطا حقیقی طول و عرض ((ATR) اور اتار چڑھاؤ کے اشارے ((CHOP) کو بطور اہم تکنیکی اشارے استعمال کرتی ہے تاکہ رجحان کی شناخت اور اس کی پیروی کی جاسکے۔ جب اشارے ٹریک کو توڑ دیتے ہیں تو ، رجحان کی سمت کے ساتھ مل کر انٹری سگنل کے طور پر کام کرتے ہیں۔ جب اشارے دوبارہ بینڈ کی شکل والے علاقے میں داخل ہوتے ہیں تو ، اسٹاپ نقصان یا اسٹاپ آؤٹ پوزیشن لے لیتے ہیں۔
اس حکمت عملی میں رجحان کا فیصلہ کرنے اور اتار چڑھاؤ کو کنٹرول کرنے کے ساتھ مل کر ، قیمتوں کے رجحانات کو پکڑنے اور خطرے کو کنٹرول کرنے کے لئے ایک نسبتا stable مستحکم رجحانات کی پیروی کرنے والی حکمت عملی ہے۔
اس حکمت عملی کے اہم خطرات یہ ہیں:
اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:
اس حکمت عملی میں عام طور پر استعمال ہونے والے تکنیکی اشارے شامل ہیں ، یہ آسان اور عملی ہے۔ پیرامیٹرز کو ایڈجسٹ کرنے اور بہتر بنانے کے تحت ، اچھی طرح سے باخبر رہنے کے نتائج حاصل کیے جاسکتے ہیں۔ تاہم ، بڑے رجحانات کا اندازہ لگانے کے لئے انسان کی ضرورت ہوتی ہے ، اور اسے مکمل طور پر خودکار نہیں کیا جاسکتا ہے۔ یہ معاون فیصلہ سازی کے آلے کے طور پر کام کرسکتا ہے ، اور یہ دیگر حکمت عملیوں کے لئے بھی حوالہ بن سکتا ہے۔
/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 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/
// © sharatgbhat
//@version=4
strategy("Weis Chop Strategy", overlay=false, default_qty_type = strategy.percent_of_equity, default_qty_value = 10,max_lines_count = 500, max_labels_count = 500)
maxIdLossPcnt = input(1, "Max Intraday Loss(%)", type=input.float)
// strategy.risk.max_intraday_loss(maxIdLossPcnt, strategy.percent_of_equity)
method = input(defval="ATR", options=["ATR", "Traditional", "Part of Price"], title="Renko Assignment Method")
methodvalue = input(defval=14.0, type=input.float, minval=0, title="Value")
pricesource = input(defval="Close", options=["Close", "Open / Close", "High / Low"], title="Price Source")
useClose = pricesource == "Close"
useOpenClose = pricesource == "Open / Close" or useClose
useTrueRange = input(defval="Auto", options=["Always", "Auto", "Never"], title="Use True Range instead of Volume")
isOscillating = input(defval=false, type=input.bool, title="Oscillating")
normalize = input(defval=false, type=input.bool, title="Normalize")
vol = useTrueRange == "Always" or useTrueRange == "Auto" and na(volume) ? tr : volume
op = useClose ? close : open
hi = useOpenClose ? close >= op ? close : op : high
lo = useOpenClose ? close <= op ? close : op : low
if method == "ATR"
methodvalue := atr(round(methodvalue))
if method == "Part of Price"
methodvalue := close / methodvalue
currclose = float(na)
prevclose = nz(currclose[1])
prevhigh = prevclose + methodvalue
prevlow = prevclose - methodvalue
currclose := hi > prevhigh ? hi : lo < prevlow ? lo : prevclose
direction = int(na)
direction := currclose > prevclose ? 1 : currclose < prevclose ? -1 : nz(direction[1])
directionHasChanged = change(direction) != 0
directionIsUp = direction > 0
directionIsDown = direction < 0
barcount = 1
barcount := not directionHasChanged and normalize ? barcount[1] + barcount : barcount
vol := not directionHasChanged ? vol[1] + vol : vol
res = barcount > 1 ? vol / barcount : vol
plot(isOscillating and directionIsDown ? -res : res, style=plot.style_columns, color=directionIsUp ? color.green : color.red, transp=75, linewidth=3, title="Wave Volume")
length = input(14, minval=1)
ci = 100 * log10(sum(atr(1), length) / (highest(length) - lowest(length))) / log10(length)
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
plot(ci, "CHOP", color=#2962FF, offset = offset)
band1 = hline(61.8, "Upper Band", color=#787B86, linestyle=hline.style_dashed)
band0 = hline(38.2, "Lower Band", color=#787B86, linestyle=hline.style_dashed)
fill(band1, band0, color = color.rgb(33, 150, 243, 90), title = "Background")
MomentumBull = close>ema(close,8)
MomentumBear = close<ema(close,8)
Tradecon = crossunder(ci,61.8)
if (MomentumBull and directionIsUp and Tradecon)
strategy.entry("Buy", strategy.long)
if (MomentumBear and directionIsDown and Tradecon )
strategy.entry("Sell", strategy.short)
strategy.exit("exit","Buy",when=directionIsDown,qty_percent=100,profit=20,loss=10)
strategy.exit("exit","Sell",when=directionIsUp,qty_percent=100,profit=20,loss=10)