مومنٹم سوئنگ ٹریڈنگ کی حکمت عملی


تخلیق کی تاریخ: 2023-12-15 11:00:25 آخر میں ترمیم کریں: 2023-12-15 11:00:25
کاپی: 0 کلکس کی تعداد: 679
1
پر توجہ دیں
1621
پیروکار

مومنٹم سوئنگ ٹریڈنگ کی حکمت عملی

جائزہ

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

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

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

طاقت کا تجزیہ

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

خطرے کا تجزیہ

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

اصلاح کی سمت

ڈی ایم او کی حکمت عملی کو مندرجہ ذیل جہتوں سے بہتر بنایا جاسکتا ہے: پہلا ، ہل ایم اے کے پیرامیٹرز کو ایڈجسٹ کرنا ، متحرک اوسط کی لمبائی کو بہتر بنانا ، ہموار اثر اور حساسیت کے مابین توازن۔ دوسرا ، ڈونچیئن چینل کے فیصلے کی منطق کو بہتر بنانا ، جیسے چینل پیرامیٹرز کو ایڈجسٹ کرنا ، یا داخلے پر اضافی شرائط کی پابندیوں کو بڑھانا۔ تیسرا ، آدھے پورے اوسط کی بجائے دوسرے اشارے کی کوشش کرنا ، جیسے برن بینڈ ، کے ڈی جے ، وغیرہ ، معاون فلٹرنگ کے اثر کو بہتر بنانا۔ چوتھا ، مختلف قسم کی خصوصیات کے مطابق مناسب تجارتی وقفے کا تعین کرنا ، جیسے 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)