موونگ ایوریج سسٹم ٹریڈنگ اسٹریٹیجی


تخلیق کی تاریخ: 2024-01-05 15:36:00 آخر میں ترمیم کریں: 2024-01-05 15:36:00
کاپی: 1 کلکس کی تعداد: 683
1
پر توجہ دیں
1617
پیروکار

موونگ ایوریج سسٹم ٹریڈنگ اسٹریٹیجی

جائزہ

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

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

منتقل اوسط کا حساب

یہ حکمت عملی مندرجہ ذیل پیرامیٹرز کا استعمال کرتے ہوئے اوسط منتقل کرنے کا حساب لگاتا ہے:

  • MA ماخذ: ڈیفالٹ OHLC کی اوسط ((OHCL4)
  • ایم اے کی قسم: ڈیفالٹ سادہ منتقل اوسط ((ایس ایم اے)
  • ایم اے کی لمبائی: ڈیفالٹ 17

ان پیرامیٹرز کی بنیاد پر ، getMAType () فنکشن کو 17 سائیکلوں کے اختتامی قیمت SMA کا حساب لگانے کے لئے کہا جاتا ہے۔

ٹریڈنگ سگنل کی تخلیق

اس کے بعد بند ہونے والی قیمتوں کا موازنہ اس حرکت پذیر اوسط سے کیا جاتا ہے:

  • بند ہونے کی قیمت > حرکت پذیری اوسط: طویل پوزیشن سگنل
  • اختتامی قیمت < منتقل اوسط: خالی پوزیشن کا اشارہ

جب بندش کی قیمت نیچے سے چلنے والی اوسط سے گزرتی ہے تو ، ایک کثیر سگنل پیدا ہوتا ہے۔ جب اوپر سے نیچے سے گزرتی ہے تو ، ایک کاؤک سگنل پیدا ہوتا ہے۔

ٹرانزیکشنز پر عملدرآمد

ریٹرننگ سائیکل کے دوران ، زیادہ سگنل ملنے پر زیادہ پوزیشن کھولی جاتی ہے ، اور خالی سگنل ملنے پر خالی پوزیشن کھولی جاتی ہے۔

طاقت کا تجزیہ

اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ اس کی سوچ بہت سادہ اور واضح ہے۔ صرف ایک اشارے کے ذریعہ ، اس کی سمت میں تبدیلی کے ذریعہ رجحانات کی تبدیلی کا فیصلہ کیا جاسکتا ہے۔ حکمت عملی کو سمجھنا آسان ہے ، اس پر عمل درآمد کرنا آسان ہے ، اور ابتدائی سیکھنے کے لئے موزوں ہے۔

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

پیرامیٹرز کو ایڈجسٹ کرکے ، مختلف ادوار اور مختلف اقسام کے مطابق ڈھال لیا جاسکتا ہے۔

خطرے کا تجزیہ

سب سے پہلے ، یہ حکمت عملی صرف ایک اشارے پر مبنی ہے ، جس کا فیصلہ کرنے کا معیار ایک ہی ہے ، اور اس سے زیادہ غلط سگنل پیدا ہوسکتے ہیں۔

اس کے علاوہ، یہ حکمت عملی ایک رجحان ٹریکنگ سسٹم ہے، اور اس کے ساتھ ساتھ مستحکم اور غیر مستحکم مارکیٹوں میں کام نہیں کر سکتا.

اس کے علاوہ، کوئی سٹاپ نقصان کی روک تھام نہیں ہے، نقصانات کو بڑھانے کا خطرہ ہے.

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

اصلاح کی سمت

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

  1. منتقل اوسط پیرامیٹرز کو ایڈجسٹ کریں ، دوروں کی تعداد کو بہتر بنائیں۔ مثال کے طور پر 30 یا 50 دوروں میں تبدیل کریں۔

  2. مختلف قسم کے متحرک اوسط جیسے ای ایم اے ، ویڈیا وغیرہ کی کوشش کریں۔ ان کی قیمتوں میں تبدیلی کی مختلف حساسیت ہوتی ہے۔

  3. دوسرے اشارے کے ساتھ جوڑ شامل کریں۔ مثال کے طور پر MACD کے ساتھ جوڑ ، مضبوط اور کمزور کا فیصلہ کرنے کے قابل۔ یا RSI کے ساتھ جوڑ ، غلط سگنل کو کم کریں۔

  4. نقصان کی روک تھام کو بڑھانا۔ ایک مقررہ فیصد یا اے ٹی آر کی قیمت پر چلنے والی روک تھام کا تعین کریں۔ ایک ہی نقصان کو کنٹرول کریں۔

  5. روک تھام کے طریقہ کار میں اضافہ کریں۔ منافع کی ہدف فیصد مقرر کریں۔ منافع کو زیادہ سے زیادہ کریں۔

یہ اصلاحات حکمت عملی کی کارکردگی کو مستحکم کرتی ہیں اور زیادہ سے زیادہ واپسیوں سے بچنے میں مدد کرتی ہیں۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-12-05 00:00:00
end: 2024-01-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Simple 17 BF 🚀", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0)

/////////////// Time Frame ///////////////
testStartYear = input(2012, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true

///////////// Moving Average /////////////
source = input(title="MA Source", defval=ohlc4)
maType = input(title="MA Type", defval="sma", options=["sma", "ema", "swma", "wma", "vwma", "rma"])
length = input(title="MA Length", defval=17)

///////////// Get MA Function /////////////
getMAType(maType, sourceType, maLen) => 
    res = sma(close, 1)
    
    if maType == "ema"
        res := ema(sourceType, maLen)
    if maType == "sma"
        res := sma(sourceType, maLen)
    if maType == "swma"
        res := swma(sourceType)
    if maType == "wma"
        res := wma(sourceType, maLen)
    if maType == "vwma"
        res := vwma(sourceType, maLen)
    if maType == "rma"
        res := rma(sourceType, maLen)
    res
    
MA = getMAType(maType, source, length)

/////////////// Strategy ///////////////
long = close > MA
short = close < MA

last_long = 0.0
last_short = 0.0
last_long := long ? time : nz(last_long[1])
last_short := short ? time : nz(last_short[1])

long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)

/////////////// Execution /////////////// 
if testPeriod()
    strategy.entry("L", strategy.long, when=long_signal)
    strategy.entry("S", strategy.short, when=short_signal)

/////////////// Plotting /////////////// 
p1 = plot(MA, color = long ? color.lime : color.red, linewidth=2)
p2 = plot(close, linewidth=2)
fill(p1, p2, color=strategy.position_size > 0 ? color.lime : strategy.position_size < 0 ? color.red : color.white, transp=80)