ATR Renko চার্ট টাইম ফিল্টারিংয়ের উপর ভিত্তি করে একমুখী দীর্ঘ ট্রেডিং কৌশল

RENKO ATR 时间过滤 交易策略 趋势跟踪 砖块图 单向交易 多头策略 波动率指标
সৃষ্টির তারিখ: 2025-07-14 10:18:43 অবশেষে সংশোধন করুন: 2025-07-24 16:18:08
অনুলিপি: 3 ক্লিকের সংখ্যা: 246
2
ফোকাস
319
অনুসারী

ATR Renko চার্ট টাইম ফিল্টারিংয়ের উপর ভিত্তি করে একমুখী দীর্ঘ ট্রেডিং কৌশল ATR Renko চার্ট টাইম ফিল্টারিংয়ের উপর ভিত্তি করে একমুখী দীর্ঘ ট্রেডিং কৌশল

ওভারভিউ

এই কৌশলটি একটি ব্লকচার্ট (Renko) ভিত্তিক একমুখী মাল্টিহেড ট্রেডিং সিস্টেম, যা নির্দিষ্ট ট্রেডিং সময়ের জন্য ডিজাইন করা হয়েছে। এই কৌশলটি গতিশীলভাবে ব্লক আকারের সমন্বয় করে, মূল্যের গতিবিধি অনুসরণ করে তৈরি ব্লকগুলিকে উচ্চতর প্রবণতা সনাক্ত করে এবং কেবলমাত্র নির্দিষ্ট ট্রেডিং সময়ের মধ্যে মাল্টিহেড ট্রেডিং করে। কৌশলটির মূলটি হল ব্লকচার্ট ফিল্টার বাজারের শব্দটি ব্যবহার করে, ক্রমাগত মূল্য পরিবর্তনগুলি ক্যাপচার করে, যখন বাজারের নিষ্ক্রিয় সময়গুলি এড়ানো হয়, ট্রেডিং দক্ষতা এবং তহবিলের সুরক্ষা উন্নত করে।

কৌশল নীতি

এই কৌশলটি নিম্নলিখিত মূলনীতির উপর ভিত্তি করে কাজ করেঃ

  1. ব্লক ম্যাপ নির্মাণের প্রক্রিয়া: সিস্টেমটি দুটি উপায়ে ব্লক আকার নির্ধারণ করে - স্থির মান বা এটিআর-ভিত্তিক গতিশীল সমন্বয়। এটিআর মোডে, ব্লক আকারটি নির্দিষ্ট সময়কাল ((ডিফল্ট 5) এর এটিআর মানের গুণিতক ((ডিফল্ট 1.0) দ্বারা গুণিত হয়, যাতে ব্লক আকারটি বাজারের অস্থিরতার সাথে খাপ খাইয়ে নিতে পারে।

  2. দিকনির্দেশনা লজিককৌশলঃ দামের পরিবর্তন অনুসরণ করে, যখন দাম পূর্ববর্তী ব্লকের তুলনায় বন্ধের দামের চেয়ে বেশি হয়, তখন এটি একটি উর্ধ্বমুখী ব্লক গঠন করে; যখন এটি ব্লকের আকারের চেয়ে বেশি হয়, তখন এটি একটি নিম্নমুখী ব্লক গঠন করে; যখন দামের পরিবর্তনটি ব্লকের আকারের দ্বিগুণ হয়, তখন প্রবণতা বিপরীত হয়।

  3. ট্রেডিং সংকেত উৎপন্ন: যখন ব্লকের দিকটি কখনই সংজ্ঞায়িত হয় না বা পতনটি উত্থানের দিকে পরিবর্তিত হয় তখন একটি কেনার সংকেত উত্পন্ন হয়; যখন ব্লকের দিকটি কখনই সংজ্ঞায়িত হয় না বা উত্থানটি পতনের দিকে পরিবর্তিত হয় তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।

  4. সময় ফিল্টারকৌশলঃ কেবলমাত্র নির্দিষ্ট ট্রেডিং সময়ের মধ্যে ট্রেডিং করুন (ডিফল্টভাবে 04:35 থেকে 14:30) । এই সময়টি সাধারণত প্রধান বাজারের সক্রিয় সময়ের সাথে মিলে যায়। ট্রেডিংয়ের সময় থেকে বেরিয়ে গেলে, রাতারাতি ঝুঁকি এড়াতে সিস্টেমটি স্বয়ংক্রিয়ভাবে পজিশনটি সরিয়ে দেয়।

  5. একমুখী লেনদেনকৌশলঃ শুধুমাত্র মাল্টিহোল্ডার ট্রেডিং, কোন কপি অপারেশন, বাজারের পরিবেশে উপযুক্ত যেখানে মুদ্রাস্ফীতির প্রবণতা স্পষ্ট বা কপি করা নিষিদ্ধ।

কৌশলগত সুবিধা

কোড বিশ্লেষণের উপর ভিত্তি করে, এই কৌশলটির উল্লেখযোগ্য সুবিধাগুলি হলঃ

  1. শব্দ ফিল্টারব্লক চার্টগুলি প্রাকৃতিকভাবে বাজারের শব্দকে ফিল্টার করার ক্ষমতা রাখে, কেবলমাত্র দামের পরিবর্তনগুলি নির্দিষ্ট থ্রেশহোল্ড অতিক্রম করলে নতুন ব্লক তৈরি হয়, যা কার্যকরভাবে ছোট দামের ওঠানামার উপর অতিরিক্ত প্রতিক্রিয়া এড়াতে পারে।

  2. স্বনিয়ন্ত্রিতএটির মাধ্যমে, কৌশলটি বিভিন্ন বাজার পরিবেশ এবং অস্থিরতার সাথে খণ্ডের আকার পরিবর্তন করতে পারে, উচ্চ ওঠানামা চলাকালীন খণ্ডের আকার বাড়িয়ে দেয় এবং নিম্ন ওঠানামা চলাকালীন খণ্ডের আকার হ্রাস করে।

  3. সময় ঝুঁকি ব্যবস্থাপনাটাইম ফিল্টারঃ সময় ফিল্টারটি নিশ্চিত করে যে ট্রেডিং কেবলমাত্র বাজারের সবচেয়ে সক্রিয় এবং সর্বাধিক তরলতার সময়গুলিতে করা হয়, রাতের সময় এবং সকালের সময়গুলির মতো কম তরলতা বা অস্বাভাবিকতার সময়গুলি এড়ানো যায়।

  4. পথ পরিষ্কার

  5. ভিজ্যুয়াল সহায়তা: কৌশলগুলি ক্রয় ও বিক্রয়ের সংকেত ট্যাগ এবং ব্লকের উচ্চ ও নিম্ন পয়েন্টের দৃশ্যমানতার বিকল্পগুলি সরবরাহ করে, যা ব্যবসায়ীদের বাজারের গতিশীলতা এবং কৌশলগত কার্যকারিতা বুঝতে সহায়তা করে।

  6. তহবিল ব্যবস্থাপনা

কৌশলগত ঝুঁকি

যদিও এই কৌশলটি যুক্তিসঙ্গতভাবে পরিকল্পিত, তবে এর মধ্যে কিছু সম্ভাব্য ঝুঁকি রয়েছেঃ

  1. বিলম্বিত প্রতিক্রিয়া: ব্লক চার্ট মূলত একটি পিছিয়ে পড়া সূচক, নতুন ব্লক গঠনের জন্য দামের একটি নির্দিষ্ট পরিমাণে চলাচল করা প্রয়োজন, যার ফলে প্রবেশ এবং প্রস্থানের সময়টি অপেক্ষাকৃত পিছিয়ে যেতে পারে এবং দ্রুত পাল্টে যাওয়া বাজারে সেরা ট্রেডিং পয়েন্টগুলি মিস হতে পারে।

  2. শর্ট লাইনের নমনীয়তার অভাবএই কৌশলটি কেবলমাত্র নতুন ব্লক গঠনের সময়ই সংকেত দেয় এবং স্বল্পমেয়াদী মুনাফা অর্জনের সুযোগটি হারাতে পারে, বিশেষত যখন বাজারের অস্থিরতা থাকে।

  3. একমুখী সীমাবদ্ধতা: শুধুমাত্র একাধিক কৌশল ব্যবহার করে বাজারের পতনের সময় লাভ করা যায় না, এমনকি ক্ষতিও হতে পারে। দীর্ঘমেয়াদী বাজার পতনের সময় কৌশলগুলি উল্লেখযোগ্যভাবে হ্রাস পায়।

  4. সময় ফিল্টারের ঝুঁকিস্থির ট্রেডিং সময় সেটআপগুলি অ-ট্রেডিং সময়ের মধ্যে গুরুত্বপূর্ণ সুযোগগুলি মিস করতে পারে এবং ট্রেডিং সময়ের সীমানায় অপ্রয়োজনীয় প্লেইন এবং পুনরায় প্রবেশের অপারেশন ঘটতে পারে।

  5. পরামিতি সংবেদনশীলতা: কৌশলগত কার্যকারিতা অত্যন্ত নির্ভরশীল ব্লক আকারের প্যারামিটার সেটিং এর উপর, ভুল প্যারামিটার নির্বাচন অতিরিক্ত লেনদেন বা মিস সুযোগ হতে পারে।

সমাধান:

  • প্রবণতা নিশ্চিতকরণ সূচক যেমন চলমান গড় বা MACD যোগ করুন, সংকেতের গুণমান উন্নত করুন
  • একক লেনদেনের সর্বাধিক ঝুঁকি নিয়ন্ত্রণের জন্য ক্ষতি বন্ধ ব্যবস্থা চালু করা
  • দ্বি-মুখী লেনদেনের জন্য ডাইরেক্টিভ ফাংশন যুক্ত করার কথা ভাবুন
  • সময় ফিল্টার অপ্টিমাইজ করুন, বিভিন্ন বাজারের বৈশিষ্ট্য অনুসারে ট্রেডিংয়ের সময়কে সামঞ্জস্য করুন
  • প্যারামিটার অপ্টিমাইজেশন টেস্ট ব্যবহার করে সেরা প্যারামিটার সমন্বয় খুঁজে বের করুন

কৌশল অপ্টিমাইজেশনের দিকনির্দেশনা

কোড বিশ্লেষণের উপর ভিত্তি করে, এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ

  1. মাল্টিমিডিয়েটর ইন্টিগ্রেশন: অন্যান্য প্রযুক্তিগত সূচক যেমন আরএসআই, এমএসিডি বা মুভিং এভারেজ ক্রস হিসাবে নিশ্চিতকরণ সংকেত হিসাবে সংযুক্ত করুন, প্রবেশের গুণমান উন্নত করুন। এটি কেবলমাত্র দামের আকারের উপর নির্ভর করে, বিশেষত অস্থির বাজারে মিথ্যা সংকেতগুলি এড়াতে পারে।

  2. ডায়নামিক স্টপ লস মেকানিজম: ট্র্যাকিং স্টপ ফাংশন যেমন ATR-ভিত্তিক ডায়নামিক স্টপ চালু করা হয়েছে, যা আপলোডের স্থান সংরক্ষণ করার সময় প্রাপ্ত মুনাফা রক্ষা করে। এটি একটি বড় প্রবণতা ধরার জন্য বিশেষভাবে গুরুত্বপূর্ণ।

  3. দ্বিপাক্ষিক বাণিজ্য সম্প্রসারণ: উড়োজাহাজে ট্রেডিং করার ক্ষমতা বাড়ানো, যাতে কৌশলগুলি নিম্নমুখী বাজারে একইভাবে লাভবান হতে পারে, এবং কৌশলগুলির সমস্ত আবহাওয়ার অভিযোজনযোগ্যতা বাড়ানো।

  4. স্মার্ট টাইম ফিল্টারস্থির সময়ের ফিল্টারকে বাজারের সক্রিয়তার উপর ভিত্তি করে গতিশীল সময়ের ফিল্টারে আপগ্রেড করা, যেমন সমন্বিত লেনদেনের পরিমাণ বিশ্লেষণ, উচ্চ তরলতার সময় সক্রিয় লেনদেন, নিম্ন তরলতার সময় রক্ষণশীল অপারেশন।

  5. বহুচক্র বিশ্লেষণ: মাল্টি-টাইম ফ্রেম বিশ্লেষণের প্রবর্তন, যেমন ট্রেডিং ফিল্টারিংয়ের শর্ত হিসাবে আরও উচ্চ স্তরের টাইম ফ্রেমের প্রবণতা দিক ব্যবহার করা, শুধুমাত্র যখন বড় প্রবণতা দিকটি একত্রিত হয় তখন ট্রেড করা।

  6. অপ্টিমাইজেশান প্যারামিটার স্বনির্ধারিত: একটি স্বনির্ধারিত প্যারামিটার তৈরি করা হয়েছে যা বাজারের অবস্থার গতিশীলতার উপর ভিত্তি করে ATR চক্র এবং গুণকে সামঞ্জস্য করে যাতে কৌশলটি বিভিন্ন বাজারের অবস্থার সাথে আরও ভালভাবে মানিয়ে নিতে পারে।

  7. ঝুঁকি প্রকাশ নিয়ন্ত্রণ: পজিশন ম্যানেজমেন্ট অ্যালগরিদম যুক্ত করুন, বাজারের অস্থিরতা এবং সংকেত শক্তির উপর ভিত্তি করে ডায়নামিকভাবে লেনদেনের আকার সামঞ্জস্য করুন, ঝুঁকি প্রকাশ নিয়ন্ত্রণ করুন।

এই অপ্টিমাইজেশনের লক্ষ্য হল কৌশলগুলির স্থিতিশীলতা এবং অভিযোজনযোগ্যতা বৃদ্ধি করা, প্রতিকূল বাজার পরিস্থিতিতে ক্ষতি হ্রাস করা এবং একই সাথে অনুকূল বাজার পরিস্থিতিতে লাভজনকতা বাড়ানো।

সারসংক্ষেপ

ব্লকচার্ট টাইম ফিল্টার একমুখী মাল্টি-ট্রেডিং কৌশল হল একটি প্রবণতা ট্র্যাকিং সিস্টেম যা মূল্যের গতিশীলতা এবং সময় ফিল্টারকে একত্রিত করে। ব্লকচার্টের কাঠামোর মাধ্যমে, কৌশলটি কার্যকরভাবে বাজার শব্দকে ফিল্টার করতে সক্ষম হয়, ধারাবাহিক মূল্য পরিবর্তনের উপর দৃষ্টি নিবদ্ধ করে; সময় ফিল্টার দ্বারা, কৌশলটি বাজারের নিষ্ক্রিয় সময়গুলি এড়িয়ে চলে এবং রাতারাতি পজিশন রাখার ঝুঁকি হ্রাস করে।

কৌশলটির প্রধান সুবিধা হল এর সংক্ষিপ্ত এবং সুস্পষ্ট লেনদেনের লজিক, স্বনির্ধারিত ব্লক আকারের নকশা এবং কঠোর সময় ব্যবস্থাপনা, যা এটিকে বিশেষভাবে বড় আকারের ওঠানামা কিন্তু সামগ্রিকভাবে উত্থানমুখী বাজারের জন্য উপযুক্ত করে তোলে। যাইহোক, এর একমুখী লেনদেনের বৈশিষ্ট্য এবং বিলম্বিত প্রতিক্রিয়াও একটি সীমাবদ্ধতা যা মনোযোগের প্রয়োজন।

মাল্টি-ইনডিকেটর কনফার্মেশন, ডায়নামিক স্টপ লস মেকানিজম, দ্বি-মুখী লেনদেনের ক্ষমতা এবং স্মার্ট টাইম ফিল্টারিংয়ের মতো অপ্টিমাইজেশানগুলি প্রবর্তন করে এই কৌশলটি বিভিন্ন বাজার পরিবেশে এর পারফরম্যান্সকে আরও বাড়িয়ে তুলবে বলে আশা করা হচ্ছে। এটি স্থিতিশীল লেনদেনের সন্ধানকারী এবং আরও স্পষ্ট লেনদেনের সংকেতের বিনিময়ে কিছু নমনীয়তা ত্যাগ করতে ইচ্ছুক বিনিয়োগকারীদের জন্য এটি একটি বিবেচনাযোগ্য কৌশলগত কাঠামো।

কৌশল সোর্স কোড
/*backtest
start: 2025-06-22 00:00:00
end: 2025-07-22 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":200000}]
args: [["RunMode",1,358374]]
*/

//@version=5
strategy("Renko Long-Only Strategy with Time Filter", overlay=true, default_qty_value = 10)

// --- 输入参数 ---

atrLength  = input.int(5, "ATR Period", minval=1)//ATR周期
atrMult    = input.float(1.0, "ATR Multiplier", minval=0.1, step=0.1)//ATR乘数
showWicks  = input(false, "Show Wick Lines")//是否显示上下影线
showLabels = input(true, "Show Buy/Sell Labels")//是否显示买卖标签

// --- 交易时间设置(24小时制,从4:30 AM到2:30 PM)---
startHour = input.int(4, "Start Hour (24h)", minval=0, maxval=23)//开始交易小时
startMinute = input.int(30, "Start Minute", minval=0, maxval=59)//开始交易分钟
endHour = input.int(14, "End Hour (24h)", minval=0, maxval=23)//结束交易小时
endMinute = input.int(25, "End Minute", minval=0, maxval=59)//结束交易分钟

// --- 时间计算 ---
//检查当前是否在交易时间范围内
isTradingTime() =>
    timeHour = hour(time("1"))//获取当前小时
    timeMinute = minute(time("1"))//获取当前分钟
    // 将时间转换为自午夜起的分钟数进行比较
    currentTime = timeHour * 60 + timeMinute//当前时间(分钟)
    sessionStart = startHour * 60 + startMinute//交易开始时间(分钟)
    sessionEnd = endHour * 60 + endMinute//交易结束时间(分钟)
    currentTime >= sessionStart and currentTime <= sessionEnd//判断是否在交易时间范围内

inTradingHours = isTradingTime()//当前是否在交易时间内
timeToClose = not inTradingHours and inTradingHours[1]//刚刚退出交易时间,需要平仓

// --- 砖块计算 ---
var float boxSize    = na//砖块大小
var float lastClose  = na//最后一个砖块的收盘价
var int   direction  = 0//方向:0=未定义,1=上涨,-1=下跌
var float wickHigh   = na//上影线最高点
var float wickLow    = na//下影线最低点
var bool  newBrick   = false//是否形成新砖块
var int   prevDir    = 0//前一个方向

// --- 全局信号变量 ---
var bool buySignal  = false//买入信号
var bool sellSignal = false//卖出信号

// 更新基于ATR的砖块大小
boxSize :=ta.atr(atrLength) * atrMult//计算砖块大小

// 检测砖块形成条件
upMove   = not na(lastClose) and (close - lastClose >= boxSize)//上涨移动
downMove = not na(lastClose) and (lastClose - close >= boxSize)//下跌移动
//反转条件:当前为上升趋势但下跌超过2倍砖块大小,或当前为下降趋势但上涨超过2倍砖块大小
reversal = (direction == 1 and downMove and (lastClose - close >= boxSize * 2)) or 
           (direction == -1 and upMove and (close - lastClose >= boxSize * 2))

// 生成新砖块
if na(lastClose)//初始化
    lastClose := close//设置初始收盘价
    wickHigh := high//设置初始最高价
    wickLow := low//设置初始最低价
else if upMove and direction >= 0//继续上升趋势
    lastClose := lastClose + boxSize//更新收盘价
    prevDir := direction//保存前一个方向
    direction := 1//设置当前方向为上升
    wickHigh := high//更新上影线
    wickLow := low//更新下影线
    newBrick := true//标记形成新砖块
else if downMove and direction <= 0//继续下降趋势
    lastClose := lastClose - boxSize//更新收盘价
    prevDir := direction//保存前一个方向
    direction := -1//设置当前方向为下降
    wickHigh := high//更新上影线
    wickLow := low//更新下影线
    newBrick := true//标记形成新砖块
else if reversal//趋势反转
    lastClose := direction == 1 ? lastClose - boxSize : lastClose + boxSize//根据当前方向反向更新收盘价
    prevDir := direction//保存前一个方向
    direction := direction * -1//反转方向
    wickHigh := high//更新上影线
    wickLow := low//更新下影线
    newBrick := true//标记形成新砖块
else//没有新砖块形成
    wickHigh := math.max(wickHigh, high)//更新上影线最高点
    wickLow := math.min(wickLow, low)//更新下影线最低点
    newBrick := false//标记没有形成新砖块

// 更新信号(必须在全局范围内)
buySignal := direction == 1 and prevDir != 1//方向从非上升变为上升时产生买入信号
sellSignal := direction == -1 and prevDir != -1//方向从非下降变为下降时产生卖出信号

// --- 策略逻辑 ---
// 只在形成新砖块、K线确认且在交易时间内进入
enterLong = buySignal and newBrick and barstate.isconfirmed and inTradingHours//买入条件
exitLong = (sellSignal and newBrick and barstate.isconfirmed) or timeToClose//卖出条件

// 执行交易
if (enterLong)
    strategy.entry("Long", strategy.long)//开仓做多
    
if (exitLong)
    strategy.close("Long")//平仓

// --- 绘图 ---
color brickColor = direction == 1 ? color.green : direction == -1 ? color.red : color.gray//根据方向设置砖块颜色
plot(lastClose, "Renko Close", brickColor, 2, plot.style_linebr)//绘制Renko收盘价

// 如果启用,绘制影线
plot(showWicks ? wickHigh : na, "High", color.new(brickColor, 70), 1, plot.style_circles)//绘制上影线
plot(showWicks ? wickLow : na, "Low", color.new(brickColor, 70), 1, plot.style_circles)//绘制下影线

// 绘制交易时间背景
bgcolor(inTradingHours ? color.new(color.blue, 90) : na)//在交易时间内显示浅蓝色背景