متحرک رجحانات کی پیروی کرنے کی بہتر حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-01-12 11:20:04
ٹیگز:

img

جائزہ

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

حکمت عملی منطق

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

فوائد کا تجزیہ

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

خطرے کا تجزیہ

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

خطرے کے حل:

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

اصلاح کی ہدایات

  1. غلط سگنل کو فلٹر کرنے کے لئے مزید اشارے شامل کریں
  2. اسٹاپ نقصان کی حد کی اے آئی خودکار اصلاح
  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)





مزید