دوہری حرکت پذیر اوسط کراس اوور انٹرا ڈے فیوچر ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-15 16:48:02
ٹیگز:

img

جائزہ

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

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

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

اس کے علاوہ ، حکمت عملی متحرک اسٹاپ نقصان اور منافع کی سطح مقرر کرنے کے لئے اے ٹی آر اشارے کا فائدہ اٹھاتی ہے۔ اے ٹی آر مارکیٹ کی اتار چڑھاؤ کی عکاسی کرتا ہے۔ حکمت عملی اسٹاپ نقصان اور منافع حاصل کرنے کا تعین کرنے کے لئے اے ٹی آر کی قیمت کو ایک عنصر (جیسے 3) سے ضرب دیتا ہے ، اس طرح فی تجارت نقصان کو کنٹرول کرتا ہے۔

آخر میں، یہ حکمت عملی صرف امریکی ٹریڈنگ کے اوقات کے دوران (9:00-14:30 CST) تجارت کو متحرک کرتی ہے تاکہ مارکیٹ کھولنے اور بند ہونے کے ارد گرد اعلی اتار چڑھاؤ سے بچنے کے لئے جہاں غلط سگنل آسانی سے بنتے ہیں۔

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

اس حکمت عملی کے مندرجہ ذیل فوائد ہیں:

  1. دوہری چلتی اوسط کراس اوور مؤثر طریقے سے بروقت اندراج کے لئے رجحان موڑ کے مقامات کو پکڑتا ہے۔

  2. رجحان فلٹر اہم رجحان کے خلاف تجارت سے بچتا ہے اور جھوٹے سگنل کو کم کرتا ہے۔

  3. تجارتی نقصان کے مطابق متحرک اے ٹی آر پر مبنی سٹاپ نقصان کنٹرول۔

  4. تجارت کے اوقات کو محدود کرنے سے غیر مستحکم کھلی اور بند ہونے والے ادوار سے بچنے میں مدد ملتی ہے۔

  5. سادہ اور واضح قواعد، ابتدائیوں کے لئے سمجھنے اور لاگو کرنے کے لئے آسان.

  6. اپنی مرضی کے مطابق پیرامیٹرز جیسے ایم اے کی مدت، اے ٹی آر ضرب، ٹریڈنگ کے اوقات وغیرہ کو بہتر بنانے کے لئے.

خطرے کا تجزیہ

اس حکمت عملی میں مندرجہ ذیل خطرات بھی ہیں:

  1. زیادہ سٹاپ نقصان کی حد کے بازاروں کے دوران ٹرگر.

  2. ڈبل ایم اے کراس اوور میں تاخیر ہوتی ہے اور قلیل مدتی بریک آؤٹ کو یاد کر سکتے ہیں۔

  3. غلط ATR پیرامیٹر کی ترتیب بڑے یا چھوٹے سٹاپ نقصان کی طرف جاتا ہے.

  4. بنیادی تجزیہ کے بغیر صرف تکنیکی اشارے پر انحصار کریں۔

  5. مؤثر طریقے سے مناسب علامت اور وقت کے فریم پر منحصر ہے.

  6. مکینیکل سسٹم میں ثالثی کا خطرہ ہے۔

  7. پیرامیٹرز کو مختلف تجارتی سیشنوں کے لئے ایڈجسٹ کرنے کی ضرورت ہے۔

ان میں پیرامیٹر ٹوننگ ، اشارے کے مجموعے ، انتخابی دستی مداخلت وغیرہ کے ذریعے بہتری آسکتی ہے۔

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

اسٹریٹیجی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:

  1. مختلف ایم اے سسٹم جیسے ای ایم اے، ڈی ایم اے وغیرہ کی جانچ کریں۔

  2. دیگر تکنیکی فلٹرز جیسے MACD، RSI وغیرہ شامل کریں.

  3. بہتر سٹاپ نقصان / منافع کے لئے ATR پیرامیٹرز کو بہتر بنائیں.

  4. اعلی معیار کے انٹری سگنل تلاش کرنے کے لئے حجم اشارے شامل کریں.

  5. علامت کی تفصیلات کی بنیاد پر پیرامیٹرز کو ایڈجسٹ کریں.

  6. مارکیٹ کے خلاف تجارت سے بچنے کے لئے بنیادی عوامل کو ضم کریں۔

  7. مارکیٹ ماڈلنگ کے لیے نیورل نیٹ ورکس کی طرح مشین لرننگ متعارف کروائیں۔

  8. مزید مواقع کے لیے کثیر ٹائم فریم کے مجموعے تلاش کریں۔

  9. مضبوطی کو بہتر بنانے کے لئے حکمت عملی مجموعہ کی تعمیر.

نتیجہ

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


/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 00:00:00
period: 1h
basePeriod: 15m
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/
// © james4392010

//@version=4

strategy(title="DayTradingFutures Cross-Strategy", overlay=true)




// === GENERAL INPUTS ===
Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=true)
//highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn



wmaFastSource   = input(defval = close, title = "Fast WMA Source")
wmaFastLength   = input(defval = 5, title = "Fast WMA Period")
wmaSlowSource   = input(defval = close, title = "Slow WMA Source")
wmaSlowLength   = input(defval = 20, title = "Slow WMA Period")
wmaDirectionSource  = input(defval = close, title = "Trend 50 Period Source")
wmaDirectionLength  = input(defval = 50, title = "Trend 50 Period")
timeinrange(res, sess) => time(res, sess) != 0



// === SERIES SETUP ===
/// a couple of ma's..
wmaFast = wma(close, 5)
wmaSlow = wma(close, 20)
wmaDirection = wma(close, 50)





// === PLOTTING ===
fast = plot(series=wmaFast, color=color.white, linewidth=2)
slow = plot(series=wmaSlow, color=color.yellow, linewidth=2)
direction = plot(series=wmaDirection, color=color.red, linewidth=2)


// === INPUT BACKTEST RANGE ===

//fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
//fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
//fromYear = input(defval = 2022, title = "From Year", minval = 2022)
 
// To Date Inputs
//toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
//toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
//toYear = input(defval = 2022, title = "To Year", minval = 2022)
//startDate = timestamp(fromYear, fromMonth, fromDay)
//finishDate = timestamp(toYear, toMonth, toDay)
//inDateRange= (time >= fromDay, fromMonth, fromYear and time <= toDay, toMonth, toYear) 



// === FUNCTION EXAMPLE ===
//inDateRange = (time >= fromDay, fromMonth, fromYear) and (time <= toDay, toMonth, toYear)


// === LOGIC ===

enterLong = crossover(wmaFast, wmaSlow) and close > wmaDirection and timeinrange(timeframe.period, "0900-1430")
enterShort = crossunder(wmaFast, wmaSlow) and close < wmaDirection and timeinrange(timeframe.period, "0900-1430")

//trend := nz(trend[1], trend)
//trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
//upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)

buySignal = enterLong 
//plotshape(enterLong ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green)
plotshape(enterLong and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white)
//dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)

sellSignal = enterShort
//plotshape(enterShort ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red)
plotshape(enterShort and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white)
//mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
//longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
//shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white
//fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor)
//fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor)
alertcondition(buySignal, title="Buy", message="Buy!")
alertcondition(sellSignal, title="Sell", message="Sell!")
//changeCond = trend != trend[1]
//alertcondition(changeCond, title="SuperTrend Direction Change", message="SuperTrend has changed direction!")



// Entry for strategy //

//tp=input(25,title="TakeProfit")
//sl=input(40,title="StopLoss")

strategy.entry("Long",1, when=buySignal)
//strategy.exit("Exit",profit=tp,loss=sl)
//strategy.exit("TakeProfit",profit=tp)
//strategy.exit("StopLoss",loss=sl)

strategy.entry("Short",1, when=sellSignal)
//strategy.exit("Exit",profit=tp,loss=sl)
//strategy.exit("TakeProfit",profit=tp)
//strategy.exit("StopLoss",loss=sl)
//strategy.exit("Exit", wmaFastwmaSlow)

//Buy and Sell Signals

//strategy.close_all(when =not timeinrange(timeframe.period, "1000-1430"))   


// === FILL ====

fill (fast, slow, color = wmaSlow > wmaDirection ? color.green : color.red)
//fill(when=enterLong, tp, color = color.new(color.green, 90), title = "Profit area")
//fill(when=enterLong, sl, color = color.new(color.red, 90), title = "Loss area")
//fill(when=enterShort, tp, color = color.new(color.green, 90), title = "Profit area")
//fill(when=enterShort, sl, color = color.new(color.red, 90), title = "Loss area")






مزید