
حکمت عملی ایک ٹرینڈ ٹریکنگ سسٹم ہے جس کی بنیاد ڈبل موونگ ایوریج کراس اوور سگنلز پر ہوتی ہے، جو کہ ایک متحرک سٹاپ-پرافٹ اور سٹاپ-لاس میکانزم کے ساتھ مل کر ہے۔ حکمت عملی تجارتی سگنلز پیدا کرنے کے لیے 5 مدت اور 12 مدت کے سادہ موونگ ایوریجز (SMAs) کا استعمال کرتی ہے اور ٹیک-پرافٹ اور سٹاپ-لاس کی سطح کو متحرک طور پر ایڈجسٹ کرکے رسک ریٹرن ریشو کو بہتر بناتی ہے۔ ابتدائی ٹیک پرافٹ 10% پر سیٹ کیا جاتا ہے اور سٹاپ لاس 5% پر سیٹ کیا جاتا ہے جب قیمت ایک سازگار سمت میں چلتی ہے تو ٹیک پرافٹ لیول کو 20% پر ایڈجسٹ کیا جاتا ہے اور سٹاپ لاس کو 2.5% تک بڑھا دیا جاتا ہے۔ منافع کی حفاظت کے لیے۔
حکمت عملی کی بنیادی منطق تیز رفتار حرکت اوسط (5 ادوار) اور سست حرکت اوسط (12 ادوار) کے درمیان کراس اوور تعلق پر مبنی ہے۔ جب فاسٹ لائن نیچے سے اوپر کی طرف سست لائن کو عبور کرتی ہے، تو سسٹم ایک لمبا سگنل پیدا کرتا ہے اور ایک پوزیشن کھولتا ہے جب فاسٹ لائن اوپر سے نیچے تک سست لائن کو کراس کرتی ہے، سسٹم پوزیشن کو بند کر دیتا ہے۔ حکمت عملی کی انفرادیت اس کے متحرک رسک مینجمنٹ میکانزم میں مضمر ہے: ایک بار پوزیشن قائم ہونے کے بعد، نظام قیمتوں کے رجحانات کو حقیقی وقت میں مانیٹر کرے گا اور ٹیک پرافٹ اور سٹاپ لاس کی سطحوں کو قیمت میں تبدیلی کے مطابق متحرک طور پر ایڈجسٹ کرے گا تاکہ خطرات کو کنٹرول کرتے ہوئے منافع کو زیادہ سے زیادہ حاصل کیا جا سکے۔ .
یہ حکمت عملی جدید متحرک رسک مینجمنٹ میکانزم کے ساتھ کلاسک موونگ ایوریج کراس اوور سگنلز کو جوڑ کر رجحانات کی موثر گرفت اور خطرات پر متحرک کنٹرول حاصل کرتی ہے۔ حکمت عملی کے ڈیزائن کا تصور واضح ہے، نفاذ کا طریقہ جامع اور موثر ہے، اور اس میں اچھی عملییت اور توسیع پذیری ہے۔ مسلسل اصلاح اور بہتری کے ذریعے، اس حکمت عملی سے حقیقی لین دین میں مستحکم منافع کی کارکردگی کی توقع ہے۔
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("My Moving Average Crossover Strategy with Take Profit and Stop Loss", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
//risk_free_rate = float(request.security("IRUS", "D", close)/request.security("IRUS", "D", close[1]) - 1 ))
// MA periods
fastLength = input.int(5, title="Fast MA Length")
slowLength = input.int(12, title="Slow MA Length")
// Take Profit and Stop Loss
takeProfitLevel = input(10, title="Take Profit (пункты)") // Take profit % from the last price
stopLossLevel = input(5, title="Stop Loss (пункты)") // Stop loss % from the last price
takeProfitLevel_dyn = input(20, title="Dynamic Take Profit (пункты)") // Move TP if current_price higher buy_px
stopLossLevel_dyn = input(2.5, title="Dynamic Stop Loss (пункты)") // S Move SL if current_price higher buy_px
// Вычисление скользящих средних
fastMA = ta.sma(close, fastLength)
slowMA= ta.sma(close, slowLength)
// Conditions for Sell and Buy
longCondition = ta.crossover (fastMA, slowMA) // покупаем, если короткая MA персекает длинную снизу-вверх
shortCondition = ta.crossunder(fastMA, slowMA) // продаем, если короткая MA персекает длинную сверху-вниз
// Buy position condition
if (longCondition)
strategy.entry("Buy", strategy.long)
// Dynamic TP SL leveles
takeProfitPrice = strategy.position_avg_price * (1+ takeProfitLevel / 100)
stopLossPrice = strategy.position_avg_price * (1-stopLossLevel / 100)
entryPrice = strategy.position_avg_price
if (strategy.position_size > 0) // если есть открытая позиция
// takeProfitPrice := entryPrice * (1+ takeProfitLevel / 100)
// stopLossPrice := entryPrice * (1-stopLossLevel / 100)
// // Перемещение Stop Loss и Take Profit
if (close > entryPrice)
takeProfitPrice := close * (1+ takeProfitLevel_dyn / 100)
stopLossPrice := close * (1- stopLossLevel_dyn/ 100)
if (shortCondition)
strategy.close("Buy")
strategy.exit("Take Profit/Stop loss", "Buy", limit=takeProfitPrice, stop=stopLossPrice)
// Drawing MA lines
plot(fastMA, color=color.blue, title="Fast Moving Average")
plot(slowMA, color=color.orange, title="Slow Moving Average")
// Визуализация
plot(longCondition ? na : takeProfitPrice, title="Take Profit Level", color=color.green, linewidth=1, style=plot.style_line)
plot(longCondition ? na: stopLossPrice, title="Stop Loss Level", color=color.red, linewidth=1, style=plot.style_line)