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

چلتی اوسط پر مبنی رجحان کی پیروی کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-10-07 15:04:00
ٹیگز:

جائزہ

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

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

  1. 10 دن، 20 دن، 50 دن، 100 دن اور 200 دن کے سادہ چلتے ہوئے اوسط کا حساب لگائیں۔

  2. 14 دن کے RSI قدر کا حساب لگائیں.

  3. جب 10 روزہ ایس ایم اے 50 روزہ ایس ایم اے سے اوپر سے عبور کرتا ہے، اور آر ایس آئی 30 سے زیادہ ہے، اور 20 روزہ ایس ایم اے 100 روزہ ایس ایم اے سے زیادہ یا برابر ہے یا 50 روزہ ایس ایم اے 100 روزہ ایس ایم اے سے زیادہ یا برابر ہے، تو خریدیں۔

  4. اسٹاپ نقصان کی قیمت کو انٹری قیمت سے ضرب (1 - اسٹاپ نقصان کا فیصد) مقرر کریں۔

  5. فروخت کریں جب:

    • 10 روزہ ایس ایم اے 50 روزہ ایس ایم اے سے نیچے کی حد کو عبور کرتا ہے اور بند 20 روزہ ایس ایم اے سے نیچے ہوتا ہے: رجحان کی تبدیلی فروخت کا اشارہ
    • بندش داخلہ قیمت کے 95 فیصد سے کم ہے: سٹاپ نقصان فروخت
    • بندش سٹاپ نقصان کی قیمت سے نیچے ہے: اسٹاپ نقصان کی فروخت

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

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

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

خطرے کا تجزیہ

  • چلتی اوسطوں میں تاخیر ہوتی ہے اور قیمت کی تبدیلی کے لئے بہترین ٹائمنگ سے محروم ہوسکتی ہے
  • اسٹاپ نقصان کی ترتیب بہت لچکدار ہو سکتی ہے جس کی وجہ سے ایک ہی تجارت کے لئے بڑے نقصانات ہوسکتے ہیں
  • سٹاپ نقصان مقرر بہت تنگ بہت بار بار سٹاپ نقصان ٹرگرز کا سبب بن سکتا ہے
  • ٹریلنگ اسٹاپ نقصان بہت جلد باہر نکل سکتا ہے زیادہ منافع کی کمی

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

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

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

خلاصہ

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


/*backtest
start: 2022-09-30 00:00:00
end: 2023-10-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MA_Script", overlay=true)

// STEP 1:
// Configure trail stop level with input options (optional)
longTrailPerc=input(title="Trail Long Loss (%)", type=input.float, minval=0.0, step=0.05, defval=0.1)

// Configure backtest start date with inputs
startDate=input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=31)
startMonth=input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12)
startYear=input(title="Start Year", type=input.integer, defval=2020, minval=1800, maxval=2100)

// See if this bar's time happened on/after start date
afterStartDate=(time >=timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0))

// Calculate Relative Strength Index
rsiValue=rsi(close, 14)

// Calculate moving averages
MA10_Val =sma(close, 10)
//plot(MA10_Val, color=color.yellow, linewidth=1)

MA20_Val =sma(close, 20)
plot(MA20_Val, color=color.green, linewidth=1)

MA50_Val =sma(close, 50)
plot(MA50_Val, color=color.red, linewidth=1)

MA100_Val =sma(close, 100)
plot(MA100_Val, color=color.blue, linewidth=1) 

MA200_Val =sma(close, 200)
plot(MA200_Val, color=color.purple, linewidth=1) 

// Calculate candlestick
C_BodyHi = max(close, open)
C_BodyLo = min(close, open)
C_Body = C_BodyHi - C_BodyLo
C_UpShadow = high - C_BodyHi
C_DnShadow = C_BodyLo - low

// STEP 2:
// Calculate entry trading conditions
buyCondition_1=crossover(MA10_Val, MA50_Val) and (rsiValue > 30) and ((MA20_Val >=  MA100_Val) or (MA50_Val >=  MA100_Val))
avg_price = (close + open)/2

// First Entry
if (afterStartDate)
    strategy.entry(id="Entry_Trade_1", long=true, limit=avg_price, when=buyCondition_1)

plotchar(afterStartDate and crossover(MA10_Val, MA50_Val), textcolor = color.blue, text = 'MA\n')

// Determine trail stop loss prices
longStopPrice=0.0

longStopPrice :=if (strategy.position_size > 0)
    stopValue=C_BodyHi * (1 - longTrailPerc)
    max(stopValue, longStopPrice[1])
else
    0
plot(longStopPrice, color=color.orange, linewidth=1)

bought_1=strategy.position_size[0] > strategy.position_size[1]
entry_Point_1=valuewhen(bought_1, avg_price, 0)

// STEP 3:
// Calculate exit trading conditions
sellCondition_2=crossunder(MA10_Val, MA50_Val) and (close < MA20_Val)
sellCondition_3_temp=valuewhen((C_BodyHi >= entry_Point_1*1.2), 1, 0)
sellCondition_1=(entry_Point_1*0.95 > close) and (sellCondition_3_temp != 1)
sellCondition_3=(sellCondition_3_temp == 1) and (strategy.position_size > 0) and close <= longStopPrice
plotchar((sellCondition_3 == 1) and (strategy.position_size > 0) and close <= longStopPrice, textcolor = color.red, text = 'TS\n', show_last = 11)
plotchar(crossunder(MA10_Val, MA50_Val), textcolor = color.red, text = 'MA\n')

id_val = ""
stop_val = close
condition = false

if sellCondition_1
    id_val := "Exit By Stop Loss At 7%"
    stop_val := entry_Point_1*0.93
    condition := true
else if sellCondition_2
    id_val := "Exit By Take Profit based on MA"
    stop_val := close
    condition := true
else if sellCondition_3
    id_val := "Exit By Trailing Stop"
    stop_val := longStopPrice
    condition := true

// Submit exit orders for trail stop loss price
if (strategy.position_size > 0)
    //strategy.exit(id="Exit By Stop Loss At 7%", from_entry="Entry_Trade_1", stop=entry_Point_1*0.93, when=sellCondition_1)
    //strategy.exit(id="Exit By Take Profit based on MA", from_entry="Entry_Trade_1", stop=close, when=sellCondition_2)
    strategy.exit(id=id_val, from_entry="Entry_Trade_1", stop=stop_val, when=condition)
    
    


مزید