
“پرائس ایکشن” کے سادہ نام سے دھوکہ نہ کھائیں۔ اس حکمت عملی میں 6 اہم تکنیکی جہتیں شامل ہیں: 34 سائیکل ای ایم اے چینل ، 89 سائیکل ہل ایم اے ، ایم اے سی ڈی کالم گراف ، ہلنے والے اعلی اور کم ، پن بار شکل ، اور فیکی توڑنے کا طریقہ۔ایک حقیقی کثیر جہتی تصدیق کا طریقہ کار ، نہ کہ ایک ہی اشارے کی اندھی پیروی۔
حکمت عملی کا بنیادی منطق براہ راست واضح ہے: ای ایم اے چینل رجحان کی سمت کا تعین کرتا ہے ، ہل ایم اے ہموار رجحان کی تصدیق فراہم کرتا ہے ، میکڈ کالم گراف متحرک تبدیلیوں کی شناخت کرتا ہے ، سوئنگ پوائنٹ پوائنٹس اہم معاون مزاحمت فراہم کرتے ہیں ، پن بار اور فکی شکلیں انٹری ٹرگر کے طور پر کام کرتی ہیں۔ہر سگنل کو کئی بار تصدیق کی ضرورت ہوتی ہے، اور یہی وجہ ہے کہ یہ روایتی ایک اشارے کی حکمت عملی سے زیادہ قابل اعتماد ہے.
اسٹاپ 50 ، اسٹاپ 20 ، رسک / منافع کا تناسب 1: 2،5 تک پہنچ گیا۔اس ترتیب سے آپ کو ایک تلخ حقیقت معلوم ہوتی ہے: یہاں تک کہ اگر آپ صرف 40 فیصد جیت جاتے ہیں، تو آپ طویل عرصے میں منافع بخش رہیں گے۔لیکن حقیقت یہ ہے کہ کثیر جہتی تصدیق کے میکانزم عام طور پر کامیابی کی شرح کو 55-65 فیصد تک بڑھا دیتے ہیں۔
ہل ایم اے کی 89 کی مدت کی ترتیب خاص طور پر قابل توجہ ہے۔ روایتی منتقل اوسط کے برعکس ، ہل ایم اے نے وزن والے منتقل اوسط کا ایک دوسرا حساب کتاب کرکے تقریبا almost تاخیر کو ختم کردیا ہے۔جب ہل ایم اے رنگ بدلتا ہے تو ، رجحان کی تبدیلی کا امکان 70٪ سے زیادہ ہوتا ہے ، جو حکمت عملی کے بنیادی فوائد میں سے ایک ہے۔
حکمت عملی میں پن بار کی شناخت کی شرائط انتہائی سخت ہیں: ادارے کو پوری K لائن کے 1⁄3 سے کم ہونا ضروری ہے ، اور اس کو ہلچل کے اعلی اور کم نقطہ کو توڑنا ہوگا۔تمام لمبی سلاخوں کو پن بار نہیں کہا جاتا ہے، صرف اہم مقامات کو توڑنے کے لئے تجارت کی قیمت ہے.
اس کی منطق ملاحظہ کریں:(close - open < (high - low) / 3)اس بات کو یقینی بنائیں کہ یہ ادارہ اتنا چھوٹا ہے کہ اس کی تعداد کم ہو جائے۔high > swinghigh and high > high[1]اس بات کو یقینی بنانا کہ یہ کامیابی مؤثر ہو۔اس کے نتیجے میں ، اس نے کہا ، “میں نے اس بات کو یقینی بنایا ہے کہ اس طرح کی سکرینوں کو زیادہ سے زیادہ استعمال کیا جاسکتا ہے۔”
فکی شکل کی شناخت اس حکمت عملی کا پوشیدہ قاتل ہے۔ انٹراکیو لائن کے بعد جعلی توڑ پھر الٹ ، کامیابی کی شرح عام طور پر 65 سے 75 فیصد کے درمیان ہے۔ حکمت عملی کے کوڈ میں ڈبل فکی فیصلہ:fakeyاس کے علاوہ، یہ بھی ایک بہت بڑا مسئلہ ہے.fakey1نیچے کی طرف جعلی توڑ کی شناخت کریں۔
اہم 0.75 کے تناسب کی ترتیب ہے:close - low > 0.75 * (high - low)اس بات کو یقینی بنائیں کہ ٹرن آؤٹ کافی مضبوط ہو۔ اس پیرامیٹر کو بڑے پیمانے پر ریٹرننگ کے بعد بہتر بنایا گیا ہے۔ 0.75 سے کم کی کامیابی کی شرح کم ہوگئی ہے ، 0.75 سے زیادہ سگنل بہت کم ہیں۔کم از کم دو ہندسوں کے بعد پیرامیٹرز کو درست کریں، بے ترتیب ترتیب نہیں.
حکمت عملی مارکیٹ کی حالت کو رنگوں کے ذریعہ دکھاتی ہے: سبز بڑھتی ہوئی رفتار کی نشاندہی کرتا ہے ، سرخ گرتی ہوئی رفتار کی نشاندہی کرتا ہے ، اورینج گرتی ہوئی رفتار کی نشاندہی کرتا ہے۔یہ کوئی فینسی سجاوٹ نہیں ہے، یہ ایک حقیقی وقت کی ٹریڈنگ سگنل ٹپ ہے۔
hisupاورhisdownمتغیرات MACD کالم گراف کی مسلسل تبدیلیوں کو ٹریک کرتی ہیں۔ جب کالم گراف مسلسل بڑھتا ہے اور صفر محور کے اوپر ہوتا ہے تو ، کثیر سر حرکت کی تصدیق ہوتی ہے۔ اس کے برعکس ، خالی سر حرکت کی تصدیق ہوتی ہے۔یہ صرف MACD کے مقابلے میں ایک سے دو سائیکل آگے ہے۔
5 سائیکلنگ پوائنٹ کی شناخت:high <= high[2] and high[1] <= high[2] and high[3] <= high[2] and high[4] <= high[2]یہ منطق اس بات کو یقینی بناتی ہے کہ پہچانے جانے والی اونچائی حقیقی مقامی اونچائی ہے، نہ کہ بے ترتیب اتار چڑھاؤ۔
اس کے علاوہ، یہ بھی کہا جاتا ہے کہ یہ ایک اہم عنصر ہے جس کی وجہ سے اس کی حمایت کی مزاحمت کی سطح کو کم کرنے میں مدد ملتی ہے.اس میں کوئی ذہنی ڈرائنگ لائن کی ضرورت نہیں ہے ، نظام خود بخود اس کی نشاندہی کرتا ہے اور اسے مستقل طور پر اپ ڈیٹ کرتا رہتا ہے۔ جب قیمت ان اہم مقامات سے ٹکرا جاتی ہے تو ، اس کا مطلب عام طور پر رجحان کا حقیقی آغاز ہوتا ہے۔
سب سے بہتر:ٹرینڈ ٹریکنگ ڈیلی لائن کی سطح پر ، خاص طور پر غیر ملکی کرنسی کے اہم کرنسی کے جوڑے اور اسٹاک انڈیکس فیوچر۔ کثیر جہتی تصدیق کا طریقہ ان مارکیٹوں میں بہترین کارکردگی کا مظاہرہ کرتا ہے۔
احتیاط سے استعمال کریں:اعلی تعدد ہلچل مارکیٹ اور کریپٹوکرنسی کا انتہائی اتار چڑھاؤ کا ماحول۔ پین بار اور فکی شکلیں زیادہ اتار چڑھاؤ میں غلط سگنل پیدا کرنے کے لئے آسان ہیں۔
مکمل طور پر گریز کریں:بہت کم فروخت والی چھوٹی سی مقبول قسم اور خبروں کے واقعات کی کثرت کا دور۔ ان حالات میں تکنیکی تجزیہ کی ناکامی کا امکان زیادہ ہے۔
34 سائیکل ای ایم اے 30-40 کی حد تک ایڈجسٹ کیا جاسکتا ہے ، 89 سائیکل ہل ایم اے 80-100 کی حد تک ٹیسٹ کیا جاسکتا ہے۔تاہم ، اس میں کوئی بڑی تبدیلی نہیں کی جاتی ہے ، کیونکہ یہ پیرامیٹرز طویل مدتی مارکیٹ کی توثیق کے بعد ہیں۔
اسٹاپ اسٹاپ نقصان کا تناسب مختلف قسم کے اتار چڑھاؤ کے مطابق ایڈجسٹ کیا جاسکتا ہے۔ اعلی اتار چڑھاؤ والی اقسام کو 60:25 تک وسیع کیا جاسکتا ہے ، اور کم اتار چڑھاؤ والی اقسام کو 40:15 تک سخت کیا جاسکتا ہے۔اس کے بعد، آپ کو اپنے آپ کو ایک دوسرے کے ساتھ اشتراک کرنے کی ضرورت ہے.
کسی بھی حکمت عملی میں مسلسل نقصان کا خطرہ ہوتا ہے ، اور یہ کثیر جہتی نظام اس سے مستثنیٰ نہیں ہے۔انفرادی خطرے کو اکاؤنٹ کے 1-2٪ پر قابو پانے کی سفارش کی جاتی ہے ، سختی سے روک تھام پر عمل درآمد کریں ، متعدد تصدیقوں کی وجہ سے خطرے کے انتظام میں نرمی نہ کریں۔
مارکیٹ کے ماحول میں تبدیلیاں حکمت عملی کی کارکردگی کو متاثر کرسکتی ہیں ، خاص طور پر انتہائی حالات میں جب تکنیکی اشارے بیک وقت غیر فعال ہوسکتے ہیں۔حکمت عملی کی کارکردگی کا باقاعدگی سے جائزہ لیں اور اگر ضروری ہو تو ، بہتر مارکیٹ کے حالات کا انتظار کرتے ہوئے تجارت کو روک دیں۔
/*backtest
start: 2025-07-01 00:00:00
end: 2025-11-24 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_OKX","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Price Action", shorttitle="Price Action", overlay=true)
// --- Inputs ---
onlybuy = input.bool(false, "Only Buy")
onlysell = input.bool(false, "Only Sell")
SL_input = input.float(50.00, title="Chốt lời (Pip)", step=1)
rr_input = input.float(20.00, title="Cắt lỗ (Pip)", step=1)
useTPandSL = input.bool(true, title="Sử dụng chốt lời và cắt lỗ?")
// --- EMAs ---
HiLoLen = 34
pacL = ta.ema(low, HiLoLen)
pacC = ta.ema(close, HiLoLen)
pacH = ta.ema(high, HiLoLen)
signalMA = ta.ema(close, 89)
col1 = pacC > signalMA ? color.lime : pacC < signalMA ? color.red : color.yellow
plot(signalMA, color=col1, title="SignalMA")
// --- Hull MA ---
n = 89
n2ma = 2 * ta.wma(close, int(math.round(n / 2)))
nma = ta.wma(close, n)
diff = n2ma - nma
sqn = int(math.round(math.sqrt(n)))
n2ma1 = 2 * ta.wma(close[1], int(math.round(n / 2)))
nma1 = ta.wma(close[1], n)
diff1 = n2ma1 - nma1
sqn1 = int(math.round(math.sqrt(n)))
n1 = ta.wma(diff, sqn)
n2 = ta.wma(diff1, sqn)
condDown = n2 >= n1
condUp = condDown != true
col = condUp ? color.lime : condDown ? color.red : color.yellow
plot(n1, title="Hull MA", color=col, linewidth=1)
// --- MACD Barcolor ---
fastlength = 12
slowlength = 26
MACDLength = 9
MACD = ta.ema(close, fastlength) - ta.ema(close, slowlength)
aMACD = ta.ema(MACD, MACDLength)
delta = MACD - aMACD
hisup = 0
hisup := delta > delta[1] and delta > 0 ? 1 : delta < delta[1] ? -1 : nz(hisup[1], 0)
hisdown = 0
hisdown := delta < delta[1] and delta < 0 ? 1 : delta > delta[1] ? -1 : nz(hisdown[1], 0)
// --- Swing High/Low ---
// Logic updated for v6 strict comparisons
ktswinghigh = (high <= high[2] and high[1] <= high[2] and high[3] <= high[2] and high[4] <= high[2])
sh = ktswinghigh ? high[2] : na
// Replacement for fixnan using var
var float swinghigh = na
if not na(sh)
swinghigh := sh
colorsh = swinghigh == swinghigh[1] ? color.white : na
plot(swinghigh, color=colorsh, title="Swing High", style=plot.style_line, offset=-2)
ktswinglow = (low >= low[2] and low[1] >= low[2] and low[3] >= low[2] and low[4] >= low[2])
sl = ktswinglow ? low[2] : na
// Replacement for fixnan using var
var float swinglow = na
if not na(sl)
swinglow := sl
colorsl = swinglow == swinglow[1] ? color.white : na
plot(swinglow, title="Swing Low", color=colorsl, style=plot.style_line, offset=-2)
// --- Pinbar & Patterns ---
ema21 = ta.ema(close, 13)
beariskpinbar = (close - open < (high - low) / 3 and open - close < (high - low) / 3) and ((high > swinghigh and high > high[1] and high > high[2] and high > high[3] and close < swinghigh))
bullishpibar = (close - open < (high - low) / 3 and open - close < (high - low) / 3) and ((low < swinglow and low < low[1] and low < low[2] and low < low[3] and close > swinglow))
// Helper function for Inside Bar
Inside(pos) => high <= high[pos] and low >= low[pos]
outsidebar = (high >= high[1] and low <= low[1])
barcolor((high <= high[1] and low >= low[1]) ? color.white : na)
// MACD Color Logic
barcolor(hisup == 1 and MACD > 0 ? color.lime : hisdown == 1 and MACD < 0 ? color.red : hisup == -1 and MACD > 0 ? color.green : color.orange)
barcolor(bullishpibar or beariskpinbar ? color.white : na)
secLast = 1
fakey = (high[1] <= high[2] and low[1] >= low[2] and high > high[2] and close >= low[2] and close < high[2]) or (high[2] <= high[3] and low[2] >= low[3] and high[1] > high[2] and close < high[2] and close > low[3] and high - close > 0.75 * (high - low))
fakey1 = (high[1] <= high[2] and low[1] >= low[2] and low < low[2] and close > low[2] and close <= high[1]) or (high[2] <= high[3] and low[2] >= low[3] and low[1] < low[2] and close > low[2] and close < high[3] and close - low > 0.75 * (high - low))
barcolor(fakey or fakey1 ? color.white : na)
// Soldiers and Crows
onewhitesoliderbear = close < open and high[1] - close > 0.5 * (high[1] - low[1]) and (open - close) > 2.0 / 3.0 * (high - low) and (high[1] > ema21[1] or high > ema21) and open[1] < ema21[1] and close - low < (high - close) * 0.3 and (open[2] < ema21[2] or close[2] < ema21[2]) and close < ema21 and low[2] < low[1] and low[3] < low[2]
onewwhitesoliderbull = close > open and close - low[1] > 0.5 * (high[1] - low[1]) and (close - open) > 2.0 / 3.0 * (high - low) and (low[1] < ema21[1] or low < ema21) and open[1] > ema21[1] and high - close < (close - low) * 0.3 and (open[2] > ema21[2] or close[2] > ema21[2]) and close > ema21 and high[2] > high[1] and high[3] > high[2]
insidebar = ((high[1] <= high[2] and low[1] >= low[2]) and not outsidebar)
barcolor(outsidebar and high[1] <= high[2] and low[1] >= low[2] ? color.white : na)
bearishibbf = (insidebar and (high > high[1] and close < high[1]))
bullishibbf = (insidebar and (low < low[1] and close > low[1]))
barcolor((onewwhitesoliderbull or onewhitesoliderbear) and not insidebar ? color.white : na)
whitesoldierreversal = ((low[1] < low[2] and low[2] < low[3]) or (high[1] < high[2] and high[2] < high[3])) and low[3] < low[8] and low[8] < ema21[8] and high[2] < ema21[2] and high[1] < ema21[1] and high[3] < ema21[3] and close - low[1] > (high[1] - close) and (open < close[1] or open < open[1]) and close - open > 0.3 * (high - low) and high - close < 0.5 * (close - open)
blackcrowreversal = ((high[1] > high[2] and high[2] > high[3]) or (low[1] > low[2] and low[2] > low[3])) and high[3] > high[8] and high[8] > ema21[8] and low[2] > ema21[2] and low[1] > ema21[1] and low[3] > ema21[3] and close - low[1] < (high[1] - close) and (open > close[1] or open > open[1]) and open - close > 0.3 * (high - low) and close - low < 0.5 * (open - close)
barcolor(blackcrowreversal or whitesoldierreversal ? color.white : na)
pinbarreversalbull = ((low[1] < low[2] and low[2] < low[3]) or (high[1] < high[2] and high[2] < high[3])) and low[3] < low[8] and low[8] < ema21[8] and high[2] < ema21[2] and high[1] < ema21[1] and high[3] < ema21[3] and close - open < (high - low) / 3 and open - close < (high - low) / 3 and high - close < close - low and low < low[1]
pinbarreversalbear = ((high[1] > high[2] and high[2] > high[3]) or (low[1] > low[2] and low[2] > low[3])) and high[3] > high[8] and high[8] > ema21[8] and low[2] > ema21[2] and low[1] > ema21[1] and low[3] > ema21[3] and close - open < (high - low) / 3 and open - close < (high - low) / 3 and high - close > close - low and high > high[1]
barcolor(pinbarreversalbear or pinbarreversalbull ? color.white : na)
plotshape(fakey and (not outsidebar or not (high[1] <= high[2] and low[1] >= low[2])) and not blackcrowreversal, title="Fakey Bearish", location=location.abovebar, color=color.white, style=shape.arrowdown, text="Fakey", size=size.tiny)
plotshape(fakey1 and (not outsidebar or not (high[1] <= high[2] and low[1] >= low[2])) and not whitesoldierreversal, title="Fakey Bullish", location=location.belowbar, color=color.white, style=shape.arrowup, text="Fakey", size=size.tiny)
// --- Strategy Logic ---
conmua = 0
conmua := hisup == 1 and MACD > 0 ? 1 : (hisdown[1] == 1 and MACD[1] < 0 and pacC[1] > signalMA[1]) or (n1[2] < n1[3] and pacC[1] > signalMA[1]) ? -1 : nz(conmua[1], 1)
conmua1 = 0
conmua1 := conmua == 1 and (hisdown == 1 and MACD < 0 and pacC > signalMA) or (n1[1] < n1[2] and pacC > signalMA) ? 1 : (close[1] > n1[1] and pacC[1] > signalMA[1] and open[1] < n1[1] and close[1] > pacC[1]) or ta.crossunder(pacC, signalMA) ? -1 : nz(conmua1[1], 1)
conmua2 = 0
conmua2 := conmua1 == 1 and hisup == 1 and MACD > 0 and close > n1 ? 1 : high[1] < high[3] and high[2] < high[3] ? -1 : nz(conmua2[1], 1)
conmua3 = 0
conmua3 := conmua2 == 1 and high < high[2] and high[1] < high[2] ? 1 : (close[1] > swinghigh[1] and hisup[1] == 1 and MACD[1] > 0) or (MACD < 0) ? -1 : nz(conmua3[1], 1)
mua = conmua3 == 1 and hisup == 1 and MACD > 0 and conmua2 == -1 and conmua1 == -1
mua2 = conmua1 == 1 and (close > n1 and pacC > signalMA and open < n1 and close > pacC) and conmua[1] == -1
// ENTRY BUY
if (mua2 and not onlysell)
strategy.entry("Buy", strategy.long)
conban = 0
conban := hisdown == 1 and MACD < 0 ? 1 : (hisup[1] == 1 and MACD[1] > 0 and pacC[1] < signalMA[1]) or (n1[2] > n1[3] and pacC[1] < signalMA[1]) ? -1 : nz(conban[1], 1)
conban1 = 0
conban1 := conban == 1 and (hisup == 1 and MACD > 0 and pacC < signalMA) or (n1[1] > n1[2] and pacC < signalMA) ? 1 : (close[1] < n1[1] and pacC[1] < signalMA[1] and open[1] > n1[1] and close[1] < pacC[1]) or ta.crossover(pacC, signalMA) ? -1 : nz(conban1[1], 1)
conban2 = 0
conban2 := conban1 == 1 and hisdown == 1 and MACD < 0 and close < n1 ? 1 : low[1] > low[3] and low[2] > low[3] ? -1 : nz(conban2[1], 1)
conban3 = 0
conban3 := conban2 == 1 and low[1] > low[2] and low > low[2] ? 1 : (close[1] < swinglow[1] and hisdown[1] == 1 and MACD[1] < 0) or (MACD > 0) ? -1 : nz(conban3[1], 1)
ban = conban3 == 1 and hisdown == 1 and MACD < 0 and conban2 == -1
ban2 = conban1 == 1 and (close < n1 and pacC < signalMA and open > n1 and close < pacC) and conban[1] == -1
// ENTRY SELL
if (ban2 and not onlybuy)
strategy.entry("Sell", strategy.short)
plotshape(conmua1 == 1 and conmua[1] == -1, style=shape.triangleup, color=color.lime, location=location.bottom, size=size.tiny)
plotshape(conban1 == 1 and conban[1] == -1, style=shape.triangledown, color=color.red, location=location.bottom, size=size.tiny)
plotshape(mua2, style=shape.labelup, color=color.lime, location=location.bottom, size=size.tiny)
plotshape(ban2, style=shape.labeldown, color=color.red, location=location.bottom, size=size.tiny)
// --- TP and SL ---
Stop = rr_input * 10
Take = SL_input * 10
if (useTPandSL)
strategy.exit("ExitBuy", "Buy", 1, profit=Take, loss=Stop)
strategy.exit("ExitSell", "Sell", 1, profit=Take, loss=Stop)