وسائل لوڈ ہو رہے ہیں... لوڈنگ...

متحرک رفتار آسکیلیٹر ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-12-15 11:00:25
ٹیگز:

img

جائزہ

ڈائنامک مومنٹم آسکیلیٹر (ڈی ایم او) ٹریڈنگ حکمت عملی ایک 15 منٹ کی قلیل مدتی تجارتی حکمت عملی ہے جو مومنٹم آسکیلیٹر اشارے پر مبنی ہے۔ یہ حکمت عملی متعدد تکنیکی اشارے کو یکجا کرتی ہے تاکہ انتہائی درست تجارتی سگنل پیدا کیے جاسکیں ، جو ابتدائی تاجروں کو کم وقت میں خرید و فروخت کے فیصلے کرنے ، خطرات پر قابو پانے اور منافع میں اضافہ کرنے میں مؤثر طریقے سے مدد فراہم کرسکتی ہے۔

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

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

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

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

خطرے کا تجزیہ

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

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

ڈی ایم او کی حکمت عملی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے: سب سے پہلے ، ہل ایم اے کے پیرامیٹرز کو ہموار اثر اور چلتی اوسط کی حساسیت کو متوازن کرنے کے ل adjust ایڈجسٹ کریں؛ دوسرا ، ڈونچیئن چینل منطق کو بہتر بنائیں ، جیسے چینل پیرامیٹرز کو ایڈجسٹ کرنا یا اضافی پابندیاں شامل کرنا۔ تیسرا ، بہتر فلٹریشن کے لئے ہال ٹرینڈ کی جگہ لینے کے لئے دوسرے اشارے آزمائیں ، جیسے بولنگر بینڈ ، کے ڈی جے وغیرہ۔ چوتھا ، مختلف تجارتی آلات کی خصوصیات کی بنیاد پر مناسب تجارتی وقفے کی وضاحت کریں ، مثال کے طور پر اسے 5 منٹ یا 30 منٹ کی حکمت عملی میں تبدیل کریں۔ ان اصلاحاتی اقدامات سے استحکام کو بڑھانے کے لئے مارکیٹ کے حالات اور آلہ کی خصوصیات کے مطابق ڈی ایم او کی حکمت عملی کو اپنی مرضی کے مطابق بنانے میں مدد مل سکتی ہے۔

نتیجہ

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


/*backtest
start: 2022-12-08 00:00:00
end: 2023-12-14 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/
// © kgynofomo

//@version=5
strategy(title="[Salavi] | Andy Super Pro Strategy [BTC|M15]",overlay = true, pyramiding = 1,initial_capital = 10000, default_qty_type = strategy.cash,default_qty_value = 10000)

//Doinchian Trend Ribbon
dlen = input.int(defval=30, minval=10)

dchannel(len) =>
    float hh = ta.highest(len)
    float ll = ta.lowest(len)

    int trend = 0
    trend := close > hh[1] ? 1 : close < ll[1] ? -1 : nz(trend[1])
    trend

dchannelalt(len, maintrend) =>
    float hh = ta.highest(len)
    float ll = ta.lowest(len)

    int trend = 0
    trend := close > hh[1] ? 1 : close < ll[1] ? -1 : nz(trend[1])
    maintrend == 1 ? trend == 1 ? #00FF00ff : #00FF009f : maintrend == -1 ? trend == -1 ? #FF0000ff : #FF00009f : na

maintrend = dchannel(dlen)
donchian_bull = maintrend==1
donchian_bear = maintrend==-1


//Hulls
src = input(hlc3, title='Source')
modeSwitch = input.string('Hma', title='Hull Variation', options=['Hma', 'Thma', 'Ehma'])
length = input(55, title='Length')
lengthMult = input(1.0, title='Length multiplier ')

useHtf = false
htf = '240'

switchColor = true
candleCol = false
visualSwitch = true
thicknesSwitch = 1
transpSwitch = 40

//FUNCTIONS
//HMA
HMA(_src, _length) =>
    ta.wma(2 * ta.wma(_src, _length / 2) - ta.wma(_src, _length), math.round(math.sqrt(_length)))
//EHMA    
EHMA(_src, _length) =>
    ta.ema(2 * ta.ema(_src, _length / 2) - ta.ema(_src, _length), math.round(math.sqrt(_length)))
//THMA    
THMA(_src, _length) =>
    ta.wma(ta.wma(_src, _length / 3) * 3 - ta.wma(_src, _length / 2) - ta.wma(_src, _length), _length)

//SWITCH
Mode(modeSwitch, src, len) =>
    modeSwitch == 'Hma' ? HMA(src, len) : modeSwitch == 'Ehma' ? EHMA(src, len) : modeSwitch == 'Thma' ? THMA(src, len / 2) : na

//OUT
_hull = Mode(modeSwitch, src, int(length * lengthMult))
HULL = useHtf ? request.security(syminfo.ticker, htf, _hull) : _hull
MHULL = HULL[0]
SHULL = HULL[2]

//COLOR
hullColor = switchColor ? HULL > HULL[2] ? #00ff00 : #ff0000 : #ff9800
hull_bull = HULL > HULL[2]
bull_start = hull_bull and hull_bull[1]==false
hull_bear = HULL < HULL[2]
bear_start = hull_bear and hull_bear[1]==false

barcolor(color=candleCol ? switchColor ? hullColor : na : na)

//halftrend
amplitude = input(title='Amplitude', defval=2)
channelDeviation = input(title='Channel Deviation', defval=2)
// showArrows = input(title='Show Arrows', defval=true)
// showChannels = input(title='Show Channels', defval=true)

var int trend = 0
var int nextTrend = 0
var float maxLowPrice = nz(low[1], low)
var float minHighPrice = nz(high[1], high)

var float up = 0.0
var float down = 0.0
float atrHigh = 0.0
float atrLow = 0.0
float arrowUp = na
float arrowDown = na

atr2 = ta.atr(100) / 2
dev = channelDeviation * atr2

highPrice = high[math.abs(ta.highestbars(amplitude))]
lowPrice = low[math.abs(ta.lowestbars(amplitude))]
highma = ta.sma(high, amplitude)
lowma = ta.sma(low, amplitude)

if nextTrend == 1
    maxLowPrice := math.max(lowPrice, maxLowPrice)

    if highma < maxLowPrice and close < nz(low[1], low)
        trend := 1
        nextTrend := 0
        minHighPrice := highPrice
        minHighPrice
else
    minHighPrice := math.min(highPrice, minHighPrice)

    if lowma > minHighPrice and close > nz(high[1], high)
        trend := 0
        nextTrend := 1
        maxLowPrice := lowPrice
        maxLowPrice

if trend == 0
    if not na(trend[1]) and trend[1] != 0
        up := na(down[1]) ? down : down[1]
        arrowUp := up - atr2
        arrowUp
    else
        up := na(up[1]) ? maxLowPrice : math.max(maxLowPrice, up[1])
        up
    atrHigh := up + dev
    atrLow := up - dev
    atrLow
else
    if not na(trend[1]) and trend[1] != 1
        down := na(up[1]) ? up : up[1]
        arrowDown := down + atr2
        arrowDown
    else
        down := na(down[1]) ? minHighPrice : math.min(minHighPrice, down[1])
        down
    atrHigh := down + dev
    atrLow := down - dev
    atrLow

ht = trend == 0 ? up : down

var color buyColor = color.blue
var color sellColor = color.red

htColor = trend == 0 ? buyColor : sellColor
// htPlot = plot(ht, title='HalfTrend', linewidth=2, color=htColor)

// atrHighPlot = plot(showChannels ? atrHigh : na, title='ATR High', style=plot.style_circles, color=color.new(sellColor, 0))
// atrLowPlot = plot(showChannels ? atrLow : na, title='ATR Low', style=plot.style_circles, color=color.new(buyColor, 0))

// fill(htPlot, atrHighPlot, title='ATR High Ribbon', color=color.new(sellColor, 90))
// fill(htPlot, atrLowPlot, title='ATR Low Ribbon', color=color.new(buyColor, 90))

HalfTrend_buySignal = not na(arrowUp) and trend == 0 and trend[1] == 1
HalfTrend_sellSignal = not na(arrowDown) and trend == 1 and trend[1] == 0

// plotshape(showArrows and buySignal ? atrLow : na, title='Arrow Up', style=shape.triangleup, location=location.absolute, size=size.tiny, color=color.new(buyColor, 0))
// plotshape(showArrows and sellSignal ? atrHigh : na, title='Arrow Down', style=shape.triangledown, location=location.absolute, size=size.tiny, color=color.new(sellColor, 0))




//ema
filter_ema = ta.ema(close,200)
ema_bull = close>filter_ema
ema_bear = close<filter_ema

atr_length = input.int(7)
atr = ta.atr(atr_length)
atr_rsi_length = input.int(50)
atr_rsi = ta.rsi(atr,atr_rsi_length)
atr_valid = atr_rsi>50

longCondition = bull_start and atr_valid
shortCondition = bear_start and atr_valid

Exit_long_condition = shortCondition
Exit_short_condition = longCondition

if longCondition
    strategy.entry("Andy Buy",strategy.long, limit=close,comment="Andy Buy Here")

if Exit_long_condition
    strategy.close("Andy Buy",comment="Andy Buy Out")
    // strategy.entry("Andy fandan Short",strategy.short, limit=close,comment="Andy 翻單 short Here")
    // strategy.close("Andy fandan Buy",comment="Andy short Out")


if shortCondition
    strategy.entry("Andy Short",strategy.short, limit=close,comment="Andy short Here")


// strategy.exit("STR","Long",stop=longstoploss)
if Exit_short_condition
    strategy.close("Andy Short",comment="Andy short Out")
    // strategy.entry("Andy fandan Buy",strategy.long, limit=close,comment="Andy 翻單 Buy Here")
    // strategy.close("Andy fandan Short",comment="Andy Buy Out")




inLongTrade = strategy.position_size > 0
inLongTradecolor = #58D68D
notInTrade = strategy.position_size == 0
inShortTrade = strategy.position_size < 0

// bgcolor(color = inLongTrade?color.rgb(76, 175, 79, 70):inShortTrade?color.rgb(255, 82, 82, 70):na)
plotshape(close!=0,location = location.bottom,color = inLongTrade?color.green:inShortTrade?color.red:na)


plotshape(longCondition, title='Buy', text='Andy Buy', style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), textcolor=color.new(color.white, 0), size=size.tiny)
plotshape(shortCondition, title='Sell', text='Andy Sell', style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), size=size.tiny)

Fi1 = plot(MHULL, title='MHULL', color=hullColor, linewidth=thicknesSwitch, transp=50)
Fi2 = plot(SHULL, title='SHULL', color=hullColor, linewidth=thicknesSwitch, transp=50)

fill(Fi1, Fi2, title='Band Filler', color=hullColor, transp=transpSwitch)




مزید