یہ حکمت عملی مختلف ادوار کے چلتے ہوئے اوسطوں کا حساب کتاب کرکے موجودہ رجحان کی سمت کی نشاندہی کرتی ہے اور آر ایس آئی اشارے کے ساتھ مل کر تجارتی سگنل تیار کرتی ہے۔ جب مختصر مدت کی چلتی اوسط طویل مدت کی چلتی اوسط سے تجاوز کرتی ہے تو ، رجحان پر غور کیا جاتا ہے اور خرید کا اشارہ پیدا ہوتا ہے۔ جب مختصر مدت کی چلتی اوسط طویل مدت کی چلتی اوسط سے تجاوز کرتی ہے تو ، رجحان کو الٹ سمجھا جاتا ہے اور فروخت کا اشارہ پیدا ہوتا ہے۔ آر ایس آئی اشارے کا استعمال معمولی قیمتوں میں اتار چڑھاؤ کی وجہ سے غلط اشاروں سے بچنے کے لئے کیا جاتا ہے۔
10 دن، 20 دن، 50 دن، 100 دن اور 200 دن کے سادہ چلتے ہوئے اوسط کا حساب لگائیں۔
14 دن کے RSI قدر کا حساب لگائیں.
جب 10 روزہ ایس ایم اے 50 روزہ ایس ایم اے سے اوپر سے عبور کرتا ہے، اور آر ایس آئی 30 سے زیادہ ہے، اور 20 روزہ ایس ایم اے 100 روزہ ایس ایم اے سے زیادہ یا برابر ہے یا 50 روزہ ایس ایم اے 100 روزہ ایس ایم اے سے زیادہ یا برابر ہے، تو خریدیں۔
اسٹاپ نقصان کی قیمت کو انٹری قیمت سے ضرب (1 - اسٹاپ نقصان کا فیصد) مقرر کریں۔
فروخت کریں جب:
یہ حکمت عملی چلتی اوسطوں کا استعمال کرتے ہوئے مارکیٹ کے رجحان کا جائزہ لیتی ہے اور خطرات کو کنٹرول کرنے کے لئے اسٹاپ نقصان مرتب کرتی ہے۔ آر ایس آئی جھوٹے بریک آؤٹس کو فلٹر کرتا ہے۔ جب مختصر مدت کا ایس ایم اے طویل مدت کے ایس ایم اے سے تجاوز کرتا ہے تو یہ خریدتا ہے ، جس سے اپ ٹرینڈ کی نشاندہی ہوتی ہے ، اور ہولڈنگ پیریڈ کے دوران خطرات کو کنٹرول کرنے کے لئے اسٹاپ نقصان کی لائن طے کرتا ہے۔ جب رجحان کی تبدیلی کا اشارہ ہوتا ہے یا اسٹاپ نقصان کی قیمت شروع ہوجاتی ہے تو یہ فروخت کرتا ہے۔
اصلاح کو چلتی اوسط مدت ، اسٹاپ نقصان کی سطح وغیرہ کو ایڈجسٹ کرکے کیا جاسکتا ہے۔ درستگی کو بہتر بنانے کے لئے دوسرے اشارے کے ساتھ مل کر بھی غور کریں۔
اس حکمت عملی میں مجموعی طور پر واضح منطق ہے ، جس میں رجحان کے تعین کے لئے چلنے والے اوسط کا استعمال کیا جاتا ہے اور خطرات کو کنٹرول کرنے کے لئے اسٹاپ نقصان کی ترتیب دی جاتی ہے۔ یہ ایک عام رجحان سے باخبر رہنے کی حکمت عملی ہے۔ پیرامیٹر ٹوننگ اور دیگر اشارے شامل کرنے کے ذریعے مزید بہتری حاصل کی جاسکتی ہے۔ لیکن کوئی حکمت عملی کامل نہیں ہے ، مارکیٹ کی غیر یقینی صورتحال سے نمٹنے کے لئے مسلسل ایڈجسٹمنٹ اور اصلاحات کی ضرورت ہے ، جس کے ساتھ ساتھ مناسب رسک مینجمنٹ بھی ہے۔
/*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)