یہ حکمت عملی مختلف ادوار میں چلتی اوسط کا حساب کتاب کرکے موجودہ رجحان کی سمت کی نشاندہی کرتی ہے اور آر ایس آئی اشارے کے ساتھ مل کر خرید و فروخت کا اشارہ دیتی ہے۔ جب قلیل مدتی چلتی اوسط پر طویل مدتی چلتی اوسط کو عبور کرتے وقت رجحان کو اوپر کی طرف سمجھا جاتا ہے تو خرید و فروخت کا آپریشن کیا جاتا ہے۔ جب قلیل مدتی چلتی اوسط کے نیچے طویل مدتی چلتی اوسط کو عبور کرتے وقت رجحان کو الٹ دیا جاتا ہے تو فروخت کا آپریشن کیا جاتا ہے۔
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)