
یہ حکمت عملی ایک اعلی درجے کی تجارتی نظام ہے جو کثیر ٹائم سائیکل تجزیہ پر مبنی ہے ، جو اعلی درجے کی ٹائم سائیکل پر اہم محور پوائنٹس کی نشاندہی کرکے مارکیٹ میں الٹ جانے کے مواقع کو پکڑتا ہے۔ حکمت عملی میں متحرک فیصد اسٹاپ نقصان کا طریقہ کار شامل ہے ، جو خطرے کو مؤثر طریقے سے کنٹرول کرنے کے ساتھ ساتھ مستحکم منافع کی تلاش میں ہے۔ اس نظام میں ٹریڈنگ وقفہ کنٹرول اور ٹائم رینج ٹیسٹنگ کی خصوصیات بھی شامل ہیں ، جو اسے حقیقی ٹریڈنگ ڈسک ماحول کے لئے زیادہ موزوں بناتی ہیں۔
حکمت عملی کی بنیادی منطق درج ذیل کلیدی عناصر پر مبنی ہے:
یہ حکمت عملی ایک مکمل تجارتی نظام کا فریم ورک فراہم کرتی ہے جس میں ملٹی ٹائم سائیکل تجزیہ اور متحرک رسک مینجمنٹ شامل ہے۔ اگرچہ کچھ جگہیں ہیں جہاں اصلاح کی ضرورت ہے ، لیکن مجموعی طور پر ڈیزائن کا نظریہ معقول ہے اور اس کی عمدہ افادیت ہے۔ تجویز کردہ اصلاح کی سمت کے ذریعہ ، حکمت عملی کو مختلف مارکیٹ کے ماحول میں زیادہ مستحکم کارکردگی کا امکان ہے۔
/*backtest
start: 2025-01-01 00:00:00
end: 2025-01-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Pivot Reversal Strategy with MTF TP & SL in Percent and Test Range", overlay=true)
// Входные параметры
higher_tf = input.timeframe("60", title="Higher Timeframe for Breakout Check") // Таймфрейм для анализа пробоя
leftBars = input(4, title="Left Bars")
rightBars = input(2, title="Right Bars")
TP_percent = input.float(1.0, title="Take Profit (%)", minval=0.1, step=0.1) // Тейк-профит в процентах
SL_percent = input.float(0.5, title="Stop Loss (%)", minval=0.1, step=0.1) // Стоп-лосс в процентах
trade_interval = input.int(1440, title="Minimum Time Between Trades (Minutes)") // Интервал между сделками
// Диапазон тестирования (используем UNIX timestamps)
start_date = input(timestamp("2023-01-01 00:00 +0000"), title="Start Date") // Стартовая дата для тестирования
end_date = input(timestamp("2023-12-31 23:59 +0000"), title="End Date") // Конечная дата для тестирования
// Проверка, попадает ли текущая свеча в указанный диапазон времени
in_test_range = true
// Определение пивотов на более крупном таймфрейме
higher_tf_high = request.security(syminfo.tickerid, higher_tf, ta.pivothigh(leftBars, rightBars))
higher_tf_low = request.security(syminfo.tickerid, higher_tf, ta.pivotlow(leftBars, rightBars))
// Последнее время открытия сделки
var float last_trade_time = na
// Логика для лонга
swh_cond = not na(higher_tf_high)
hprice = 0.0
hprice := swh_cond ? higher_tf_high : hprice[1]
le = false
le := swh_cond ? true : (le[1] and high > hprice ? false : le[1])
if le and in_test_range and (na(last_trade_time) or (time - last_trade_time >= trade_interval * 60 * 1000))
tp_price_long = hprice * (1 + TP_percent / 100) // Тейк-профит в процентах
sl_price_long = hprice * (1 - SL_percent / 100) // Стоп-лосс в процентах
strategy.entry("PivRevLE", strategy.long, stop=hprice + syminfo.mintick)
strategy.exit("TP_SL_Long", from_entry="PivRevLE",
limit=tp_price_long,
stop=sl_price_long)
last_trade_time := time
// Логика для шорта
swl_cond = not na(higher_tf_low)
lprice = 0.0
lprice := swl_cond ? higher_tf_low : lprice[1]
se = false
se := swl_cond ? true : (se[1] and low < lprice ? false : se[1])
if se and in_test_range and (na(last_trade_time) or (time - last_trade_time >= trade_interval * 60 * 1000))
tp_price_short = lprice * (1 - TP_percent / 100) // Тейк-профит в процентах
sl_price_short = lprice * (1 + SL_percent / 100) // Стоп-лосс в процентах
strategy.entry("PivRevSE", strategy.short, stop=lprice - syminfo.mintick)
strategy.exit("TP_SL_Short", from_entry="PivRevSE",
limit=tp_price_short,
stop=sl_price_short)
last_trade_time := time
// Для наглядности отображаем уровни на графике
plot(le and in_test_range ? hprice * (1 + TP_percent / 100) : na, color=color.green, title="Long Take Profit")
plot(le and in_test_range ? hprice * (1 - SL_percent / 100) : na, color=color.red, title="Long Stop Loss")
plot(se and in_test_range ? lprice * (1 - TP_percent / 100) : na, color=color.green, title="Short Take Profit")
plot(se and in_test_range ? lprice * (1 + SL_percent / 100) : na, color=color.red, title="Short Stop Loss")