سوئنگ ٹرینڈ موونگ اوسط حکمت عملی ایک رجحان کے بعد کا نظام ہے جو رجحان کی سمت کی نشاندہی کرنے کے لئے ایک طویل مدتی چلتی اوسط کا استعمال کرتا ہے جس میں اوسط حقیقی رینج کے ساتھ مل کر جعلی آؤٹ کو فلٹر کرنے اور مجموعی طور پر ڈراؤڈاؤن کو محدود کرنے کے لئے استعمال ہوتا ہے۔ یہ رجحان کی سمت کا تعین کرنے کے لئے ایک توسیعی چلتی اوسط کو اپناتا ہے اور یہ پتہ لگانے کے لئے اوسط حقیقی رینج کا استعمال کرتا ہے کہ آیا یہ غلط بریک آؤٹ ہے۔ اس سے مؤثر طریقے سے رینج مارکیٹوں کو فلٹر کیا جاسکتا ہے اور مجموعی طور پر حکمت عملی کے ڈراؤڈاؤن کو کم کیا جاسکتا ہے۔
حکمت عملی مندرجہ ذیل اصولوں پر مبنی ہے:
اس حکمت عملی کے مندرجہ ذیل فوائد ہیں:
اس حکمت عملی میں کچھ ممکنہ خطرات بھی ہیں:
حکمت عملی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:
مجموعی طور پر ، سوئنگ ٹرینڈ موونگ اوسط حکمت عملی ایک بہت ہی آسان اور عملی رجحان کی پیروی کرنے والی حکمت عملی ہے۔ اس میں خطرہ کا بھی اچھا کنٹرول ہے۔ اگرچہ حکمت عملی میں بہت سارے عوامل پر غور نہیں کیا جاتا ہے ، لیکن پیرامیٹرز اور اسٹاپ نقصان کے طریقوں کی تفصیلی جانچ اور اصلاح کی ضرورت ہے۔ تاہم ، اس کی سادہ تجارتی منطق اور پیرامیٹر کی ترتیبات اسے مختلف مصنوعات پر وسیع پیمانے پر قابل اطلاق بناتی ہیں ، خاص طور پر بٹ کوائن جیسی کریپٹو کرنسیوں کی تجارت کے لئے موزوں ہے۔
/*backtest start: 2023-01-28 00:00:00 end: 2024-02-03 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Inkedlau //@version=5 strategy('Swing Trend Strategy', overlay=true, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=1000, commission_value=0.1) use_short = input.bool(false, 'Open Short Positions?') exit_type = input.bool(true, 'Exit trade on Moving Average Cross?') src = input.source(close, 'Source') len = input.int(200, 'Trend Length') ma_type = input.string('ema', 'Moving Average Type', options=['sma', 'ema', 'rma', 'wma', 'vwma'], tooltip='Select the type of Moving Average to use to calculate the Trend') atr_multiplier = input.float(1., 'ATR Threshold', step=0.5, tooltip='Filter the ranging market using the Average True Range') // ----------------------- DESCRIPTION ----------------------- // THIS SCRIPT IS A TREND FOLLOWING SYSTEM THAT USES A COMBINATION OF MOVING AVERAGE AND AVERAGE TRUE RANGE // TO SPOT THE TRENDS AND ENTER THE MARKET ACCODINGLY. // THE MARKET IS CONSIDERED IN AN UPTREND WHEN THE PRICE CLOSES ABOVE THE MOVING AVERAGE + THE AVERAGE TRUE RANGE OF THE LAST 10 PERIODS // THE MARKET IS CONSIDERED IN AN DOWNTREND WHEN THE PRICE CLOSES BLOW THE MOVING AVERAGE - THE AVERAGE TRUE RANGE OF THE LAST 10 PERIODS // BY DEFAULT, THE STRATEGY WILL ENTER LONG WHEN AN UPTREND IS SPOTTED, THEN CLOSES WHEN THE PRICE CLOSES BELOW THE MOVING AVERAGE // THE STRATEGY WILL ENTER SHORT WHEN A DOWNTREND IS SPOTTED, THEN CLOSES WHEN THE PRICE CLOSES ABOVE THE MOVING AVERAGE // ------------------ INDICATORS CALCULATION------------------ my_ma()=> ma = close if ma_type == 'sma' ma := ta.sma(src, len) if ma_type == 'ema' ma := ta.ema(src, len) if ma_type == 'rma' ma := ta.rma(src, len) if ma_type == 'wma' ma := ta.wma(src, len) if ma_type == 'vwma' ma := ta.vwma(src, len) ma trend = my_ma() atr = ta.atr(10) uptrend = trend + atr * atr_multiplier downtrend = trend - atr * atr_multiplier // ---------------- ENTRY AND EXIT CONDITIONS ---------------- open_long = strategy.position_size == 0 and src > uptrend close_long = exit_type ? strategy.position_size > 0 and src < trend : strategy.position_size > 0 and src < downtrend open_short = use_short and strategy.position_size == 0 and src < downtrend close_short = exit_type ? strategy.position_size < 0 and src > trend : strategy.position_size < 0 and src > uptrend strategy.entry('long', strategy.long, when=open_long) strategy.close('long', when=close_long) strategy.entry('short', strategy.short, when=open_short) strategy.close('short', when=close_short) // ------------------ PLOTTING AND COLORING ------------------ tcolor = src > uptrend ? color.green : src < downtrend ? color.red : na ptrend = plot(trend, color=color.blue, linewidth=1) puptrend = plot(uptrend, color=color.green, linewidth=1) pdowntrend = plot(downtrend, color=color.red, linewidth=1) pclose = plot(close, color=na) fill(puptrend, pclose, color=close > uptrend ? color.green : na, transp = 90) fill(pdowntrend, pclose, color=close < downtrend ? color.red : na, transp = 90)