ٹرپل سپر ٹرینڈ اور اسٹاک آر ایس آئی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-12-06 14:29:00
ٹیگز:

img

جائزہ

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

حکمت عملی منطق

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

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

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

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

حکمت عملی کے فوائد

ٹرپل سپر ٹرینڈ اور اسٹاک آر ایس آئی کی حکمت عملی کا سب سے بڑا فائدہ متعدد اشارے اور ٹائم فریم کے موثر امتزاج میں ہے ، جس سے درج ذیل فوائد حاصل ہوتے ہیں۔

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

  2. منافع بخش سگنل تناسب کو بہتر بناتا ہے۔ سگنل کی تعدد میں کمی کے باوجود ، منافع بخش سگنلز کا تناسب نمایاں طور پر بہتر ہوتا ہے۔

  3. ٹرینڈنگ مارکیٹوں کے لئے موزوں ہے۔ ملٹی ٹائم فریم فلٹرنگ درمیانے اور طویل مدتی رجحانات کو پکڑنے میں آسانی پیدا کرتی ہے ، جو ٹرینڈنگ مارکیٹ کے ماحول کو اچھی طرح سے فٹ کرتی ہے۔

  4. بہتر کارکردگی کے لئے آسان اصلاح۔ ٹرپل اشارے پیرامیٹر کی اصلاح کے لئے وسیع تر امکانات کی اجازت دیتے ہیں۔

  5. ذاتی تجارتی طرز کی خدمت کرنے والے حسب ضرورت پیرامیٹرز۔ پیرامیٹرز کو آزادانہ طور پر ایڈجسٹ کیا جاسکتا ہے تاکہ کسی کے اپنے تجارتی انداز کو بہتر طور پر پورا کیا جاسکے۔

اسٹریٹجی کے خطرات

ٹرپل سپر ٹرینڈ اور اسٹاک آر ایس آئی حکمت عملی سے وابستہ کچھ خطرات بھی ہیں:

  1. سگنل کی تعدد میں کمی۔ کثیر پرت فلٹر میکانزم حکمت عملی کی تجارتی تعدد کو نمایاں طور پر کم کرتا ہے۔

  2. کچھ ممکنہ اشاروں کو نظر انداز کرنے کا امکان ہے۔ قدامت پسند نوعیت کی وجہ سے حکمت عملی سے کچھ منافع بخش مواقع ضائع ہونے کا امکان ہے۔

  3. پیرامیٹر انحصار میں اضافہ۔ زیادہ اشارے کا مطلب ہے کہ اصلاح میں زیادہ مشکل ہے۔

  4. رجحان کی پیروی کرنے کی محدود صلاحیت۔ متعدد ٹائم فریم کا امتزاج حکمت عملی کی رجحان کی پیروی کی لچک کو بھی محدود کرتا ہے۔

ان خطرات سے نمٹنے کے لئے، بہتر بنانے کے اقدامات جیسے اشارے کے پیرامیٹرز کو ایڈجسٹ کرنا اور منافع بخش معیار کو بہتر بناتے ہوئے خطرے کے کنٹرول کو بہتر بنانے کے لئے مزید اضافی اشارے متعارف کرانے کو اپنایا جاسکتا ہے۔

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

ٹرپل سپر ٹرینڈ اور اسٹاک آر ایس آئی کی حکمت عملی کو مزید بہتر بنانے کے لئے ابھی بھی گنجائش ہے۔

  1. بہترین امتزاج کے لئے اشارے کے پیرامیٹرز کو ایڈجسٹ کریں۔ زیادہ سے زیادہ پیرامیٹرز کا تجربہ کیا جاسکتا ہے تاکہ زیادہ سے زیادہ تلاش کیا جاسکے۔

  2. بہتر رسک کنٹرول کے لیے اسٹاپ نقصان/پائدا حاصل کریں۔ اس سے حکمت عملی کے استحکام میں بہتری آسکتی ہے۔

  3. سگنل کی توثیق کے لئے مزید اشارے شامل کریں، مثال کے طور پر حجم اشارے.

  4. خود کار طریقے سے مارکیٹ کی متحرک تبدیلیوں کے مطابق پیرامیٹرز کو بہتر بنانے کے لئے موافقت پذیر صلاحیتوں میں تعمیر کریں.

  5. کارکردگی کی پیشن گوئی کے لئے مشین لرننگ الگورتھم کو یکجا کریں، سگنل کی درستگی کا اندازہ کریں.

مسلسل اصلاح کے ساتھ ، ٹرپل سپر ٹرینڈ اور اسٹاک آر ایس آئی حکمت عملی ایک مستحکم ، موثر تجارتی نظام میں تیار ہوسکتی ہے ، جو کافی الفا فراہم کرتی ہے۔

نتیجہ

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


/*backtest
start: 2022-11-29 00:00:00
end: 2023-04-17 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/
// © M3RZI

//@version=4
strategy("3x Supertrend and Stoch RSI", overlay = true, max_bars_back = 1000)

//INPUTS
STATRLENGTH1 = input(10, title = "Fast Supertrend ATR Length", type = input.integer, group = "SUPERTREND SETTINGS")
STATRMULT1 = input(1, title = "Fast Supertrend ATR Multiplier", type = input.float, group = "SUPERTREND SETTINGS")
STATRLENGTH2 = input(11, title = "Medium Supertrend ATR Length", type = input.integer, group = "SUPERTREND SETTINGS")
STATRMULT2 = input(2, title = "Medium Supertrend ATR Multiplier", type = input.float, group = "SUPERTREND SETTINGS")
STATRLENGTH3 = input(12, title = "Slow Supertrend ATR Length", type = input.integer, group = "SUPERTREND SETTINGS")
STATRMULT3 = input(3, title = "Slow Supertrend ATR Multiplier", type = input.float, group = "SUPERTREND SETTINGS")

stochK = input(3, title = "K (Stochastic Fast)", type = input.integer, group = "STOCHASTIC RSI SETTINGS")
stochD = input(3, title = "D (Signal Line)", type = input.integer, group = "STOCHASTIC RSI SETTINGS")
rsiLength = input(14, title = "RSI Length", type = input.integer, group = "STOCHASTIC RSI SETTINGS")
stochLength = input(14, title = "Stochastic Length", type = input.integer, group = "STOCHASTIC RSI SETTINGS")
rsiSource = input(close, title = "RSI Source", type = input.source, group = "STOCHASTIC RSI SETTINGS")
stochRestrictions = input(false, title = "Restrict crosses to overbought/oversold territory", type = input.bool, group = "STOCHASTIC RSI SETTINGS")
overboughtLine = input(80, title = "Stochastic  RSI Upper Band", type = input.integer, group = "STOCHASTIC RSI SETTINGS")
oversoldLine = input(20, title = "Stochastic RSI Lower Band", type = input.integer, group = "STOCHASTIC RSI SETTINGS")

EMALength  = input(200, title = "EMA Length", type = input.integer, group = "EMA SETTINGS")

SLStrategy = input("ATR Based", title = "Stop Loss Strategy", options = ["ATR Based"],type = input.string, group = "POSITION EXIT SETTINGS")
SLATRLength = input(14, title = "Stop Loss ATR Length", type = input.integer, group = "POSITION EXIT SETTINGS")
SLATRMult = input(2.7, title = "Stop Loss ATR Multiplier", type = input.float, group = "POSITION EXIT SETTINGS")
TPStrategy = input("ATR Based", title = "Take Profit Strategy", options = ["ATR Based"],type = input.string, group = "POSITION EXIT SETTINGS")
TPATRLength = input(14, title = "Take Profit ATR Length", type = input.integer, group = "POSITION EXIT SETTINGS")
TPATRMult = input(1.6, title = "Take Profit ATR Multiplier", type = input.float, group = "POSITION EXIT SETTINGS")

//SUPERTRENDS
[superTrend1,dir1] = supertrend(STATRMULT1,STATRLENGTH1)
[superTrend2,dir2] = supertrend(STATRMULT2,STATRLENGTH2)
[superTrend3,dir3] = supertrend(STATRMULT3,STATRLENGTH3)

directionST1 = dir1 == 1 and dir1[1] == 1 ? false : dir1 == -1 and dir1[1] == -1 ? true : na
directionST2 = dir2 == 1 and dir2[1] == 1 ? false : dir2 == -1 and dir2[1] == -1 ? true : na
directionST3 = dir3 == 1 and dir3[1] == 1 ? false : dir3 == -1 and dir3[1] == -1 ? true : na

//STOCH RSI
rsi = rsi(rsiSource, rsiLength)
k = sma(stoch(rsi, rsi, rsi, stochLength), stochK)
d = sma(k, stochD)

//EMA
ema = ema(close,EMALength)

//CONDITIONS LONG AND SHORT

var long = false
var longCondition = false
var short = false
var shortCondition = false
var drawing = false
var TP = 0.0
var SL = 0.0
var middle = 0.0
var initial = 0

stopSize = atr(SLATRLength) * SLATRMult
profitSize = atr(TPATRLength) * TPATRMult
longStop = close - stopSize
longProfit = close + profitSize
current = close
shortStop = close + stopSize
shortProfit = close - profitSize
barInitial = bar_index

if  stochRestrictions
    longCondition := close > ema and ((directionST1 == true and directionST2 == true)  or (directionST2 == true and directionST3 == true)) and crossover(k,d) and k < oversoldLine and not long and not drawing
    shortCondition := close < ema and ((directionST1 == false and directionST2 == false)  or (directionST2 == false and directionST3 == false)) and crossunder(k,d) and k > overboughtLine and not short and not drawing
else
    longCondition := close > ema and ((directionST1 == true and directionST2 == true)  or (directionST2 == true and directionST3 == true)) and crossover(k,d) and not long and not drawing
    shortCondition := close < ema and ((directionST1 == false and directionST2 == false)  or (directionST2 == false and directionST3 == false)) and crossunder(k,d) and not short and not drawing

if longCondition
    long := true
    short := false
    drawing := true
    TP := longProfit
    middle := current
    SL := longStop
    initial := barInitial
    strategy.entry("Long", strategy.long, 10)
    strategy.exit("Long exit","Long", limit = TP, stop = SL)
    alert("Long signal Supertrend \n Profit:"+tostring(TP)+"\Curret price:"+tostring(close)+"\Stop:"+tostring(SL),alert.freq_once_per_bar_close)
    //label.new(bar_index,low,text = "Long\nTP:"+tostring(TP)+"\nSL:"+tostring(SL)+"\nAbierto:"+tostring(current), yloc = yloc.belowbar, textcolor = color.white, color = color.green, size = size.small,  style = label.style_label_up)

if shortCondition
    short := true
    long := false
    drawing := true
    TP := shortProfit
    middle := current
    SL := shortStop
    initial := barInitial
    strategy.entry("Short", strategy.short, 10)
    strategy.exit("Short exit","Short",limit = TP , stop = SL)
    alert("Short signal Supertrend \n Profit:"+tostring(TP)+"\Curret price:"+tostring(close)+"\Stop:"+tostring(SL),alert.freq_once_per_bar_close)
    //label.new(bar_index,high,text = "Short\nTP:"+tostring(TP)+"\nSL:"+tostring(SL)+"\nAbierto:"+tostring(current), yloc = yloc.abovebar, textcolor = color.white, color = color.red, size = size.small,  style = label.style_label_down)

if long and (high[1] >= TP or low[1] <= SL)
    drawing := false
    long := false
    if high[1] >= TP
        label.new(bar_index[int((bar_index - initial)/2)],TP, text = "Win (Long)", textcolor = color.white, color = color.green, size = size.small, style = label.style_label_down)
    else
        label.new(bar_index[int((bar_index - initial)/2)],SL, text = "Lose (Long)", textcolor = color.white, color = color.red, size = size.small, style = label.style_label_up)

if short and (low[1] <= TP or high[1] >= SL)
    drawing :=  false
    short := false
    if low[1] <= TP
        label.new(bar_index[int((bar_index - initial)/2)],TP, text = "Win (short)", textcolor = color.white, color = color.green, size = size.small, style = label.style_label_up)
    else
        label.new(bar_index[int((bar_index - initial)/2)],SL, text = "Lose (short)", textcolor = color.white, color = color.red, size = size.small, style = label.style_label_down)

//STRATEGY
//strategy.entry("buy", strategy.long, 10, when = longCondition)
//strategy.exit("bracket", "buy",  10, limit = TP, stop = SL)
//strategy.entry("short", strategy.long, 10, when = shortCondition)
//strategy.exit("bracket", "short",  10, limit = TP, stop = SL)

//DRAWING
plotshape(longCondition, title = "Long Signal", location=location.belowbar, style=shape.labelup, color=color.green, textcolor=color.white, size=size.small, text="Long")
plotshape(shortCondition, title = "Short Signal", location=location.abovebar, style=shape.labeldown, color=color.red, textcolor=color.white, size=size.small, text="Short")
profitLine = plot(drawing and drawing[1] ? TP : na, title = "Take profit", color = color.green, style = plot.style_linebr)
currentLine =plot(drawing and drawing[1]  ? middle : na, title = "Middle Line", color = color.white, style = plot.style_linebr)
lossLine = plot(drawing and drawing[1]  ? SL : na, title = "Stop Loss", color = color.red, style = plot.style_linebr)
fill(currentLine,profitLine, title = "Profit Background" ,color = color.new(color.green,75))
fill(currentLine,lossLine, title = "Loss Background" ,color = color.new(color.red,75))
plot(superTrend1, title = "Fast Supertrend", color = dir1 == 1 and dir1[1] == 1 ? color.red : dir1 == -1 and dir1[1] == -1 ? color.green : na)
plot(superTrend2, title = "Medium Supertrend", color = dir2 == 1 and dir2[1] == 1 ? color.red : dir2 == -1 and dir2[1] == -1 ? color.green : na)
plot(superTrend3, title = "Slow Supertrend", color = dir3 == 1 and dir3[1] == 1 ? color.red : dir3 == -1 and dir3[1] == -1 ? color.green : na)
plot(ema, title = "EMA",color = color.yellow)
//plot(k, color = color.blue)
//plot(d, color = color.orange)
//h1 = hline(80)
//h2 = hline(20)
//fill(h1,h2, color = color.new(color.purple,60))




مزید