یہ حکمت عملی اتار چڑھاؤ پر مبنی متحرک ٹائمنگ ٹریڈنگ سسٹم ہے ، جس میں رجحان کی پیروی اور رسک مینجمنٹ کی خصوصیات کو جوڑتا ہے۔ حکمت عملی کا بنیادی حصہ مارکیٹ کے رجحان کی تبدیلیوں کی نشاندہی کرنے کے لئے اتار چڑھاؤ چینل کا استعمال کرتا ہے جبکہ تجارتی خطرات پر عین مطابق کنٹرول حاصل کرنے کے لئے اے ٹی آر پر مبنی متحرک پوزیشن مینجمنٹ میکانزم کو شامل کرتا ہے۔ یہ حکمت عملی انتہائی اتار چڑھاؤ والے مارکیٹ ماحول میں کام کرنے کے لئے خاص طور پر موزوں ہے اور مارکیٹ کی اتار چڑھاؤ کے مطابق ہولڈنگ کو اپنانے کے قابل ہے۔
حکمت عملی کا بنیادی منطق مندرجہ ذیل اہم اجزاء پر مبنی ہے:
یہ ایک مکمل تجارتی نظام ہے جو اتار چڑھاؤ ، رجحان کی پیروی اور رسک مینجمنٹ کو جوڑتا ہے۔ یہ حکمت عملی اتار چڑھاؤ کے چینلز کے ذریعے رجحان کی تبدیلیوں کو حاصل کرتی ہے جبکہ رسک کو کنٹرول کرنے کے لئے سائنسی سرمایہ کے انتظام کے طریقوں کو استعمال کرتی ہے۔ اگرچہ کارکردگی مختلف مارکیٹوں میں ناقص ہوسکتی ہے ، لیکن مناسب پیرامیٹر کی اصلاح اور اضافی فلٹرنگ میکانزم کے ذریعہ ، یہ زیادہ تر مارکیٹ کے ماحول میں مستحکم کام کرسکتا ہے۔ اس حکمت عملی کے بنیادی فوائد اس کی موافقت اور رسک کنٹرول کی صلاحیتوں میں پائے جاتے ہیں ، جس سے یہ درمیانی سے طویل مدتی حکمت عملی کی توسیع اور اصلاح کے لئے ایک بنیادی فریم ورک کے طور پر موزوں ہے۔
/*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"}] */ //@version=5 strategy("BNF FUT 5 min Volatility Strategy", overlay=true) // Inputs length = input.int(20, "Length", minval=2) src = input.source(close, "Source") factor = input.float(2.0, "Multiplier", minval=0.25, step=0.25) initial_capital = input.float(100000, "Initial Capital ($)") risk_per_trade = input.float(1.0, "Risk per Trade (%)", minval=0.1, maxval=10.0) // Volatility Stop Function volStop(src, atrlen, atrfactor) => if not na(src) var max = src var min = src var uptrend = true var float stop = na atrM = nz(ta.atr(atrlen) * atrfactor, ta.tr) max := math.max(max, src) min := math.min(min, src) stop := nz(uptrend ? math.max(stop, max - atrM) : math.min(stop, min + atrM), src) uptrend := src - stop >= 0.0 if uptrend != nz(uptrend[1], true) max := src min := src stop := uptrend ? max - atrM : min + atrM [stop, uptrend] // Calculate Volatility Stop [vStop, uptrend] = volStop(src, length, factor) // Plot Volatility Stop plot(vStop, "Volatility Stop", style=plot.style_cross, color=uptrend ? #009688 : #F44336) // Risk Management and Position Sizing atr = ta.atr(length) stop_distance = math.abs(close - vStop) // Distance to stop level position_size = (initial_capital * (risk_per_trade / 100)) / stop_distance // Position size based on risk per trade position_size := math.max(position_size, 1) // Ensure minimum size of 1 // Strategy Logic if not na(vStop) if uptrend and not uptrend[1] // Transition to uptrend strategy.close("Short") strategy.entry("Long", strategy.long, qty=position_size) if not uptrend and uptrend[1] // Transition to downtrend strategy.close("Long") strategy.entry("Short", strategy.short, qty=position_size) // Exit on Stop Hit if strategy.position_size > 0 and low < vStop // Exit long if stop hit strategy.close("Long", comment="Stop Hit") if strategy.position_size < 0 and high > vStop // Exit short if stop hit strategy.close("Short", comment="Stop Hit") if (hour == 15 and minute == 15) strategy.close_all()