
یہ حکمت عملی بلاک چارٹ پر مبنی ایک طرفہ کثیر جہتی تجارتی نظام ہے ، جس میں وقت کے فلٹرنگ کے طریقہ کار کے ساتھ ، خاص طور پر مخصوص تجارتی اوقات کے لئے ڈیزائن کیا گیا ہے۔ یہ حکمت عملی بلاک سائز کو متحرک طور پر ایڈجسٹ کرنے کے لئے اے ٹی آر کا استعمال کرتی ہے ، جس میں قیمت کی نقل و حرکت کے ذریعہ بلیک کی تشکیل کی نشاندہی کی جاتی ہے ، اور صرف مخصوص تجارتی اوقات میں کثیر جہتی تجارت کی جاتی ہے۔ اس حکمت عملی کا بنیادی حصہ یہ ہے کہ بلاک چارٹ کو مارکیٹ کے شور کو فلٹر کرنے کے لئے استعمال کیا جائے ، قیمتوں میں مستقل تبدیلیوں کو پکڑنے کے لئے ، جبکہ مارکیٹ میں غیر فعال اوقات سے گریز کیا جائے ، تاکہ تجارت کی کارکردگی اور فنڈز کی حفاظت کو بہتر بنایا جاسکے۔
یہ حکمت عملی مندرجہ ذیل بنیادی اصولوں پر مبنی ہے۔
بلاک نقشہ تعمیراتی طریقہ کارسسٹم بلاک سائز کو دو طریقوں سے طے کرتا ہے - فکسڈ ویلیو یا اے ٹی آر پر مبنی متحرک ایڈجسٹمنٹ۔ اے ٹی آر موڈ میں ، بلاک سائز کسی خاص دورانیے ((ڈیفالٹ 5) کے اے ٹی آر ویلیو کے ضرب سے ضرب ((ڈیفالٹ 1.0)) کے برابر ہوتا ہے ، جس سے بلاک سائز کو مارکیٹ میں اتار چڑھاؤ کے مطابق ایڈجسٹ کرنے کی اجازت ملتی ہے۔
سمت کا تعین منطقحکمت عملی: قیمت میں تبدیلی کا سراغ لگانا ، جب قیمت پچھلے بلاک کے مقابلے میں بند ہوجاتی ہے۔ جب قیمت میں اضافہ ہوتا ہے تو اس سے زیادہ ہوتا ہے تو اس میں اضافہ ہوتا ہے۔ جب اس میں کمی ہوتی ہے تو اس میں کمی ہوتی ہے۔ جب قیمت میں تبدیلی ہوتی ہے تو اس میں دوگنا ہوتا ہے۔
ٹریڈنگ سگنل کی تخلیق: جب بلاک کی سمت کبھی بیان نہیں کی جاتی ہے یا گرنے سے اوپر کی طرف جاتا ہے تو خریدنے کا اشارہ پیدا ہوتا ہے۔ جب بلاک کی سمت کبھی بیان نہیں کی جاتی ہے یا اوپر سے نیچے کی طرف جاتا ہے تو بیچنے کا اشارہ پیدا ہوتا ہے۔
وقت فلٹرحکمت عملی: صرف مخصوص ٹریڈنگ کے اوقات کے اندر ہی تجارت کریں (ڈیفالٹ 4: 35 سے 14: 30) ، جو عام طور پر اہم مارکیٹوں کے متحرک اوقات کے مطابق ہوتا ہے۔ ٹریڈنگ کے اوقات سے باہر ، سسٹم راتوں رات خطرے سے بچنے کے لئے خود بخود پوزیشنوں کو صاف کرتا ہے۔
ایک طرفہ ٹرانزیکشنحکمت عملی: صرف ملٹی ہیڈ ٹریڈز پر عملدرآمد کریں ، بغیر کسی کاپی آپریشن کے ، مارکیٹ کے ماحول کے لئے موزوں ہے جہاں بیجنگ کا رجحان واضح ہے یا اس پر پابندی عائد ہے۔
کوڈ کے تجزیے کے مطابق اس حکمت عملی کے درج ذیل نمایاں فوائد ہیں:
شور فلٹرنگبلاک چارٹ قدرتی طور پر مارکیٹ کے شور کو فلٹر کرنے کی صلاحیت رکھتا ہے ، اور نئے بلاکس صرف اس وقت تشکیل پاتے ہیں جب قیمت میں تبدیلی کسی خاص حد سے تجاوز کر جاتی ہے ، جس سے قیمتوں میں معمولی اتار چڑھاؤ پر ضرورت سے زیادہ ردعمل سے بچنے میں مدد ملتی ہے۔
خود کو ایڈجسٹ: اے ٹی آر کے ذریعے بلاک سائز کو متحرک طور پر ایڈجسٹ کریں ، حکمت عملی مختلف مارکیٹ کے ماحول اور اتار چڑھاؤ کے حالات کے مطابق ڈھال سکتی ہے ، اعلی اتار چڑھاؤ کے دوران بلاک سائز کو بڑھا سکتی ہے ، اور کم اتار چڑھاؤ کے دوران بلاک سائز کو کم کرتی ہے۔
وقت کے خطرے کا انتظامٹائم فلٹرز اس بات کو یقینی بناتے ہیں کہ تجارت صرف ان اوقات میں کی جائے جب مارکیٹ سب سے زیادہ متحرک اور لیکویڈیٹی کے لئے موزوں ہو ، رات اور صبح کے اوقات جیسے ممکنہ طور پر لیکویڈیٹی کی کمی یا غیر معمولی اتار چڑھاؤ سے بچنے کے لئے۔
سمت واضحاس حکمت عملی میں اوپر کی طرف رجحانات کو پکڑنے پر توجہ دی گئی ہے ، منطق مختصر اور واضح ہے ، اور بار بار تجارت اور فیسوں سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے کے لئے.
بصری معاونحکمت عملی خرید و فروخت کے سگنل کے ٹیگ اور بریک کی اونچائی اور کم کی نمائش کے اختیارات فراہم کرتی ہے ، جس سے تاجروں کو مارکیٹ کی حرکیات اور حکمت عملی کی کارکردگی کو براہ راست سمجھنے میں مدد ملتی ہے۔
فنڈز کا انتظامحکمت عملی: فنڈز کی مقدار کی تجارت کے موڈ کو اپنانا ، جس میں ابتدائی دارالحکومت پر مبنی پوزیشن کی مقدار کا خود بخود حساب لگایا جاسکتا ہے ، جس سے فنڈز کے انتظام کی پیچیدگی کم ہوجاتی ہے۔
اس حکمت عملی کے معقول ڈیزائن کے باوجود ، مندرجہ ذیل ممکنہ خطرات موجود ہیں:
ردعمل میں تاخیربلاک چارٹ بنیادی طور پر ایک پیچھے ہٹنے والا اشارے ہے ، جس میں نئے بلاکس کی تشکیل کی ضرورت ہوتی ہے جس کی قیمت ایک خاص حرکت کی حد تک پہنچ جاتی ہے ، جس کی وجہ سے داخلے اور باہر نکلنے کے وقت میں نسبتا late تاخیر ہوسکتی ہے ، اور تیزی سے بدلتے ہوئے بازاروں میں ممکنہ طور پر بہترین سودے بازی کے مقامات سے محروم ہوجاتے ہیں۔
شارٹ لائن میں لچک کا فقدانیہ حکمت عملی صرف نئے بلاکس کی تشکیل کے وقت سگنل دیتی ہے اور ممکنہ طور پر قلیل مدتی منافع کے مواقع سے محروم رہ سکتی ہے ، خاص طور پر چونکانے والی منڈیوں میں خراب کارکردگی کا مظاہرہ کرتی ہے۔
ایک طرفہ پابندیاس کے علاوہ ، یہ بھی کہا گیا ہے کہ مارکیٹوں میں طویل عرصے تک گرنے کے رجحانات میں حکمت عملی کی کارکردگی نمایاں طور پر کم ہوتی ہے۔
وقت کی چھانٹ کے خطرات: فکسڈ ٹریڈنگ ٹائم سیٹنگ غیر تجارتی اوقات میں اہم مواقع سے محروم ہوسکتی ہے ، اور غیر ضروری طور پر ٹریڈنگ ٹائم سرحدوں پر خالی پوزیشن اور دوبارہ داخل ہونے کی کارروائی ہوسکتی ہے۔
پیرامیٹر کی حساسیت: حکمت عملی کی کارکردگی بلاک سائز کے پیرامیٹرز کی ترتیب پر بہت زیادہ انحصار کرتی ہے ، پیرامیٹرز کا غلط انتخاب زیادہ تجارت یا کھوئے ہوئے مواقع کا سبب بن سکتا ہے۔
حل:
کوڈ تجزیہ کے مطابق، اس حکمت عملی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جا سکتا ہے:
ملٹی میڈیکل انضمام: دوسرے تکنیکی اشارے جیسے آر ایس آئی ، ایم اے سی ڈی یا منتقل اوسط کے کراس کے ساتھ مل کر تصدیق کے اشارے کے طور پر ، داخلے کے معیار کو بہتر بنائیں۔ اس طرح صرف قیمت کی شکل پر انحصار کرنے والے غلط سگنل سے بچا جاسکتا ہے ، خاص طور پر اتار چڑھاؤ والے بازاروں میں۔
متحرک سٹاپ نقصان میکانزم: ٹریکنگ اسٹاپ کی خصوصیات کو متعارف کرایا گیا ، جیسے اے ٹی آر پر مبنی متحرک اسٹاپ ، جو کہ اوپر کی جگہ کو برقرار رکھتے ہوئے منافع کو محفوظ رکھتا ہے۔ یہ بڑے رجحانات کو پکڑنے کے لئے خاص طور پر اہم ہے۔
دو طرفہ تجارت میں اضافہاس کے علاوہ ، اس میں ٹریڈنگ کے لئے اضافی اختیارات شامل کیے گئے ہیں ، جو حکمت عملی کو نیچے کی مارکیٹوں میں بھی منافع بخش بنانے کے قابل بناتے ہیں ، اور حکمت عملی کی تمام موسموں میں موافقت کو بہتر بناتے ہیں۔
ذہین وقت فلٹر: فکسڈ ٹائم فلٹرز کو مارکیٹ کی سرگرمی پر مبنی متحرک ٹائم فلٹرز میں اپ گریڈ کریں ، جیسے کہ ٹرانزیکشن تجزیہ کو جوڑنا ، اعلی لیکویڈیٹی کے اوقات میں فعال تجارت ، کم لیکویڈیٹی کے اوقات میں محتاط آپریشن۔
کثیر دورانیہ تجزیہ: ایک سے زیادہ ٹائم فریم تجزیہ متعارف کرایا ، مثال کے طور پر اعلی درجے کے ٹائم فریموں کی رجحان کی سمت کو ٹریڈنگ فلٹرنگ کی شرائط کے طور پر استعمال کیا جاتا ہے ، اور صرف اس وقت تجارت کی جاتی ہے جب بڑے رجحان کی سمت میں اتفاق ہو۔
آپٹمائزنگ پیرامیٹرز کو اپنانا: مارکیٹ کے حالات کے مطابق اے ٹی آر کے دورانیے اور ضرب کو متحرک کرنے کے لئے پیرامیٹرز کو اپنانے کا طریقہ کار تیار کریں ، تاکہ حکمت عملی مختلف مارکیٹ کے حالات میں بہتر طور پر ڈھال سکے۔
خطرے کی نمائش کنٹرول: پوزیشن مینجمنٹ الگورتھم میں اضافہ ، مارکیٹ میں اتار چڑھاؤ اور سگنل کی طاقت کے مطابق تجارتی پیمانے کو متحرک طور پر ایڈجسٹ کریں ، خطرے کی نمائش کو کنٹرول کریں۔
ان اصلاحات کا مقصد حکمت عملی کی استحکام اور موافقت کو بہتر بنانا ہے تاکہ مارکیٹ کے خراب حالات میں نقصانات کو کم کیا جاسکے اور مارکیٹ کے سازگار حالات میں منافع کو زیادہ سے زیادہ کیا جاسکے۔
بلاک چارٹ ٹائم فلٹر ایک طرفہ کثیر جہتی تجارتی حکمت عملی ایک رجحان ٹریکنگ سسٹم ہے جو قیمت کی نقل و حرکت اور وقت کے فلٹر کو جوڑتا ہے۔ بلاک چارٹ کے تعمیراتی میکانزم کے ذریعہ ، حکمت عملی مارکیٹ کے شور کو مؤثر طریقے سے فلٹر کرنے کے قابل ہے ، اور قیمتوں میں مسلسل تبدیلیوں کو پکڑنے پر توجہ مرکوز کرتی ہے۔ ٹائم فلٹر کے ذریعہ ، حکمت عملی مارکیٹ کے غیر فعال اوقات سے گریز کرتی ہے ، اور راتوں رات پوزیشن رکھنے کے خطرے کو کم کرتی ہے۔
اس حکمت عملی کے اہم فوائد اس کی سادہ اور واضح تجارتی منطق ، لچکدار بلاک سائز ڈیزائن اور سخت وقت کے انتظام میں ہیں ، جو اسے خاص طور پر زیادہ اتار چڑھاؤ والی لیکن مجموعی طور پر بڑھتی ہوئی منڈیوں کے لئے موزوں بناتے ہیں۔ تاہم ، اس کی ایک طرفہ تجارتی خصوصیات اور تاخیر کا رد عمل بھی قابل توجہ حدود ہیں۔
اس حکمت عملی میں متعدد اشارے کی تصدیق ، متحرک رکاوٹ کا طریقہ کار ، دو طرفہ تجارت کی صلاحیت اور ذہین وقت فلٹرنگ جیسے اصلاحاتی اقدامات کو متعارف کرانے کے ذریعہ ، مارکیٹ کے مختلف ماحول میں اس کی کارکردگی کو مزید بہتر بنانے کی امید ہے۔ یہ ایک حکمت عملی کا فریم ورک ہے جس پر غور کرنے کے قابل ہے جو مستحکم تجارت کی تلاش میں ہیں اور جو زیادہ واضح تجارتی سگنل کے بدلے میں کچھ لچک کو قربان کرنے کو تیار ہیں۔
/*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)//在交易时间内显示浅蓝色背景