متعدد ٹائم فریموں میں سپورٹ / مزاحمت اور رفتار کے اشارے پر مبنی رجحان کی پیروی کرنے والی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-03-08 17:41:26
ٹیگز:

img

حکمت عملی کا جائزہ

اس حکمت عملی میں متعدد تکنیکی اشارے شامل ہیں جن میں معاونت / مزاحمت کی سطح ، سپر ٹرینڈ ، اور متعدد ٹائم فریموں میں چلنے والے اوسط شامل ہیں تاکہ رجحان کی سمت کو جامع طور پر طے کیا جاسکے اور رجحان کے بعد ٹریڈنگ سسٹم کو نافذ کیا جاسکے۔ اس حکمت عملی کا بنیادی خیال یہ ہے کہ: پہلے ، موجودہ معاونت / مزاحمت کی سطح کا تعین کرنے کے لئے محور پوائنٹس کا استعمال کریں۔ پھر ، موجودہ رجحان کی سمت کی نشاندہی کرنے کے لئے سپر ٹرینڈ اشارے کا استعمال کریں۔ اور آخر میں ، اختلاف کو فلٹر کرنے کے لئے چلنے والے اوسط کا استعمال کریں۔ اسی وقت ، حکمت عملی میں رسک کنٹرول کے اقدامات جیسے ٹائم ونڈوز کا تعین اور زیادہ سے زیادہ تجارتی پوزیشنوں کو محدود کرنا بھی شامل ہے۔

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

  1. سب سے پہلے ، موجودہ سپورٹ / مزاحمت کی سطح حاصل کرنے کے لئے ایک خاص ماضی کی مدت میں سب سے زیادہ اور سب سے کم قیمتوں پر مبنی محور پوائنٹس کا حساب لگائیں۔
  2. رجحان کا تعین کرنے کے لئے سپر ٹرینڈ اشارے کا استعمال کریں۔ سپر ٹرینڈ متحرک سپورٹ / مزاحمت کی سطحوں سے حساب لگایا گیا رجحان کی پیروی کرنے والا اشارے ہے۔
  3. اسٹاپ نقصان کے لئے اے ٹی آر کا استعمال کریں۔ اس حکمت عملی میں اصل سپر ٹرینڈ کے اوپر اے ٹی آر کو اسٹاپ نقصان کی سطح کے طور پر شامل کیا گیا ہے۔
  4. چلتی اوسط کو رجحان فلٹر کے طور پر استعمال کریں۔ صرف اس وقت طویل ہوجائیں جب رجحان اوپر ہو اور قیمت چلتی اوسط سے اوپر ہو ، اور صرف اس وقت مختصر ہوجائیں جب رجحان نیچے ہو اور قیمت چلتی اوسط سے نیچے ہو۔
  5. تجارتی وقت کی کھڑکی مقرر کریں۔ اہم اوقات میں تجارت سے بچنے کے لئے صرف ایک مخصوص وقت کے وقفے کے اندر پوزیشنیں کھولیں۔
  6. لمبی اور مختصر پوزیشنوں کو الگ الگ منظم کریں۔ لمبی اور مختصر سگنل ان کے متعلقہ افتتاحی اور اختتامی منطق کو آزادانہ طور پر متحرک کرتے ہیں۔

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

فوائد کا تجزیہ

  1. سپورٹ / مزاحمت کی سطح پر مبنی تجارت کا فائدہ یہ ہے کہ یہ مارکیٹ میں طلب اور رسد کے قانون کے مطابق ہے ، اور محور پوائنٹس متحرک طور پر مارکیٹ کے توازن کی عکاسی کرسکتے ہیں۔
  2. سپر ٹرینڈ مؤثر طریقے سے رجحانات کو پکڑ سکتا ہے اور بروقت طریقے سے نقصانات کو روک سکتا ہے۔ اے ٹی آر اسٹاپ نقصان خطرے کو مزید کنٹرول کرتا ہے۔
  3. چلتی اوسط فلٹرنگ مخالف رجحان کی تجارت سے گریز کرتی ہے۔ جب رجحان اور چلتی اوسط ہم آہنگ ہوتے ہیں تو مارکیٹ میں داخل ہونا زیادہ جیت کی شرح کا باعث بنے گا۔
  4. اپنی مرضی کے مطابق ٹریڈنگ ٹائم ونڈو اہم اوقات میں تجارت سے کچھ حد تک بچتا ہے ، جیسے مارکیٹ کھولنے اور بند ہونے سے پہلے۔
  5. لانگ اور شارٹ سگنل آزادانہ طور پر کام کرتے ہیں، جس سے ایک ہی وقت میں لانگ اور شارٹ پوزیشنوں کو برقرار رکھنے کی اجازت ملتی ہے، اس طرح مارکیٹ کے مواقع کو زیادہ مکمل طور پر استعمال کیا جاتا ہے.

خطرے کا تجزیہ

  1. کثرت سے تجارت کا خطرہ۔ یہ حکمت عملی اکثر اتار چڑھاؤ والے بازار میں پوزیشنیں کھول سکتی ہے اور بند کر سکتی ہے ، جس کے نتیجے میں لین دین کے اخراجات بہت زیادہ ہوتے ہیں۔
  2. انسداد رجحان کی تجارت اب بھی ہوسکتی ہے۔ اگرچہ یہ حکمت عملی حرکت پذیر اوسط فلٹرنگ کو اپناتی ہے ، اگر خود حرکت پذیر اوسط بڑے رجحان کے خلاف جاتا ہے تو ، انسداد رجحان کی تجارت اب بھی ہوسکتی ہے۔
  3. پیرامیٹر کی اصلاح کا مسئلہ۔ حکمت عملی میں بہت سارے پیرامیٹرز شامل ہیں ، جیسے سپر ٹرینڈ کی مدت اور ضرب ، اور حرکت پذیر اوسط کی مدت۔ مختلف پیرامیٹرز مختلف نتائج برآمد کریں گے ، اور پیرامیٹر کے بہترین امتزاج کا انتخاب ایک چیلنج ہے۔
  4. انتہائی مارکیٹ کے حالات میں ناکام ہوسکتا ہے۔ انتہائی مارکیٹ کے حالات میں ، جیسے تیز اضافے اور گرنے ، لیکویڈیٹی کے بحران وغیرہ ، یہ حکمت عملی بروقت نقصانات کو روکنے کے قابل نہیں ہوسکتی ہے۔

اصلاح کی ہدایات

  1. زیادہ درمیانی اور طویل مدتی چلنے والے اوسط متعارف کرانے کے لئے رجحان کی تشخیص کی وشوسنییتا کو بہتر بنانے اور کثرت سے تجارت کو کم کرنے کے لئے.
  2. اعلی اتار چڑھاؤ والے بازاروں میں تجارت کو کم کرنے کے لئے بولنگر بینڈ جیسے اتار چڑھاؤ کے اشارے متعارف کرانے پر غور کریں۔
  3. مختلف پیرامیٹرز کو بہتر بنانے کے لئے پیرامیٹرز کا بہترین مجموعہ تلاش کریں اور حکمت عملی کے استحکام کو بہتر بنائیں.
  4. خطرہ پر قابو پانے کے لئے انتہائی مارکیٹ کے حالات میں ہارڈ اسٹاپ نقصان مقرر کریں۔ اس کے علاوہ ، غیر معمولی مارکیٹ میں اتار چڑھاؤ ، جیسے قیمتوں میں فرق اور تجارتی حجم میں اضافے کا فیصلہ شامل کرنے پر غور کریں ، اور غیر معمولی حالتوں کے دوران تجارت کو کم کریں یا روکیں۔

خلاصہ

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


/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@rpcoelho
// Based on © Julien_Eche "Pivot Point Supertrend" with optional EMAs ploted
//@version=4

strategy("PPS w/ EMAs", overlay=true)

prd = input(defval = 1, title="Pivot Point Period", minval = 1, maxval = 50)
Factor=input(defval = 4, title = "ATR Factor", minval = 1, step = 0.1)
Pd=input(defval = 72, title = "ATR Period", minval=1)
showpivot = input(defval = false, title="Show Pivot Points")
showlabel = input(defval = true, title="Show Buy/Sell Labels")
showcl = input(defval = false, title="Show PP Center Line")
showsr = input(defval = false, title="Show Support/Resistance")

/////////////////////////////////////////////////////////////////////////
// Switch Board
////////////////////////////////////////////////////////////////////////
// Define the switch board title as a label (since grouping is not available)
//switchboard_group = "████ Switch Board (Turn On/Off Overlay Indicators) ████"
//label.new(bar_index, high, switchboard_group, color=color.red)
// Create input controls for EMA and VWAP switches
switch_ema = input(true, title="EMA")

/////////////////////////////////////////////////////////////////////////
// EMA Selection
////////////////////////////////////////////////////////////////////////

ma_function(source, length, type) =>
    float ma = na
    if type == 'RMA'
        ma := rma(source, length)
    else if type == 'SMA'
        ma := sma(source, length)
    else if type == 'EMA'
        ma := ema(source, length)
    else if type == 'WMA'
        ma := wma(source, length)
    else if type == 'HMA'
        ma := length < 2 ? hma(source, 2) : hma(source, length)
    else
        ma := vwma(source, length)
    ma

// Moving Averages Line Title
//ma_group = "██████████ MAs Line ██████████"

// Inputs for MA 1
len1bool = input(false, title="Show MA 1")
len1 = input(13, title="Length MA 1")
ma_1_type = input("EMA", title="Type MA 1", options=["RMA", "SMA", "EMA", "WMA", "HMA", "VWMA"])
src_ma1 = input(title="MA1 Source", type=input.source, defval=close)
ma_1_colour = input(color.rgb(235, 159, 238), title="Color MA 1")

// Inputs for MA 2
len2bool = input(false, title="Show MA 2")
len2 = input(17, title="Length MA 2")
ma_2_type = input("EMA", title="Type MA 2", options=["RMA", "SMA", "EMA", "WMA", "HMA", "VWMA"])
src_ma2 = input(title="MA2 Source", type=input.source, defval=close)
ma_2_colour = input(color.rgb(230, 241, 65), title="Color MA 2")

// Inputs for MA 3
len3bool = input(true, title="Show MA 3")
len3 = input(34, title="Length MA 3")
ma_3_type = input("EMA", title="Type MA 3", options=["RMA", "SMA", "EMA", "WMA", "HMA", "VWMA"])
src_ma3 = input(title="MA3 Source", type=input.source, defval=close)
ma_3_colour = input(#c7f887, title="Color MA 3")

// Inputs for MA 4
len4bool = input(false, title="Show MA 4")
len4 = input(72, title="Length MA 4")
ma_4_type = input("EMA", title="Type MA 4", options=["RMA", "SMA", "EMA", "WMA", "HMA", "VWMA"])
src_ma4 = input(title="MA4 Source", type=input.source, defval=close)
ma_4_colour = input(#2f6999, title="Color MA 4")

// Inputs for MA 5
len5bool = input(true, title="Show MA 5")
len5 = input(144, title="Length MA 5")
ma_5_type = input("EMA", title="Type MA 5", options=["RMA", "SMA", "EMA", "WMA", "HMA", "VWMA"])
src_ma5 = input(title="MA5 Source", type=input.source, defval=close)
ma_5_colour = input(color.rgb(13, 156, 37), title="Color MA 5")

// Inputs for MA 6
len6bool = input(true, title="Show MA 6")
len6 = input(610, title="Length MA 6")
ma_6_type = input("EMA", title="Type MA 6", options=["RMA", "SMA", "EMA", "WMA", "HMA", "VWMA"])
src_ma6 = input(title="MA6 Source", type=input.source, defval=close)
ma_6_colour = input(color.rgb(173, 161, 152), title="Color MA 6")

// Inputs for MA 7
len7bool = input(true, title="Show MA 7")
len7 = input(8, title="Length MA 7")
ma_7_type = input("EMA", title="Type MA 7", options=["RMA", "SMA", "EMA", "WMA", "HMA", "VWMA"])
src_ma7 = input(title="MA7 Source", type=input.source, defval=close)
ma_7_colour = input(color.rgb(68, 39, 231), title="Color MA 7")

// Inputs for MA 8
len8bool = input(true, title="Show MA 8")
len8 = input(21, title="Length MA 8")
ma_8_type = input("EMA", title="Type MA 8", options=["RMA", "SMA", "EMA", "WMA", "HMA", "VWMA"])
src_ma8 = input(title="MA8 Source", type=input.source, defval=close)
ma_8_colour = input(color.white, title="Color MA 8")

ema1 = security(syminfo.tickerid, timeframe.period, ma_function(src_ma1, len1, ma_1_type))
ema2 = security(syminfo.tickerid, timeframe.period, ma_function(src_ma2, len2, ma_2_type))
ema3 = security(syminfo.tickerid, timeframe.period, ma_function(src_ma3, len3, ma_3_type))
ema4 = security(syminfo.tickerid, timeframe.period, ma_function(src_ma4, len4, ma_4_type))
ema5 = security(syminfo.tickerid, timeframe.period, ma_function(src_ma5, len5, ma_5_type))
ema6 = security(syminfo.tickerid, timeframe.period, ma_function(src_ma6, len6, ma_6_type))
ema7 = security(syminfo.tickerid, timeframe.period, ma_function(src_ma7, len7, ma_7_type))
ema8 = security(syminfo.tickerid, timeframe.period, ma_function(src_ma8, len8, ma_8_type))

plot(len1bool and switch_ema ? ema1:na, color=ma_1_colour, linewidth=1, title='MA 1')
plot(len2bool and switch_ema? ema2:na, color=ma_2_colour, linewidth=1, title='MA 2')
plot(len3bool and switch_ema? ema3:na, color=ma_3_colour, linewidth=1, title='MA 3')
plot(len4bool and switch_ema? ema4:na, color=ma_4_colour, linewidth=1, title='MA 4')
plot(len5bool and switch_ema? ema5:na, color=ma_5_colour, linewidth=1, title='MA 5')
plot(len6bool and switch_ema? ema6:na, color=ma_6_colour, linewidth=2, title='MA 6')
plot(len7bool and switch_ema? ema7:na, color=ma_7_colour, linewidth=1, title='MA 7')
plot(len8bool and switch_ema? ema8:na, color=ma_8_colour, linewidth=1, title='MA 8')









// get Pivot High/Low
float ph = pivothigh(prd, prd)
float pl = pivotlow(prd, prd)

// drawl Pivot Points if "showpivot" is enabled
plotshape(ph and showpivot, text="H",  style=shape.labeldown, color=na, textcolor=color.red, location=location.abovebar, transp=0, offset = -prd)
plotshape(pl and showpivot, text="L",  style=shape.labeldown, color=na, textcolor=color.lime, location=location.belowbar, transp=0, offset = -prd)

// calculate the Center line using pivot points
var float center = na
float lastpp = ph ? ph : pl ? pl : na
if lastpp
    if na(center)
        center := lastpp
    else
        //weighted calculation
        center := (center * 2 + lastpp) / 3

// upper/lower bands calculation
Up = center - (Factor * atr(Pd))
Dn = center + (Factor * atr(Pd))

// get the trend
float TUp = na
float TDown = na
Trend = 0
TUp := close[1] > TUp[1] ? max(Up, TUp[1]) : Up
TDown := close[1] < TDown[1] ? min(Dn, TDown[1]) : Dn
Trend := close > TDown[1] ? 1: close < TUp[1]? -1: nz(Trend[1], 1)
Trailingsl = Trend == 1 ? TUp : TDown

// plot the trend
linecolor = Trend == 1 and nz(Trend[1]) == 1 ? color.lime : Trend == -1 and nz(Trend[1]) == -1 ? color.red : na
plot(Trailingsl, color = linecolor ,  linewidth = 2, title = "PP SuperTrend")
 
plot(showcl ? center : na, color = showcl ? center < hl2 ? color.blue : color.red : na)

// check and plot the signals
bsignal = Trend == 1 and Trend[1] == -1
ssignal = Trend == -1 and Trend[1] == 1
plotshape(bsignal and showlabel ? Trailingsl : na, title="Buy", text="Buy", location = location.absolute, style = shape.labelup, size = size.tiny, color = color.lime, textcolor = color.black, transp = 0)
plotshape(ssignal and showlabel ? Trailingsl : na, title="Sell", text="Sell", location = location.absolute, style = shape.labeldown, size = size.tiny, color = color.red, textcolor = color.white, transp = 0)

//get S/R levels using Pivot Points
float resistance = na
float support = na
support := pl ? pl : support[1]
resistance := ph ? ph : resistance[1]

// if enabled then show S/R levels
plot(showsr and support ? support : na, color = showsr and support ? color.lime : na, style = plot.style_circles, offset = -prd)
plot(showsr and resistance ? resistance : na, color = showsr and resistance ? color.red : na, style = plot.style_circles, offset = -prd)

// Trend Filter from SuperTrend Long Strategy
Periods = input(title="ATR Period", type=input.integer, defval=3)
src = input(hlc3, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=4.0)
changeATR = input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)

// Combine the SuperTrend calculations
atr2 = sma(tr, Periods)
atr = changeATR ? atr(Periods) : atr2

up = src - (Multiplier * atr)
up1 = nz(up[1], up)
up := close[1] > up1 ? max(up, up1) : up

dn = src + (Multiplier * atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn

trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend

// Moving Average as Trend Filter
periodes_ma = input(title="Moving Average Period", type=input.integer, defval=20)
src_ma = input(title="Moving Average Source", type=input.source, defval=close)
ma = sma(src_ma, periodes_ma)

// Strategy Entry Conditions
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2017, title = "From Year", minval = 999)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 999)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       

window()  => true

// Combined entry conditions
longCondition = (trend == 1 and trend[1] == -1 and close > ma) or (bsignal and window())
shortCondition = (trend == -1 and trend[1] == 1 and close < ma) or (ssignal and window())

if (longCondition)
    strategy.entry("BUY", strategy.long)

if (shortCondition)
    strategy.close("BUY")
    strategy.entry("SELL", strategy.short)

buy1 = barssince((trend == 1 and trend[1] == -1 and close > ma) or (bsignal and window()))
sell1 = barssince((trend == -1 and trend[1] == 1 and close < ma) or (ssignal and window()))
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na
barcolor(color1)


مزید