متحرک رجحان سے باخبر رہنے کی اصلاح کی حکمت عملی


تخلیق کی تاریخ: 2024-01-12 11:20:04 آخر میں ترمیم کریں: 2024-01-12 11:20:04
کاپی: 2 کلکس کی تعداد: 551
1
پر توجہ دیں
1617
پیروکار

متحرک رجحان سے باخبر رہنے کی اصلاح کی حکمت عملی

جائزہ

اس حکمت عملی میں سی ایم او کے اشارے اور تبدیلی کی شرح کا حساب لگایا گیا ہے ، جس میں متحرک طور پر معاون لائنوں کا نقشہ تیار کیا گیا ہے۔ جب قیمت معاون لائنوں کو توڑتی ہے تو اس میں تجارتی سگنل پیدا ہوتے ہیں۔ اس کے علاوہ ، حکمت عملی میں معاون لائنوں کے قریب اسٹاپ نقصان کی حد کو بہتر بنانے کے ذریعہ مزید منافع کو لاک کیا گیا ہے۔

حکمت عملی کا اصول

  1. قیمتوں کے رجحانات کا اندازہ لگانے کے لئے سی ایم او اشارے کا حساب لگانا
  2. قیمتوں میں تبدیلی کے رجحان کو ظاہر کرنے کے لئے تبدیلی کی شرح Var کا حساب لگائیں
  3. تبدیلی کی شرح کے مطابق حمایت کی لائنز کا نقشہ
  4. لمبی اور مختصر اسٹاپ کو بہتر بنانے کے بعد اسٹاپ لائنوں کا حساب لگائیں
  5. جب قیمت سپورٹ لائن کو توڑتی ہے تو ٹریڈنگ سگنل پیدا ہوتا ہے

طاقت کا تجزیہ

  1. قیمتوں کے رجحانات کا اندازہ لگانے کے لئے سی ایم او کے اشارے کا استعمال کریں اور جعلی توڑ سے بچیں
  2. سپورٹ لائنز رجحانات کی سمت واضح طور پر بتاتی ہیں
  3. زیادہ منافع کو روکنے کے لئے بہتر اسٹاپ نقصان لائن
  4. ٹرانزیکشن سگنل سادہ اور واضح ہیں، اور ان کی پیروی کرنا آسان ہے

خطرے کا تجزیہ

  1. سی ایم او انڈیکس میں تاخیر ، قیمتوں میں تبدیلی کا امکان
  2. سپورٹ لائن کو توڑنے سے غلط سگنل پیدا ہوسکتا ہے
  3. اسٹاپ نقصان کی حد میں غلط اصلاح سے زیادہ نقصان ہوسکتا ہے

خطرے سے نمٹنے کے طریقے:

  1. سی ایم او پیرامیٹرز کو مناسب طریقے سے ایڈجسٹ کریں اور تاخیر کو کم کریں
  2. دوسرے اشارے کے ساتھ مل کر جعلی سگنل کو فلٹر کریں
  3. ٹیسٹ مناسب سٹاپ نقصان کی اصلاح کا تناسب کا تعین کرنے کے لئے

اصلاح کی سمت

  1. مزید اشارے جوڑے گئے، جعلی سگنل فلٹر کیے گئے
  2. AI خود کار طریقے سے سٹاپ نقصان کی حد کو بہتر بناتا ہے
  3. خود کار طریقے سے حجم کو ایڈجسٹ کریں

خلاصہ کریں۔

یہ حکمت عملی مجموعی طور پر اچھی طرح سے کام کرتی ہے ، جس میں حمایت کی لائنوں کو واضح طور پر رجحان کی سمت کا تعین کرنے کے لئے استعمال کیا جاتا ہے۔ سی ایم او کے اشارے کے ساتھ مل کر اور اسٹاپ نقصان کو بہتر بنانے کے لئے یہ اچھی طرح سے کام کرتی ہے۔ تاہم ، کچھ غلط سگنل کا خطرہ ہے ، جس کو متعدد اشارے کے مجموعے کے ذریعہ بہتر بنایا جاسکتا ہے۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 45m
basePeriod: 5m
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/
// © melihtuna

//@version=4
strategy("Optimized Trend Tracker - Strategy Version", shorttitle="OTT-Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent)

src = input(close, title="Source")
pds=input(1, "OTT Period", minval=1)
percent=input(0.1, "OTT Percent", type=input.float, step=0.1, minval=0)
condition = input(title="Condition", defval="Support Line Crossing Signals", options=["Price/OTT Crossing Signals", "Support Line Crossing Signals"])
showsupport = input(title="Show Support Line?", type=input.bool, defval=true)
highlight = input(title="Show OTT Color Changes?", type=input.bool, defval=true)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
barcoloing = input(title="Barcolor On/Off ?", type=input.bool, defval=true)
showlabels = input(title="Show OTT BUY/SELl Labels?", type=input.bool, defval=false)

// === INPUT BACKTEST RANGE ===
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 = 2020, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"

alpha=2/(pds+1)
ud1=src>src[1] ? src-src[1] : src
dd1=src<src[1] ? src[1]-src : src
UD=sum(ud1,9)
DD=sum(dd1,9)
CMO=(UD-DD)/(UD+DD)
k= abs(CMO)
Var=0.0
Var:=(alpha*k*src)+(1-alpha*k)*nz(Var[1])
fark=Var*percent*0.01
longStop = Var - fark
longStopPrev = nz(longStop[1], longStop)
longStop := Var > longStopPrev ? max(longStop, longStopPrev) : longStop
shortStop =  Var + fark
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := Var < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop
dir = 1
dir := nz(dir[1], dir)
dir := dir == -1 and Var > shortStopPrev ? 1 : dir == 1 and Var < longStopPrev ? -1 : dir
MT = dir==1 ? longStop: shortStop
OTT=Var>MT ? MT*(200+percent)/200 : MT*(200-percent)/200 
plot(showsupport ? Var : na, color=#0585E1, linewidth=2, title="Support Line")
OTTC = highlight ? OTT[2] > OTT[3] ? color.green : color.red : #B800D9 
pALL=plot(nz(OTT[2]), color=OTTC, linewidth=2, title="OTT", transp=0)

buySignalk = window() and crossover(Var, OTT[2])
sellSignallk = window() and crossunder(Var, OTT[2])
buySignalc = window() and crossover(src, OTT[2])
sellSignallc = window() and crossunder(src, OTT[2])

plotshape(condition == "Support Line Crossing Signals" ? showlabels and buySignalk ? OTT*0.995 : na : showlabels and buySignalc ? OTT*0.995 : na, title="BUY", text="BUY", location=location.belowbar, style=shape.labelup, size=size.tiny, color=#0F18BF, textcolor=color.white, transp=0)
plotshape(condition == "Support Line Crossing Signals" ? showlabels and sellSignallk ? OTT*1.005 : na : showlabels and sellSignallc ? OTT*1.005 : na, title="SELL", text="SELL", location=location.abovebar, style=shape.labeldown, size=size.tiny, color=#0F18BF, textcolor=color.white, transp=0)
  
ottBuyColor=#77DD77
ottSellColor=#FF0000
vColor = strategy.position_size > 0 ? ottBuyColor : ottSellColor

if condition == "Support Line Crossing Signals"
    strategy.entry("BUY", true, 1, when = buySignalk)
    strategy.entry("SELL", false, 1, when = sellSignallk)
else
    strategy.entry("BUY", true, 1, when = buySignalc)
    strategy.entry("SELL", false, 1, when = sellSignallc)

mPlot = plot(close, title="", style=plot.style_circles, linewidth=0,display=display.none)

longFillColor = highlighting ? (Var>OTT ? color.green : na) : na
shortFillColor = highlighting ? (Var<OTT ? color.red : na) : na
fill(mPlot, pALL, title="UpTrend Highligter", color=longFillColor)
fill(mPlot, pALL, title="DownTrend Highligter", color=shortFillColor)

barcolor(barcoloing ? vColor : na)