یہ ایس ایس ایل چینل اشارے پر مبنی بیک ٹسٹنگ حکمت عملی ہے ، جس میں ایس ایس ایل چینل حکمت عملی پر زیادہ جامع ٹیسٹ کی سہولت کے لئے اے ٹی آر اسٹاپ نقصان ، اے ٹی آر منافع اور منی مینجمنٹ جیسے افعال کے ساتھ مربوط ہے۔
ایس ایس ایل چینل اشارے میں چینل کی وسط لائن اور چینل بینڈ شامل ہیں۔ چینل کی وسط لائن میں ایک اوپری ٹریک اور ایک نچلی ٹریک شامل ہوتا ہے ، جو عام طور پر بیک بیک مدت میں اعلی اور کم قیمتوں کے سادہ اوسط چلتے ہیں۔ چینل بینڈ اوپری اور نچلی ٹریک کے درمیان تشکیل پائے جاتے ہیں۔
جب قیمت اوپری بینڈ کی طرف بڑھتی ہے تو ، یہ زیادہ خریدنے کی حالت کی نشاندہی کرتی ہے۔ جب قیمت نچلی بینڈ کی طرف بڑھتی ہے تو ، یہ زیادہ فروخت کی حالت کی نشاندہی کرتی ہے۔ چینل بینڈ کی خرابی کا مطلب رجحان کی تبدیلی ہے۔
ایس ایس ایل چینل پیرامیٹر پر مقرر کیا گیا ہےssl_period=16
اس حکمت عملی میں.
اوسط حقیقی رینج (اے ٹی آر) مارکیٹ کی اتار چڑھاؤ کا اندازہ کرتا ہے اور اسے اسٹاپ نقصان اور منافع کی سطح کا تعین کرنے کے لئے استعمال کیا جاسکتا ہے۔
اس حکمت عملی میں 14 مدت کے اے ٹی آر کا استعمال کیا گیا ہے (atr_period=14
) اور متحرک ضاربatr_stop_factor=1.5
اورatr_target_factor=1.0
متغیر سٹاپ نقصان مقرر کرنے اور اتار چڑھاؤ کی بنیاد پر منافع لینے کے لئے.
یہ بھی چیک کرتا ہے کہ آلہ 2 اعشاریہ کی درستگی ہے (two_digit
سونے اور JPY جیسی جوڑیوں کے لئے سٹاپ اور ٹارگٹ کو اس کے مطابق ایڈجسٹ کرنے کے لئے.
منی مینجمنٹ کے ذریعے حاصل کیا جاتا ہےposition_size
(فکسڈ پوزیشن سائزنگ) اورrisk
(ہر تجارت پر خطرے کا فیصد) پیرامیٹرز۔ منی مینجمنٹ ماڈیول کو فعال کیا جائے گا جبuse_mm=true
.
مقصد ہر تجارت کے لئے زیادہ سے زیادہ پوزیشن کا سائز طے کرنا ہے۔ فی تجارت مقررہ خطرہ فیصد کا استعمال کرتے ہوئے ، ہر تجارت پر نقصان کو محدود کرنے کے لئے اکاؤنٹ کے ایکویٹی کی بنیاد پر متحرک طور پر موزوں پوزیشن کا سائز شمار کیا جائے گا۔
ان خطرات کو کم کیا جا سکتا ہے:
اسٹریٹیجی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:
منظم اصلاح کے ساتھ، یہ حکمت عملی ایک مضبوط الگورتھمک ٹریڈنگ سسٹم بن سکتی ہے۔
یہ حکمت عملی رجحان کے لئے ایس ایس ایل چینل ، خطرے کے کنٹرول کے لئے اے ٹی آر ، اور پوزیشن سائزنگ کے لئے منی مینجمنٹ کو جوڑتی ہے۔ جامع بیک ٹیسٹنگ حکمت عملی کا جائزہ لینے اور اسے خودکار تجارتی نظام میں بڑھانے میں سہولت فراہم کرتی ہے۔ فلٹرز شامل کرنے ، پیرامیٹرز کو بہتر بنانے اور فعالیت کو بڑھانے جیسی بہتری کے لئے بھی گنجائش موجود ہے۔ مجموعی طور پر ، یہ الگورتھم تجارتی حکمت عملی کی تعمیر کے لئے ایک ٹھوس بنیاد تشکیل دیتا ہے۔
/*backtest start: 2023-10-23 00:00:00 end: 2023-11-22 00:00:00 period: 2h basePeriod: 15m 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/ // © comiclysm //@version=4 strategy("SSL Backtester", overlay=false) //--This strategy will simply test the effectiveness of the SSL using //--money management and an ATR-derived stop loss //--USER INPUTS two_digit = input(false, "Check this for 2-digit pairs (JPY, Gold, Etc)") ssl_period = input(16, "SSL Period") atr_period = input(14, "ATR Period") atr_stop_factor = input(1.5, "ATR Stop Loss Factor") atr_target_factor = input(1.0, "ATR Target Factor") use_mm = input(true, "Check this to use Money Management") position_size = input(1000, "Position size (for Fixed Risk)") risk = input(0.01, "Risk % in Decimal Form") //--INDICATORS------------------------------------------------------------ //--SSL sma_high = sma(high, ssl_period) sma_low = sma(low, ssl_period) ssl_value = 0 ssl_value := close > sma_high ? 1 : close < sma_low ? -1 : ssl_value[1] ssl_low = ssl_value < 0 ? sma_high : sma_low ssl_high = ssl_value < 0 ? sma_low : sma_high //--Average True Range atr = atr(atr_period) //--TRADE LOGIC---------------------------------------------------------- signal_long = ssl_value > 0 and ssl_value[1] < 0 signal_short = ssl_value < 0 and ssl_value[1] > 0 //--RISK MANAGMENT------------------------------------------------------- strategy.initial_capital = 50000 balance = strategy.netprofit + strategy.initial_capital risk_pips = atr*10000*atr_stop_factor if(two_digit) risk_pips := risk_pips / 100 risk_in_value = balance * risk point_value = syminfo.pointvalue risk_lots = risk_in_value / point_value / risk_pips final_risk = use_mm ? risk_lots * 10000 : position_size //--TRADE EXECUTION----------------------------------------------------- if (signal_long) stop_loss = close - atr * atr_stop_factor target = close + atr * atr_target_factor strategy.entry("Long", strategy.long, final_risk) strategy.exit("X", "Long", stop=stop_loss, limit=target) if (signal_short) stop_loss = close + atr * atr_stop_factor target = close - atr * atr_target_factor strategy.entry("Short", strategy.short, final_risk) strategy.exit("X", "Short", stop=stop_loss, limit=target) //--PLOTTING----------------------------------------------------------- plot(ssl_low, "SSL", color.red, linewidth=1) plot(ssl_high, "SSL", color.lime, linewidth=1)