یہ حکمت عملی ایک تکنیکی اشارے پر مبنی سوئنگ ٹریڈنگ سسٹم ہے جو متعدد سگنلز کو یکجا کرتا ہے جس میں حرکت پذیر اوسط کراس اوور ، آر ایس آئی اوور بک / اوور سیلڈ حالات ، اور اے ٹی آر پر مبنی اسٹاپ نقصان / منافع حاصل کرنے کی سطح شامل ہیں۔ بنیادی طریقہ کار مختصر مدتی ای ایم اے اور طویل مدتی ایس ایم اے کراس اوور کے ذریعہ مارکیٹ کے رجحانات کو پکڑنے پر انحصار کرتا ہے ، جس کی تصدیق آر ایس آئی سگنلز کے ذریعہ ہوتی ہے ، جس میں متحرک اسٹاپ نقصان اور منافع حاصل کرنے کی سطح اے ٹی آر کا استعمال کرتے ہوئے طے کی جاتی ہے۔ یہ حکمت عملی طویل اور مختصر دونوں تجارتی سمتوں کی حمایت کرتی ہے اور دونوں سمتوں کی لچکدار فعال / غیر فعال کرنے کی اجازت دیتی ہے۔
اسٹریٹیجی میں ایک کثیر پرت تکنیکی اشارے کا نقطہ نظر استعمال کیا جاتا ہے:
حکمت عملی متعدد تکنیکی اشارے کے امتزاج کے ذریعے نسبتا complete مکمل تجارتی نظام تیار کرتی ہے۔ اس کی طاقت سگنل کی تصدیق کی وشوسنییتا اور جامع رسک مینجمنٹ میں ہے ، حالانکہ حکمت عملی کی کارکردگی پر مارکیٹ کے ماحول کے اثرات پر توجہ دینے کی ضرورت ہے۔ تجویز کردہ اصلاح کی سمتوں کے ذریعے ، بہتری کے لئے کافی گنجائش ہے۔ جب براہ راست تجارت پر لاگو ہوتا ہے تو ، پیرامیٹر کی مکمل جانچ اور بیک ٹیسٹنگ کی تصدیق کی سفارش کی جاتی ہے۔
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-10 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © CryptoRonin84 //@version=5 strategy("Swing Trading Strategy with On/Off Long and Short", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Input for turning Long and Short trades ON/OFF enable_long = input.bool(true, title="Enable Long Trades") enable_short = input.bool(true, title="Enable Short Trades") // Input parameters for strategy sma_short_length = input.int(20, title="Short EMA Length", minval=1) sma_long_length = input.int(50, title="Long SMA Length", minval=1) sl_percentage = input.float(1.5, title="Stop Loss (%)", step=0.1, minval=0.1) tp_percentage = input.float(3, title="Take Profit (%)", step=0.1, minval=0.1) risk_per_trade = input.float(1, title="Risk Per Trade (%)", step=0.1, minval=0.1) capital = input.float(10000, title="Initial Capital", step=100) // Input for date range for backtesting start_date = input(timestamp("2020-01-01 00:00"), title="Backtest Start Date") end_date = input(timestamp("2024-12-31 23:59"), title="Backtest End Date") inDateRange = true // Moving averages sma_short = ta.ema(close, sma_short_length) sma_long = ta.sma(close, sma_long_length) // RSI setup rsi = ta.rsi(close, 14) rsi_overbought = 70 rsi_oversold = 30 // ATR for volatility-based stop-loss calculation atr = ta.atr(14) stop_loss_level_long = strategy.position_avg_price - (1.5 * atr) stop_loss_level_short = strategy.position_avg_price + (1.5 * atr) take_profit_level_long = strategy.position_avg_price + (3 * atr) take_profit_level_short = strategy.position_avg_price - (3 * atr) // Position sizing based on risk per trade risk_amount = capital * (risk_per_trade / 100) position_size = risk_amount / (close * sl_percentage / 100) // Long and Short conditions long_condition = ta.crossover(sma_short, sma_long) and rsi < rsi_overbought short_condition = ta.crossunder(sma_short, sma_long) and rsi > rsi_oversold // Execute long trades if (long_condition and inDateRange and enable_long) strategy.entry("Long", strategy.long, qty=position_size) strategy.exit("Take Profit/Stop Loss", "Long", stop=stop_loss_level_long, limit=take_profit_level_long) // Execute short trades if (short_condition and inDateRange and enable_short) strategy.entry("Short", strategy.short, qty=position_size) strategy.exit("Take Profit/Stop Loss", "Short", stop=stop_loss_level_short, limit=take_profit_level_short) // Plot moving averages plot(sma_short, title="Short EMA", color=color.blue) plot(sma_long, title="Long SMA", color=color.red) // Plot RSI on separate chart hline(rsi_overbought, "Overbought", color=color.red) hline(rsi_oversold, "Oversold", color=color.green) plot(rsi, title="RSI", color=color.purple) // Plot signals on chart plotshape(series=long_condition and enable_long, title="Long Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=short_condition and enable_short, title="Short Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Background color for backtest range bgcolor(inDateRange ? na : color.red, transp=90)