
یہ ایک ٹریڈنگ حکمت عملی ہے جو میڈین ریگریشن پر مبنی ہے اور اس میں مختصر مدت میں قیمتوں میں ردوبدل کے مواقع کو پکڑنے کے لئے لگاتار گرنے اور بڑھنے والی K لائن کی شکلوں کی نشاندہی کی جاتی ہے۔ حکمت عملی کا بنیادی منطق یہ ہے کہ لگاتار 3 گرنے والی K لائنوں کے بعد زیادہ اندراج کیا جائے اور لگاتار 3 بڑھتی ہوئی K لائنوں کے بعد خالی پوزیشن سے باہر نکلیں۔ حکمت عملی کو ٹریڈنگ کے معیار کو بہتر بنانے کے لئے ای ایم اے کی یکساں لائن فلٹر کے ساتھ اختیاری طور پر بھی جوڑا جاسکتا ہے۔
حکمت عملی درج ذیل بنیادی عناصر پر مبنی ہے:
یہ ایک معقول ڈیزائن شدہ اوسط واپسی کی حکمت عملی ہے ، جس میں قلیل مدتی قیمتوں میں اضافے اور کمی کے موقع کو پکڑ کر منافع حاصل کیا جاتا ہے۔ حکمت عملی کا بنیادی فائدہ یہ ہے کہ اس کی منطق سادہ اور لچکدار ہے ، لیکن عملی اطلاق میں خطرے کو کنٹرول کرنے پر توجہ دینے کی ضرورت ہے۔ اسٹریٹجک استحکام کو روکنے کے طریقہ کار کو شامل کرنے ، فلٹرنگ کے حالات کو بہتر بنانے اور اسی طرح کے طریقوں سے بڑھانے کی تجویز ہے۔
/*backtest
start: 2025-01-19 00:00:00
end: 2025-02-18 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("3 Down, 3 Up Strategy", overlay=true, initial_capital = 1000000, default_qty_value = 200, default_qty_type = strategy.percent_of_equity, process_orders_on_close = true, margin_long = 5, margin_short = 5, calc_on_every_tick = true)
//#region INPUTS SECTION
// ============================================
// Time Settings
// ============================================
startTimeInput = input(timestamp("1 Jan 2014"), "Start Time", group = "Time Settings")
endTimeInput = input(timestamp("1 Jan 2099"), "End Time", group = "Time Settings")
isWithinTradingWindow = true
// ============================================
// Strategy Settings
// ============================================
buyTriggerInput = input.int(3, "Consecutive Down Closes for Entry", minval = 1, group = "Strategy Settings")
sellTriggerInput = input.int(3, "Consecutive Up Closes for Exit", minval = 1, group = "Strategy Settings")
// ============================================
// EMA Filter Settings
// ============================================
useEmaFilter = input.bool(false, "Use EMA Filter", group = "Trend Filter")
emaPeriodInput = input.int(200, "EMA Period", minval = 1, group = "Trend Filter")
//#endregion
//#region INDICATOR CALCULATIONS
// ============================================
// Consecutive Close Counter
// ============================================
var int aboveCount = na
var int belowCount = na
aboveCount := close > close[1] ? (na(aboveCount) ? 1 : aboveCount + 1) : 0
belowCount := close < close[1] ? (na(belowCount) ? 1 : belowCount + 1) : 0
// ============================================
// Trend Filter Calculation
// ============================================
emaValue = ta.ema(close, emaPeriodInput)
//#endregion
//#region TRADING CONDITIONS
// ============================================
// Entry/Exit Logic
// ============================================
longCondition = belowCount >= buyTriggerInput and isWithinTradingWindow
exitCondition = aboveCount >= sellTriggerInput
// Apply EMA Filter if enabled
if useEmaFilter
longCondition := longCondition and close > emaValue
//#endregion
//#region STRATEGY EXECUTION
// ============================================
// Order Management
// ============================================
if longCondition
strategy.entry("Long", strategy.long)
if exitCondition
strategy.close_all()
//#endregion