وسائل لوڈ ہو رہے ہیں... لوڈنگ...

ڈبل چینل کچن - دولت کی ترقی پر توجہ مرکوز کرنے والی الگورتھم ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-10-10 15:25:53
ٹیگز:

جائزہ

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

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

یہ حکمت عملی قیمت کے رجحان کی سمت کا تعین کرنے کے لئے 1 گھنٹے اور 4 گھنٹے کے دونوں ٹائم فریم میں سپر ٹرینڈ اشارے کا استعمال کرتی ہے۔ جب دونوں ٹائم فریموں میں سپر ٹرینڈز ایک ہی سمت کی طرف اشارہ کرتے ہیں تو ، اس سے قیمت کا نسبتا strong مضبوط رجحان ظاہر ہوتا ہے۔

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

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

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

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

  • متعدد ٹائم فریموں میں اشارے کا استعمال غلط سگنل کو فلٹر کرنے میں مدد کرتا ہے
  • رجحان اور oversold/oversold تجزیہ کے لئے Supertrend اور StochRSI کی طاقت کو یکجا کرتا ہے
  • بیک بیک کی توثیق سے غیر ضروری تجارت سے بچنے کے لئے
  • درمیانی اور طویل مدتی لین دین میں زیادہ تجارت اور سلائپ سے گریز کیا جائے
  • سمجھنے میں آسان دوہری اشارے کی ترتیب، لچکدار پیرامیٹر ٹیوننگ کے ساتھ

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

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

بہتری:

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

بہتری کے شعبے

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

نتیجہ

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


/*backtest
start: 2023-09-09 00:00:00
end: 2023-10-09 00:00:00
period: 4h
basePeriod: 15m
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/
// © Baby_whale_to_moon

//@version=5
strategy('Kitchen [ilovealgotrading]', overlay=true, format=format.price, initial_capital = 1000)

// BACKTEST DATE
Start_Time = input(defval=timestamp('01 January 2017 13:30 +0000'), title='Start_Time', group = " ################# BACKTEST DATE ################ " )
End_Time = input(defval=timestamp('30 April 2024 19:30 +0000'), title='End_Time', group = " ################# BACKTEST DATE ################ " )

// supertrend 
atrPeriod = input(10, 'ATR Length', group = " #################  Supertrend  ################ ")
factor = input(3, 'Factor', group = " #################  Supertrend  ################ ")

time1 = input.string(title='Short Time Period', defval='07 1h', options=['01 1m','02 3m','03 5m',  '04 15m', '05 30m', '06 45m', '07 1h', '08 2h', '09 3h', '10 4h', '11 1D', '12 1W' ], group = " #################  Supertrend  ################ ",tooltip = "this timeframe is the value of our short-time supertrend indicator")
time2 = input.string(title='Long Time Period', defval='10 4h', options=[ '01 1m','02 3m','03 5m', '04 15m', '05 30m', '06 45m', '07 1h', '08 2h', '09 3h', '10 4h', '11 1D', '12 1W' ], group = " #################  Supertrend  ################ ",tooltip = "this timeframe is the value of our long-time supertrend indicator")


res(Resolution) =>
    if Resolution == '00 Current'
        timeframe.period
    else
        if Resolution == '01 1m'
            '1'
        else
            if Resolution == '02 3m'
                '3'
            else
                if Resolution == '03 5m'
                    '5'
                else
                    if Resolution == '04 15m'
                        '15'
                    else
                        if Resolution == '05 30m'
                            '30'
                        else
                            if Resolution == '06 45m'
                                '45'
                            else
                                if Resolution == '07 1h'
                                    '60'
                                else
                                    if Resolution == '08 2h'
                                        '120'
                                    else
                                        if Resolution == '09 3h'
                                            '180'
                                        else
                                            if Resolution == '10 4h'
                                                '240'
                                            else
                                                if Resolution == '11 1D'
                                                    '1D'
                                                else
                                                    if Resolution == '12 1W'
                                                        '1W'
                                                    else
                                                        if Resolution == '13 1M'
                                                            '1M'


// supertrend Long time period 
[supertrend2, direction2] = request.security(syminfo.tickerid, res(time2), ta.supertrend(factor, atrPeriod))
bodyMiddle4 = plot((open + close) / 2, display=display.none)
upTrend2 = plot(direction2 < 0 ? supertrend2 : na, 'Up Trend', color=color.new(color.green, 0), style=plot.style_linebr, linewidth=2)
downTrend2 = plot(direction2 < 0 ? na : supertrend2, 'Down Trend', color=color.new(color.red, 0), style=plot.style_linebr, linewidth=2)

// supertrend short time period 
[supertrend1, direction1] = request.security(syminfo.tickerid, res(time1), ta.supertrend(factor, atrPeriod))
bodyMiddle = plot((open + close) / 2, display=display.none)
upTrend = plot(direction1 < 0 ? supertrend1 : na, 'Up Trend', color=color.new(color.yellow, 0), style=plot.style_linebr)
downTrend = plot(direction1 < 0 ? na : supertrend1, 'Down Trend', color=color.new(color.orange, 0), style=plot.style_linebr)


// Stochastic RSI
low_limit_stoch_rsi = input.float(title = 'Stoch Rsi Low Limit', step=0.5, defval=15, group = " #################  Stoch RSI   ################ ", tooltip = "when Stock rsi value crossover Low Limit value we get Long")
up_limit_stoch_rsi = input.float(title = 'Stoch Rsi Up Limit', step=0.5, defval=85, group = " #################  Stoch RSI   ################ ", tooltip = "when Stock rsi value crossunder Up Limit value we get Short")
stocrsi_back_length = input.int(20, 'Stoch Rsi retroactive length', minval=1, group = " #################  Stoch RSI   ################ ", tooltip = "How many candles are left behind, even if there is a buy or sell signal, it will be valid now")
smoothK = input.int(3, 'Stochastic RSI K', minval=1, group = " #################  Stoch RSI   ################ ")
lengthRSI = input.int(14, 'RSI Length', minval=1, group = " #################  Stoch RSI   ################ ")
lengthStoch = input.int(14, 'Stochastic Length', minval=1, group = " #################  Stoch RSI   ################ ")
src_rsi = input(close, title='RSI Source', group = " #################  Stoch RSI   ################ ")
rsi1 = request.security(syminfo.tickerid, '240', ta.rsi(src_rsi, lengthRSI))
k = request.security(syminfo.tickerid, '240', ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK))

// Strategy settings 
dollar = input.float(title='Dollar Cost Per Position ', defval=20000, group = " #################  Strategy Settings  ################ ")
trade_direction = input.string(title='Trade_direction', group = " #################  Strategy Settings  ################ ", options=['LONG', 'SHORT', 'BOTH'], defval='BOTH')
Long_message_open = input('Long Open', title = "Long Open Message", group = " #################  Strategy Settings  ################ ", tooltip = "if you write your alert window this code {{strategy.order.alert_message}} .When trigger Long signal you will get dynamically what you pasted here for Long Open Message ")
Short_message_open = input('Short Open', title = "Short Open Message", group = " #################  Strategy Settings  ################ ", tooltip = "if you write your alert window this code {{strategy.order.alert_message}} .When trigger Long signal you will get dynamically what you pasted here for Short Open Message ")
Long_message_close = input('Long Close', title = "Long Close Message", group = " #################  Strategy Settings  ################ ", tooltip = "if you write your alert window this code {{strategy.order.alert_message}} .When trigger Long signal you will get dynamically what you pasted here for Long Close Message ")
Short_message_close = input('Short Close', title = "Short Close Message", group = " #################  Strategy Settings  ################ ", tooltip = "if you write your alert window this code {{strategy.order.alert_message}} .When trigger Long signal you will get dynamically what you pasted here for Short Close Message ")

Time_interval = true
bgcolor(Time_interval ? color.rgb(255, 235, 59, 95) : na)

back_long = 0
back_short = 0

for i = 1 to stocrsi_back_length by 1
    if ta.crossover(k, low_limit_stoch_rsi)[i] == true 
        back_long += i
        back_long
    if ta.crossunder(k, up_limit_stoch_rsi)[i] == true 
        back_short += i
        back_short

// bgcolor(back_long>0?color.rgb(153, 246, 164, 54):na)
// bgcolor(back_short>0?color.rgb(246, 153, 153, 54):na)

buy_signal = false
sell_signal = false

if direction2 < 0 and direction1 < 0 and back_long > 0
    buy_signal := true
    buy_signal

if direction2 > 0 and direction1 > 0 and back_short > 0
    sell_signal := true
    sell_signal


//bgcolor(buy_signal  ? color.new(color.lime,90) : na ,title="BUY bgcolor")
plotshape( buy_signal[1] == false and  strategy.opentrades == 0 and Time_interval and buy_signal  ? supertrend2 : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white)

//bgcolor(sell_signal  ? color.new(color.red,90) : na ,title="SELL bgcolor")
plotshape(sell_signal[1] == false and strategy.opentrades == 0 and Time_interval and sell_signal  ? supertrend2 : na , title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white)


// Strategy entries 
if strategy.opentrades == 0 and Time_interval and buy_signal and ( trade_direction == 'LONG' or trade_direction == 'BOTH')
    strategy.entry('Long_Open', strategy.long, qty=dollar / close, alert_message=Long_message_open)

if strategy.opentrades == 0 and Time_interval and sell_signal and ( trade_direction == 'SHORT' or trade_direction == 'BOTH')
    strategy.entry('Short_Open', strategy.short, qty=dollar / close, alert_message=Short_message_open)


// Strategy Close
if close < supertrend1 and strategy.position_size > 0 
    strategy.exit('Long_Close',from_entry = "Long_Open", stop=close, qty_percent=100, alert_message=Long_message_close)

if close > supertrend1 and strategy.position_size < 0 
    strategy.exit('Short_Close',from_entry = "Short_Open", stop=close, qty_percent=100, alert_message=Short_message_close)



مزید