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

دوہری حرکت پذیر اوسط کراس اوور حکمت عملی کے ساتھ رفتار کی تجارت

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

img

جائزہ

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

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

  1. بنیادی رجحان کی سمت کی نشاندہی کرنے کے لئے آٹھ مدت اور 21 مدت کے EMA کا حساب لگائیں۔
  2. تین مسلسل اعلی کم (HLs) اور تین مسلسل کم اعلی (LHs) کو ممکنہ رجحان کی تبدیلی کے ابتدائی سگنل کے طور پر شناخت کریں.
  3. جب 8 پیریڈ ای ایم اے 21 پیریڈ ای ایم اے سے اوپر جاتا ہے اور ایچ ایل بریک آؤٹ ہوتا ہے تو خریدنے کا سگنل بنائیں۔ جب 8 پیریڈ ای ایم اے 21 پیریڈ ای ایم اے سے نیچے جاتا ہے اور ایل ایچ بریک آؤٹ ہوتا ہے تو فروخت کا سگنل بنائیں۔
  4. اسٹاپ نقصان کی سطح کو 5 فیصد اور منافع کی سطح کو 16 فیصد مقرر کریں تاکہ خطرے کا انتظام کیا جاسکے اور منافع کو مقفل کیا جاسکے۔
  5. پوزیشن بند کریں اور ایک ریورس پوزیشن کھولیں جب مخالف سگنل ظاہر ہوتا ہے.

حکمت عملی کے فوائد

  1. رجحانات کی تصدیق کے لئے EMAs اور قیمت کی کارروائی کے نمونوں (HLs اور LHs) کو یکجا کرتا ہے، سگنل کی وشوسنییتا کو بڑھانے کے.
  2. واضح سٹاپ نقصان اور منافع لینے کی سطح مقرر کرتا ہے، خطرے کو منظم کرنے اور منافع میں مقفل کرنے میں مدد ملتی ہے.
  3. متعدد ٹائم فریموں اور مختلف مارکیٹوں پر لاگو ہوتا ہے، جس میں کچھ سطح کی استرتا پیش کی جاتی ہے۔
  4. واضح منطق، سمجھنے اور لاگو کرنے کے لئے آسان.

حکمت عملی کے خطرات

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

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

  1. اسٹاپ نقصان اور منافع لینے کے موافقت پذیر میکانزم متعارف کروانا، جیسے اتار چڑھاؤ کی بنیاد پر سطحوں کو ایڈجسٹ کرنا (مثال کے طور پر، اے ٹی آر) ، مختلف مارکیٹ کے حالات کو بہتر طور پر اپنانے کے لئے.
  2. سگنل کو مزید فلٹر کرنے اور وشوسنییتا کو بہتر بنانے کے ل other دوسرے اشارے یا عوامل ، جیسے حجم ، رشتہ دار طاقت انڈیکس (آر ایس آئی) وغیرہ شامل کریں۔
  3. پیرامیٹرز کو بہتر بنائیں (مثال کے طور پر، ای ایم اے کی مدت، سٹاپ نقصان اور منافع لینے کے فیصد) مخصوص مارکیٹوں یا آلات کے لئے بہترین کارکردگی کا مظاہرہ کرنے کے لئے.
  4. انفرادی تجارتوں کے خطرے سے متعلق نمائش کو کنٹرول کرنے کے لئے خطرے کے انتظام کے اقدامات ، جیسے پوزیشن سائزنگ کو متعارف کرانے پر غور کریں۔

خلاصہ

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


/*backtest
start: 2023-03-26 00:00:00
end: 2024-03-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Trend Following 8&21EMA with strategy tester [ukiuro7]', overlay=true, process_orders_on_close=true, calc_on_every_tick=true, initial_capital = 10000)

//INPUTS
lh3On = true
hl3On = true
emaOn = input(title='105ema / 30min', defval=true) 
assistantOn = input(title='Assistant', defval=true)
textOn = input(title='Text', defval=true)

showRiskReward = input.bool(true, title='Show Risk/Reward Area', group="TP/SL")
stopPerc = input.float(5.0, step=0.1, minval=0.1, title='Stop-Loss %:',group="TP/SL") / 100
tpPerc = input.float(16.0, step=0.1, minval=0.1, title='Take-Profit %:',group="TP/SL") / 100

backtestFilter = input(false, title='Backtest Entries to Date Range',group="Backtest Date Range")
i_startTime = input(defval=timestamp('01 Jan 2022 00:00'), inline="b_1", title='Start',group="Backtest Date Range")
i_endTime = input(defval=timestamp('01 Jan 2029 00:00'), inline="b_1", title='End',group="Backtest Date Range")
inDateRange = true

message_long_entry = input.string(title='Alert Msg: LONG Entry', defval ='', group='Alert Message')
message_short_entry = input.string(title='Alert Msg: SHORT Entry', defval='', group='Alert Message')
message_long_exit = input.string(title='Alert Msg: LONG SL/TP', defval='', group='Alert Message')
message_short_exit = input.string(title='Alert Msg: SHORT SL/TP', defval='', group='Alert Message')  

//CALCS
threeHigherLows() =>
    low[0] >= low[1] and low[1] >= low[2]

threeLowerHighs() =>
    high[2] >= high[1] and high[1] >= high[0]

breakHigher() =>
    padding = timeframe.isintraday ? .02 : .1
    high >= high[1] + padding

breakLower() =>
    padding = timeframe.isintraday ? .02 : .1
    low <= low[1] - padding

lh3 = threeLowerHighs() and lh3On
lh3bh = lh3[1] and breakHigher() and lh3On

hl3 = threeHigherLows() and hl3On
hl3bl = hl3[1] and breakLower() and hl3On

ema8 = ta.ema(close, 8)
ema21 = ta.ema(close, 21)

//VARS
var float longStop = na, var float longTp = na
var float shortStop = na, var float shortTp = na

//CONDS
isUptrend = ema8 >= ema21
isDowntrend = ema8 <= ema21
trendChanging = ta.cross(ema8, ema21)

buySignal = lh3bh and lh3[2] and lh3[3] and isUptrend and timeframe.isintraday
sellSignal = hl3bl and hl3[2] and hl3[3] and isDowntrend and timeframe.isintraday

goingDown = hl3 and isDowntrend and timeframe.isintraday
goingUp = lh3 and isUptrend and timeframe.isintraday

projectXBuy = trendChanging and isUptrend
projectXSell = trendChanging and isDowntrend

longCond = trendChanging and isUptrend and assistantOn
shortCond = trendChanging and isDowntrend and assistantOn

//STRATEGY
if shortCond and strategy.position_size > 0 and barstate.isconfirmed
    strategy.close('Long', comment='CLOSE LONG', alert_message=message_long_exit)

if longCond and strategy.position_size < 0 and barstate.isconfirmed
    strategy.close('Short', comment='CLOSE SHORT', alert_message=message_short_exit) 

if longCond and strategy.position_size <= 0 and barstate.isconfirmed and inDateRange
    longStop := close * (1 - stopPerc)
    longTp := close * (1 + tpPerc)
    strategy.entry('Long', strategy.long, comment='LONG', alert_message=message_long_entry)
    strategy.exit('Long Exit', 'Long', comment_loss="SL LONG", comment_profit = "TP LONG", stop=longStop, limit=longTp, alert_message=message_long_exit)

if shortCond and strategy.position_size >= 0 and barstate.isconfirmed and inDateRange
    shortStop := close * (1 + stopPerc)
    shortTp := close * (1 - tpPerc)
    strategy.entry('Short', strategy.short, comment='SHORT', alert_message=message_short_entry)
    strategy.exit('Short Exit', 'Short', comment_loss="SL SHORT", comment_profit="TP SHORT", stop=shortStop, limit=shortTp, alert_message=message_short_exit)

//PLOTS
plotshape(longCond, style=shape.triangleup, location=location.belowbar, color=color.new(color.green, 0), size=size.small, text='Buy')
plotshape(shortCond, style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.small, text='Sell')
plotchar(trendChanging and isUptrend and close < open and assistantOn, char='!', location=location.abovebar, color=color.new(color.green, 0), size=size.small)

aa = plot(ema8, linewidth=3, color=color.new(color.green, 0), editable=true)
bb = plot(ema21, linewidth=3, color=color.new(color.red, 0), editable=true)
fill(aa, bb, color=isUptrend ? color.new(color.green,90) : color.new(color.red,90))
buyZone = isUptrend and lh3 and high < ema21 and timeframe.isintraday
sellZone = isDowntrend and hl3 and low > ema21 and timeframe.isintraday

L1 = plot(showRiskReward and strategy.position_size > 0 ? strategy.position_avg_price : na, color=color.new(color.green, 0), linewidth=1, style=plot.style_linebr, title='Long Entry Price')
L2 = plot(showRiskReward and strategy.position_size > 0 ? longTp : na, color=color.new(color.green, 0), linewidth=1, style=plot.style_linebr, title='Long TP Price')
L3 = plot(showRiskReward and strategy.position_size > 0 ? longStop : na, color=color.new(color.red, 0), linewidth=1, style=plot.style_linebr, title='Long Stop Price')

S1 = plot(showRiskReward and strategy.position_size < 0 ? strategy.position_avg_price : na, color=color.new(color.teal, 0), linewidth=1, style=plot.style_linebr, title='Short Entry Price')
S2 = plot(showRiskReward and strategy.position_size < 0 ? shortTp : na, color=color.new(color.teal, 0), linewidth=1, style=plot.style_linebr, title='Short TP Price')
S3 = plot(showRiskReward and strategy.position_size < 0 ? shortStop : na, color=color.new(color.maroon, 0), linewidth=1, style=plot.style_linebr, title='Short Stop Price')

fill(L1, L2, color=color.new(color.green, 90))
fill(L1, L3, color=color.new(color.red, 90))
fill(S1, S2, color=color.new(color.teal, 90))
fill(S1, S3, color=color.new(color.maroon, 90))

bgcolor(inDateRange == false ? color.new(color.red,90) : na, title="Backtest Off-Range") 


مزید