اس حکمت عملی کا بنیادی خیال یہ ہے کہ انٹری پوائنٹ کو تصادفی طور پر طے کیا جائے اور ہر تجارت کے خطرات کو سنبھالنے اور منافع اور نقصان پر قابو پانے کے لئے تین منافع لینے اور ایک اسٹاپ نقصان کا نقطہ مقرر کیا جائے۔
یہ حکمت عملی لانگ انٹری پوائنٹ کا تعین کرنے کے لئے 11 اور 13 کے درمیان بے ترتیب نمبر rd_number_entry کا استعمال کرتی ہے ، اور پوزیشنوں کی بندش کا تعین کرنے کے لئے 20 اور 22 کے درمیان rd_number_exit کا استعمال کرتی ہے۔ طویل عرصے سے جانے کے بعد ، اسٹاپ نقصان کو انٹری قیمت مائنس atr ((14) پر مقرر کیا جاتا ہے۔slx. ایک ہی وقت میں، تین لے منافع پوائنٹس مقرر کر رہے ہیں. پہلا لے منافع نقطہ داخلہ کی قیمت کے علاوہ atr ((14) ہے.tpx، دوسرا منافع حاصل کرنے کا نقطہ داخلہ قیمت کے علاوہ 2 ہےtpx، اور تیسرا منافع لینے کا نقطہ داخلہ کی قیمت کے علاوہ 3 ہےtpx. مختصر جانے کا اصول اسی طرح کا ہے، سوائے اس کے کہ داخلہ کا فیصلہ مختلف rd_number_entry اقدار لیتا ہے، اور منافع لینے اور نقصان کو روکنے کی سمت مخالف ہے۔
خطرے کو ٹی پی ایکس (منافع لینے کا گتانک) اور ایس ایل ایکس (اسٹاپ نقصان کا گتانک) کو ایڈجسٹ کرکے کنٹرول کیا جاسکتا ہے۔
اس حکمت عملی کے فوائد میں شامل ہیں:
اس حکمت عملی کے خطرات میں یہ بھی شامل ہیں:
خطرات کو فائدہ اٹھانے اور نقصان کو روکنے کے ضابطوں کو ایڈجسٹ کرکے اور بے ترتیب اندراج منطق کو بہتر بنانے سے کم کیا جاسکتا ہے۔
حکمت عملی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:
یہ حکمت عملی بے ترتیب اندراج پر مبنی ہے اور ایک ہی تجارت کے خطرے کو کنٹرول کرنے کے لئے متعدد منافع اور اسٹاپ نقصان کے نکات مرتب کرتی ہے۔ اعلی بے ترتیبیت کی وجہ سے ، منحنی فٹنگ کا امکان کم ہوسکتا ہے۔ پیرامیٹر کی اصلاح کے ذریعے تجارتی خطرہ کم کیا جاسکتا ہے۔ مزید اصلاح اور تحقیق کے لئے ابھی بھی بہت زیادہ گنجائش ہے۔
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Random Strategy with 3 TP levels and SL", overlay=true,max_bars_back = 50) tpx = input(defval = 0.8, title = 'Atr multiplication for TPs?') slx = input(defval = 1.2, title = 'Atr multiplication for SL?') isLong = false isLong := nz(isLong[1]) isShort = false isShort := nz(isShort[1]) entryPrice = 0.0 entryPrice := nz(entryPrice[1]) tp1 = true tp1 := nz(tp1[1]) tp2 = true tp2 := nz(tp2[1]) sl_price = 3213.0 sl_price := nz(sl_price[1]) sl_atr = atr(14)*slx tp_atr = atr(14)*tpx rd_number_entry = 1.0 rd_number_entry := (16708 * nz(rd_number_entry[1], 1) % 2147483647)%17 rd_number_exit = 1.0 rd_number_exit := ((16708 * time % 2147483647) %17) //plot(rd_number_entry) shortCondition = (rd_number_entry == 13? true:false) and (year >= 2017) and not isLong and not isShort longCondition = (rd_number_entry == 11 ? true:false) and (year >= 2017) and not isShort and not isShort //Never exits a trade: exitLong = (rd_number_exit == 22?true:false) and (year >= 2018) and not isShort exitShort = (rd_number_exit == 22?true:false) and (year >= 2018) and not isLong //shortCondition = crossunder(sma(close, 14), sma(close, 28)) and year >= 2017 //longCondition = crossover(sma(close, 14), sma(close, 28)) and year >= 2017 //exitLong = crossunder(ema(close, 14), ema(close, 28)) and year >= 2017 //exitShort = crossover(ema(close, 14), ema(close, 28)) and year >= 2017 if (longCondition and not isLong) strategy.entry('Long1', strategy.long) strategy.entry('Long2', strategy.long) strategy.entry('Long3', strategy.long) isLong := true entryPrice := close isShort := false tp1 := false tp2 := false sl_price := close-sl_atr if (shortCondition and not isShort) strategy.entry('Short1', strategy.short) strategy.entry('Short2', strategy.short) strategy.entry('Short3', strategy.short) isShort := true entryPrice := close isLong := false tp1 := false tp2 := false sl_price := close+sl_atr if (exitShort and isShort) strategy.close('Short1') strategy.close('Short2') strategy.close('Short3') isShort := false if (exitLong and isLong) strategy.close('Long1') strategy.close('Long2') strategy.close('Long3') isLong := false if isLong if (close > entryPrice + tp_atr) and not tp1 strategy.close('Long1') tp1 := true sl_price := close - tp_atr if (close > entryPrice + 2*tp_atr) and not tp2 strategy.close('Long2') tp2 := true sl_price := close - tp_atr if (close > entryPrice + 3*tp_atr) strategy.close('Long3') isLong := false if (close < sl_price) strategy.close('Long1') strategy.close('Long2') strategy.close('Long3') isLong := false if isShort if (close < entryPrice - tp_atr) and not tp1 strategy.close('Short1') sl_price := close + tp_atr tp1 := true if (close < entryPrice - 2*tp_atr) and not tp2 strategy.close('Short2') sl_price := close + tp_atr tp2 := true if (close < entryPrice - 3*tp_atr) strategy.close('Short3') isShort := false if (close > sl_price) strategy.close('Short1') strategy.close('Short2') strategy.close('Short3') isShort := false plot(atr(14)*slx) plot(sl_price)