ملٹی ٹائم فریم مومنٹم بریک آؤٹ حکمت عملی


تخلیق کی تاریخ: 2023-12-29 16:56:09 آخر میں ترمیم کریں: 2023-12-29 16:56:09
کاپی: 1 کلکس کی تعداد: 663
1
پر توجہ دیں
1621
پیروکار

ملٹی ٹائم فریم مومنٹم بریک آؤٹ حکمت عملی

جائزہ

اس حکمت عملی میں متعدد تکنیکی اشارے جیسے RSI ، ADX ، ATR اور متحرک اشارے شامل ہیں تاکہ رجحانات کا فیصلہ کیا جاسکے اور اس سے تجاوز کیا جاسکے۔ اس حکمت عملی میں فبونیکی ریٹائرمنٹ لائن اور میڈین لائن بھی شامل ہیں ، جس سے اہم مقامات اور رجحانات کے فیصلے کی درستگی میں مزید اضافہ ہوتا ہے۔

حکمت عملی کا اصول

  1. RSI ، ADX ، DI + ، DI- جیسے اشارے کے ذریعہ رجحان کی سمت اور طاقت کا تعین کریں۔ RSI اوور بیئر اور اوور سیل کی عکاسی کرسکتا ہے ، ADX رجحان کی طاقت کی عکاسی کرتا ہے ، DI + / DI- کثیر اور خالی سر رجحان کا تعین کرتا ہے۔ ان اشارے کی قیمتیں اوپر دائیں کونے میں ٹیبل میں دکھائی جاتی ہیں ، جو آسانی سے فیصلہ کرتی ہیں۔

  2. مساوی لائن کے ساتھ رجحان کی سمت کا تعین کریں۔ مختصر مدت کے رجحان کا تعین کرنے کے لئے 5 ویں اور 9 ویں ای ایم اے کا استعمال کریں ، درمیانی مدت کے رجحان کا تعین کرنے کے لئے 21 ویں ڈبلیو ایم اے کا استعمال کریں ، طویل مدتی رجحان کا تعین کرنے کے لئے 60 ویں ڈبلیو ایم اے کا استعمال کریں۔ جب مختصر مدت میں درمیانی اور طویل مدتی اوسط لائن کو عبور کرتے ہیں تو ایک کثیر سر سگنل ہوتا ہے۔

  3. فبونیکی ریٹرو لائن کا استعمال کرتے ہوئے 0.5 ، 0.618 جیسے اہم معاونت کی تلاش کریں۔ یہ مقامات اکثر ممکنہ الٹ پوائنٹس ہوتے ہیں۔

  4. اے ٹی آر اور اسٹاپ نقصان کے تناسب پر مبنی اسٹاپ نقصان کی قیمت مقرر کریں تاکہ خطرہ پر قابو پایا جاسکے۔ اے ٹی آر اور اسٹاپ نقصان کے تناسب پر مبنی اسٹاپ نقصان کی قیمت مقرر کریں تاکہ منافع کو مقفل کیا جاسکے۔

  5. جب RSI سے زیادہ خریدنے اور فروخت کرنے کا اشارہ ہوتا ہے تو ، الٹ جانے پر غور کریں۔ جب مختصر مدت کی اوسط لائن پر ٹوٹ پڑتا ہے تو (باطنی) درمیانی مدت کی اوسط لائن اور جب تجارت میں اضافہ ہوتا ہے تو رجحان کی پیروی کرنے پر غور کریں۔ سگنل میں داخل ہونے کے بعد اسٹاپ نقصان اور اسٹاپ کو ترتیب دیں۔

طاقت کا تجزیہ

  1. رجحانات کی سمت اور طاقت کا اندازہ لگانے کے لئے متعدد اشارے کا مجموعی استعمال ، جس سے فیصلوں کی درستگی میں اضافہ ہوتا ہے۔

  2. اے ٹی آر کی بنیاد پر سیٹ اپ نقصان روکنے کا طریقہ کار ، خطرے کو مؤثر طریقے سے کنٹرول کریں۔

  3. فبونیکی کلیدی نقطہ کے ساتھ مل کر ، الٹ پوائنٹ فیصلے کی درستگی کو بہتر بنائیں۔

  4. ٹرینڈ ٹریک کرنے کے لئے ایک اضافی شرط کے طور پر حجم میں اضافہ، جعلی بریک سے بچنے کے لئے.

  5. یہ میزیں تیزی سے فیصلے اور فیصلے کرنے میں مدد کے لئے متعدد اشارے کی موجودہ قیمتوں کو دکھاتی ہیں۔

خطرے کا تجزیہ

  1. اشارے کے غلط سگنل کے امکان کو مکمل طور پر روکنا ممکن نہیں ہے ، جس سے غلط آپریشن کا خطرہ پیدا ہوتا ہے۔ پیرامیٹرز کو ایڈجسٹ کرکے اشارے کو بہتر بنایا جاسکتا ہے۔

  2. اے ٹی آر اور اسٹاپ نقصان کی شرح کی ترتیب اصل اسٹاپ نقصان کی پوزیشن کو متاثر کرتی ہے۔ اس تناسب کی حد سے زیادہ یا کم ہونے سے کچھ خطرہ لاحق ہوتا ہے ، جس میں توازن کی ضرورت ہوتی ہے۔

  3. اس کے علاوہ ، یہ بھی کہا گیا ہے کہ اگر قیمتوں میں اضافے کی وجہ سے قیمتوں میں اضافے کی وجہ سے قیمتوں میں اضافے کی وجہ سے قیمتوں میں اضافے کی وجہ سے قیمتوں میں اضافے کی وجہ سے قیمتوں میں اضافے کی وجہ سے قیمتوں میں اضافے کا سبب بنتا ہے۔

  4. فبونیکی پوائنٹ بھی 100 فیصد قابل اعتماد نہیں ہے ، قیمتیں براہ راست اس پوائنٹ سے ٹکرا سکتی ہیں۔

اصلاح کی سمت

  1. RSI ، ADX ، ATR اور اسی طرح کے پیرامیٹرز کی جانچ اور اصلاح کے لئے بہترین پیرامیٹرز کا مجموعہ تلاش کریں۔

  2. مختلف مساوی لائنوں کے مجموعے کی جانچ کریں اور فیصلہ کریں کہ کون سے مساوی لائنوں کا مجموعہ رجحانات کے اثر کو بہتر طور پر طے کرتا ہے۔

  3. مختلف سٹاپ نقصان اور سٹاپ بریک تناسب کے پیرامیٹرز کی جانچ کریں اور اس کے لئے زیادہ سے زیادہ خطرہ اور منافع کے لئے بہترین پیرامیٹرز تلاش کریں۔

  4. BollingerBands کے اشارے کو شامل کرنے پر غور کیا جاسکتا ہے تاکہ یہ معلوم کیا جاسکے کہ تجارت کی مقدار میں اضافہ ہوا ہے۔

خلاصہ کریں۔

اس حکمت عملی میں متعدد تکنیکی ذرائع کا استعمال کیا گیا ہے جیسے رجحان کا فیصلہ ، کلیدی نقطہ کا فیصلہ ، تجارت کا حجم تجزیہ وغیرہ۔ پیرامیٹرز کی اصلاح کے ذریعہ ، فیصلہ کی درستگی اور منافع کو مزید بہتر بنایا گیا ہے۔ سٹاپ نقصان کی روک تھام کی ترتیب خطرے کو کنٹرول کرتی ہے ، منافع کو زیادہ سے زیادہ کرتی ہے۔ یہ حکمت عملی وسط لمبی لائن کے رجحانات کا فیصلہ کرنے اور قلیل مدتی الٹ اثر کو پکڑنے کے لئے بہتر ہے۔ مسلسل اصلاحی جانچ کے ذریعہ حکمت عملی کو زیادہ مستحکم اور قابل اعتماد بنایا جاسکتا ہے۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2022-12-22 00:00:00
end: 2023-12-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © amit74sharma135

//@version=5

strategy(" KritikSharma Strategy for NIFTY,BNIFTY,NG,CRUDE,WTICrude,BTC,GOLD,SILVER,COPPER", overlay=true)
plotHVB = input.bool(defval=true, title='Plot HVB')
plotPVT = input.bool(defval=false, title='Plot Pivots')
hvbEMAPeriod = input.int(defval=12, minval=1, title='Volume EMA Period')
hvbMultiplier = input.float(defval=1.5, title='Volume Multiplier')
pivotLookup = input.int(defval=2, minval=1, maxval=15, title='Pivot Lookup')
ShowAvg1 = input(false, title="Show trend line", group="TREND LINE Moving Average", tooltip="Display a trend line based on EMA.")
showLines1 = input.bool(defval=false, title="Draw EMA,WMA Line")
ema200_length= input.int(defval=200, minval=1, maxval=500, title='ema1')
ema300_length= input.int(defval=300, minval=1, maxval=500, title='ema2')
wma60_length= input.int(defval=60, minval=1, maxval=100, title='wma60')
ema5 = ta.ema(close, 5)
ema9 = ta.ema(close, 9)
wma21=ta.wma(close,21)
wma60=ta.wma(close,wma60_length)
len1 = input.int(11, minval=1, maxval=500, title="Length", group="TREND LINE Moving Average", tooltip="Set EMA length.")
ema=ta.ema(close, len1)
rsiLength = input.int(14, title="RSI Length", minval=1, maxval=50, group="Table ADX, RSI, DI values with Red, Green, Yellow Signal")
adxLength = input.int(14, title="ADX Length", minval=1, maxval=50, group="Table ADX, RSI, DI values with Red, Green, Yellow Signal")
adxThreshold = input.int(20, title="ADX Threshold", group="Table ADX, RSI, DI values with Red, Green, Yellow Signal")
diThreshold = input.int(25, title="DI Threshold", group="Table ADX, RSI, DI values with Red, Green, Yellow Signal")
atr = input.int(14, title="ATR values", group="Table ADX, RSI, DI values with Red, Green, Yellow Signal")
////////////////////////////////////////////////

hvbBullColor = color.rgb(181, 37, 225)
hvbBearColor = #ffbb00ad

pvtTopColor = color.new(#154bef, 0)
pvtBottomColor = color.new(#b81657, 0)

//////////////////// Pivots //////////////////// 
hih = ta.pivothigh(high, pivotLookup, pivotLookup)
lol = ta.pivotlow(low , pivotLookup, pivotLookup)
top1 = ta.valuewhen(hih, high[pivotLookup], 0)
bottom1 = ta.valuewhen(lol, low [pivotLookup], 0)
plot(top1, offset=-pivotLookup, linewidth=1, color=(top1 != top1[1] ? na : (plotPVT ? pvtTopColor : na)), title="Pivot Top")
plot(bottom1, offset=-pivotLookup, linewidth=1, color=(bottom1 != bottom1[1] ? na : (plotPVT ? pvtBottomColor : na)), title="Pivot Bottom")

//////////////////////////////////////Functions
isUp(index) =>
    close[index] > open[index]

isDown(index) =>
    close[index] < open[index]

isObUp(index) =>
    isDown(index + 1) and isUp(index) and close[index] > high[index + 1]

isObDown(index) =>
    isUp(index + 1) and isDown(index) and close[index] < low[index + 1]
////////////////// High Volume Bars //////////////////
volEma = ta.ema(volume, hvbEMAPeriod)
isHighVolume = volume > (hvbMultiplier * volEma)
barcolor(plotHVB and isUp(0) and isHighVolume ? hvbBullColor : na, title="Bullish HVB")
barcolor(plotHVB and isDown(0) and isHighVolume ? hvbBearColor : na, title="Bearish HVB")

// Calculate ADX, DI+,  DI-,RSI,ATR
[diplus, diminus, adx] = ta.dmi(adxLength, adxThreshold)
rsi=ta.rsi(close,rsiLength)
atrValue=ta.atr(atr)

// Check for oversold,Overbought condition
oversold_condition = rsi < 20
overbought_condition = rsi > 80

// Plot Trend Line
trendColor = ema5 > ema9 ? color.rgb(22, 203, 28) : ema5 < ema9 ? color.rgb(224, 15, 15) : na
plot(ShowAvg1? ema:na, color=trendColor, linewidth=6, title="Trend Line Upper Ribbon")

/////////////////////////plot ema,wma
plot(showLines1 ? ta.ema(close, ema200_length) : na, color=color.rgb(102, 110, 103), style=plot.style_line, title="ema1",linewidth = 4)
plot(showLines1 ? ta.ema(close, ema300_length) : na, color=color.rgb(18, 20, 18), style=plot.style_line, title="ema2",linewidth = 4)
plot(showLines1 ? ta.wma(close, wma60_length) : na, color=color.rgb(238, 75, 211), style=plot.style_line, title="wma60",linewidth = 3)

// Plot signals with smaller text
plotshape(oversold_condition ? 1 : na, title="RSI Oversold Signal", color=color.rgb(238, 8, 8), style=shape.labelup, location=location.belowbar, text="RSI OS", textcolor=color.rgb(17, 17, 17), size=size.tiny)
plotshape(overbought_condition ? 1 : na, title="RSI Overbought Signal", color=#08f710, style=shape.labeldown, location=location.abovebar, text="RSI OB", textcolor=color.rgb(8, 8, 8), size=size.tiny)
///////////////////////////////////////////////////////////////////////////////////////////////

// Define input options
showTable = input(false, title="Show Table ADX, RSI, DI values with RED, GREEN and YELLOW Signal")
tablePosition = input.string("Top Right", title="Table Position", options=["Top Right", "Top Left", "Top Center", "Bottom Right", "Bottom Left", "Bottom Center"])

// Define colors for the table cells
colorRsi = rsi > 55 ? color.green : rsi < 45 ? color.red : color.yellow
colorDiPlus = diplus > diThreshold ? color.green : color.red
colorDiMinus = diminus > diThreshold ? color.red : color.green
colorAdx = (rsi < 45 and diplus < diThreshold and diminus > diThreshold and adx > adxThreshold) ? color.red : 
           (rsi > 55 and diplus > diThreshold and diminus < diThreshold and adx > adxThreshold) ? color.green : 
           color.yellow

// Create the table
var table testTable = na
if showTable
    var position = tablePosition == "Top Right" ? position.top_right :
                   tablePosition == "Top Left" ? position.top_left :
                   tablePosition == "Top Center" ? position.top_center :
                   tablePosition == "Bottom Right" ? position.bottom_right :
                   tablePosition == "Bottom Left" ? position.bottom_left :
                   position.bottom_center

    testTable := table.new(position, columns = 4, rows = 2, border_width = 1, border_color = color.black, frame_width = 1, frame_color = color.black)

    // Column Headings
    table.cell(table_id = testTable, column = 0, row = 0, text = " DI+ ", bgcolor=color.aqua, text_color = color.white)
    table.cell(table_id = testTable, column = 1, row = 0, text = " DI- ", bgcolor=color.aqua, text_color = color.white)
    table.cell(table_id = testTable, column = 2, row = 0, text = " ADX ", bgcolor=color.aqua, text_color = color.white)
    table.cell(table_id = testTable, column = 3, row = 0, text = " RSI ", bgcolor=color.aqua, text_color = color.white)

    // Column values
    table.cell(table_id = testTable, column = 0, row = 1, text = str.tostring(math.round(diplus, 0)), bgcolor=colorDiPlus, text_color = color.black)
    table.cell(table_id = testTable, column = 1, row = 1, text = str.tostring(math.round(diminus, 0)), bgcolor=colorDiMinus, text_color = color.black)
    table.cell(table_id = testTable, column = 2, row = 1, text = str.tostring(math.round(adx, 0)), bgcolor=colorAdx, text_color = color.black)
    table.cell(table_id = testTable, column = 3, row = 1, text = str.tostring(math.round(rsi, 0)), bgcolor=colorRsi, text_color = color.black)


// Initialize variables to keep track of the previous condition
var bool prev_oversold = na
var bool prev_overbought = na

plotshape(ta.crossover(ema,wma60) and isHighVolume,  style=shape.labelup, location=location.belowbar, color=#1adaf3,size=size.small)
plotshape(ta.crossunder(ema,wma60) and isHighVolume,  style=shape.labeldown, location=location.abovebar, color=#f30aa9, size=size.small)
//////////////////////////////////////////////////   
plotFibRetracement = input.bool(title="Plot Fibonacci Retracement", defval=false)
fibLevel1 = input.float(title="Fibonacci Level", defval=0.5, minval=0, maxval=1, step=0.01)
fibLevel2 = input.float(title="Fibonacci Level", defval=0.618, minval=0, maxval=1, step=0.01)
fibLevel3 = input.float(title="Fibonacci Level", defval=0.368, minval=0, maxval=1, step=0.01) 
// Calculate Fibonacci Levels
highPrice = ta.highest(high, 100)
lowPrice = ta.lowest(low, 100)
priceRange = highPrice - lowPrice
fibonacciLevel1 = lowPrice + priceRange * fibLevel1
fibonacciLevel2 = lowPrice + priceRange * fibLevel2
fibonacciLevel3 = lowPrice + priceRange * fibLevel3

// Plot Fibonacci Levels
if plotFibRetracement
    line.new(x1=bar_index[1], y1=fibonacciLevel1, x2=bar_index, y2=fibonacciLevel1, color=color.blue, width=2)
    line.new(x1=bar_index[1], y1=fibonacciLevel2, x2=bar_index, y2=fibonacciLevel2, color=color.blue, width=2)
    line.new(x1=bar_index[1], y1=fibonacciLevel3, x2=bar_index, y2=fibonacciLevel3, color=color.blue, width=2)
// Draw Trendline
var float trendlineY1 = na
var float trendlineY2 = na

if bar_index % 50 == 0
    trendlineY1 := low
    trendlineY2 := high

// line.new(x1=bar_index, y1=trendlineY1, x2=bar_index - 100, y2=trendlineY2, color=#3708a5, width=2)

////////////////////////////////////////////////entry, exit, profit booking, stoploss///////////////////////
if (rsi > 63 and adx> adxThreshold and diplus>diThreshold)
    strategy.entry("Buy", strategy.long, qty = 1)

if (rsi < 40 and adx> adxThreshold and diminus>diThreshold)
    strategy.entry("Sell", strategy.short, qty = 1)

// Set stop loss and take profit levels
stop_loss = input(1.5, title = "Stop Loss (%)") * atrValue
take_profit = input(4.0, title = "Take Profit (%)") * atrValue
strategy.exit("Take Profit/Stop Loss", from_entry = "Buy", stop = close - stop_loss, limit = close + take_profit)
strategy.exit("Take Profit/Stop Loss", from_entry = "Sell", stop = close + stop_loss, limit = close - take_profit)
////////////////////////