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