
এটি একটি ট্রেডিং কৌশল যা সমান্তরাল রিগ্রেশন নীতির উপর ভিত্তি করে তৈরি করা হয়, যা ক্রমাগত পতন এবং উত্থান 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