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


تخلیق کی تاریخ: 2024-01-08 16:29:21 آخر میں ترمیم کریں: 2024-01-08 16:29:21
کاپی: 0 کلکس کی تعداد: 716
1
پر توجہ دیں
1617
پیروکار

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

جائزہ

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

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

اس حکمت عملی میں لمبائی 6 کا RMA ایک تیز رفتار اوسط کے طور پر اور لمبائی 4 کا HMA ایک سست رفتار اوسط کے طور پر استعمال کیا جاتا ہے۔ حکمت عملی قیمتوں کے رجحانات کا تعین کرتی ہے اور تیز رفتار اور سست رفتار لائنوں کے کراس کے ذریعے تجارتی سگنل پیدا کرتی ہے۔

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

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

اسٹریٹجک فوائد

اس حکمت عملی کے فوائد یہ ہیں:

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

خطرات اور حل

اس حکمت عملی کے کچھ خطرات بھی ہیں:

  1. ڈبل اور یکساں حکمت عملی کی صورت حال میں ایک چھوٹا سا منافع پیدا کرنے کے لئے آسان ہے لیکن ایک بڑا نقصان ہوتا ہے۔ اس کا حل یہ ہے کہ اسٹاپ اسٹاپ نقصان کی سطح کو مناسب طریقے سے ایڈجسٹ کیا جائے۔

  2. زلزلے کے حالات میں ٹریڈنگ سگنل اکثر ہوتے ہیں ، جس سے زیادہ تجارت ہوسکتی ہے۔ اس کا حل یہ ہے کہ ٹریڈنگ کے شرائط کو مناسب طریقے سے نرمی دی جائے اور ٹرانزیکشنز کو کم کیا جائے۔

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

  4. حکمت عملی رجحان سازی کے حالات میں خراب کارکردگی کا مظاہرہ کرتی ہے۔ اس کا حل رجحان سازی کے فیصلے کے ماڈیول کو شامل کرنا یا رجحان سازی کی حکمت عملی کے ساتھ مل کر استعمال کرنا ہے۔

اصلاح کی سمت

اس حکمت عملی کو مزید بہتر بنانے کے لیے مندرجہ ذیل نکات پر توجہ دی جا سکتی ہے:

  1. میڈین لائن کے اشارے کو اپ ڈیٹ کریں ، Kalman اور اسی طرح کے انکولی فلٹرز کا استعمال کریں۔

  2. مشین لرننگ ماڈیولز کو شامل کریں تاکہ اے آئی کو خرید و فروخت کے لئے تربیت دی جاسکے۔

  3. فنڈ مینجمنٹ ماڈیول شامل کریں تاکہ خطرے کا کنٹرول زیادہ خودکار ہو۔

  4. اعلی تعدد عوامل کے ساتھ مل کر، مضبوط ٹریڈنگ سگنل تلاش کریں.

  5. کثیر اقسام کی کراس مارکیٹ اربیٹ۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-07 00:00:00
period: 3m
basePeriod: 1m
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/
// © dc_analytics
// https://datacryptoanalytics.com/


//@version=5
strategy("Scalping Trading", overlay=true)

//  INPUTS  //
bar_color       = input(true, title='Bar Color', group='⚙ Settings',tooltip='Color chart bars.', inline = "1")
mostrar         = input(true, 'Show Alerts', group='⚙ Settings', inline = "1")
tempo           = input.timeframe('60', group='⚙ Settings', title='🕗 Timeframe', options=['1', '5', '15', '30', '60', '120', '240', '360', '720', 'D', 'W'])

i_position      = input.string("Bottom Center", title = "⚙ D-Panel Location", 
 options = ["Top Right", "Bottom Center", "Bottom Right"], group='⚙ D-Panel Settings️',
 tooltip='Choose the location of the information table on the chart.(D-Panel) ')

position        = i_position == "Top Right" ? position.top_right : i_position == "Bottom Center" ? position.bottom_center : position.bottom_right

i_tam           = input.string('Big', title = '⚙ D-Painel Size', 
 options = ["Tiny", "Small", "Big"], group='⚙ D-Panel Settings️',tooltip='Choose the size of the information panel (D-Panel).')

tamanho         = i_tam == "Tiny" ? size.tiny : i_tam == "Small" ? size.small : size.normal

show_tp_sl      = input(true, title='Show Take Profit/Stop Loss', group='⚙ Settings',tooltip='Show Take Profit/Stop Loss.')
TP              = input.float(defval=4500, title='Take Profit:',group='⚙ Risk Management',tooltip='Choose amount of profit')
SL              = input.float(defval=2500, title='Stop Loss:', group='⚙ Risk Management',tooltip='Choose amount of loss') 
//  END INPUTS  //


//  DECLARATIONS  //
t_up    = '📈'
t_down  = '📉'

c_buy   = 'Long ⇡'
c_sell  = 'Short ⇣'

// _DECLARATION TREND
t_sma       = ta.hma(close, 200)
tend_sma    = ta.sma(close, 12)

tendencia   = request.security(syminfo.tickerid, timeframe.period, t_sma, barmerge.gaps_off, barmerge.lookahead_off)
tend_tabela = request.security(syminfo.tickerid, timeframe.period, tend_sma, barmerge.gaps_off, barmerge.lookahead_off)
// _END DECLARATION TREND

circle = plot.style_circles
//  END DECLARATIONS  //


//  COLORS  //
color gray   = color.gray
color red    = color.new(#ff8c05, 0)
color orange = color.new(#ff8c05, 0)
color silver = color.silver
color up_vol = color.new(color.green, 0)
color dn_vol = color.new(color.purple, 0)

color orange_tranp  = color.new(#ff8c05, 95)
// END COLORS //

//  SCANNER MARKET MAKERS  //
periodo  = input.int(20, 'Period Volume', group='⚙️ Scanner Market Makers Settings')
fator    = input.float(1.85, 'Proportion to the mean: (1.25 = 125% of the mean)', minval=0, group='⚙️ Scanner Market Makers Settings')
vol_up   = close > open
vol_down = open > close
vol      = volume
pesado   = volume > ta.ema(volume, periodo) * fator

palette  = pesado and vol_up ? gray : pesado and vol_down ? orange : vol_up ? silver : gray
//  END SCANNER MARKET MAKERS  //


//  LOGIC ONE  //
s = ta.rma(close, 6)
v = ta.hma(close, 4)

//  TREND  
t_baixa     = tendencia > tendencia[1]
t_alta      = tendencia < tendencia[1]

te_d        = tend_tabela > tend_tabela[1]
trend       = te_d ? t_up : t_down
//  END TREND  

a = request.security(syminfo.tickerid, tempo, s)
b = request.security(syminfo.tickerid, tempo, ohlc4)

c_dn   = a > b and a[1] < b[1]
c_up   = b > a and b[1] < a[1]

compra = mostrar and c_up ? a : na
venda  = mostrar and c_dn ? a : na

s_sell = venda and t_alta
s_buy  = compra and t_baixa
c_vela = b > a and te_d ? gray : orange

s_up = false
s_dw = false

b_sinal = not s_up and s_buy
s_sinal = not s_dw and s_sell

if b_sinal
    s_dw := false
    s_up := true
    s_up

if s_sinal
    s_dw := true
    s_up := false
    s_up

// END LOGIC ONE //


//  DATA TABLE  //
c = b > a ? orange : gray 
c_sinal = b > a ? c_buy : c_sell
//  END DATA TABLE  //


//  PLOT/BARCOLOR  //
c_barcolor = pesado and vol_up ? up_vol : pesado and vol_down ? dn_vol : vol_up ? c : c

barcolor(bar_color ? c_barcolor : na)
plot(a, color=orange_tranp, style=circle)
//  END PLOT/BARCOLOR  //


//  TABLE  //
var dash = table.new(position=position, columns=2, rows=3, border_width=1)
if barstate.islast
    table.cell(table_id=dash, column=1, row=2, text='Scalping DCA', bgcolor=orange)
    table.cell(table_id=dash, column=1, row=0, text='Trade: ' + c_sinal)
    table.cell(table_id=dash, column=1, row=1, text='Trend: ' + trend)
//  END TABLE  //


//  SETTINGS STRATEGY  //
exitPrice = strategy.closedtrades.exit_price(strategy.closedtrades - 1)

// OPEN ORDER
if (b_sinal)
    strategy.order("Long", strategy.long , comment = "Entry: " + str.tostring(close, "#.####"))
//    strategy.exit("EXIT", trail_points = 1000, trail_offset = 0, comment_trailing = "Close with Profit: " + str.tostring(close, "#.####"))
//    strategy.entry("long", strategy.long)

if (s_sinal)
    strategy.order("Short", strategy.short , comment = "Entry: " + str.tostring(close, "#.####"))
//    strategy.exit("EXIT", trail_points = 1000, trail_offset = 0, comment_trailing = "Close with Profit: " + str.tostring(close, "#.####"))
//    strategy.entry("short", strategy.short)

//  TP/SL ORDERS
if strategy.position_size > 0
    strategy.exit('Long_Close', 'Long',profit = TP , loss=SL, qty_percent=100, comment_profit = "Profit Long: " + str.tostring(exitPrice, "#.####"), comment_loss = "Stop Long: " + str.tostring(exitPrice, "#.####"))
//if  strategy.position_size > 0
//    strategy.exit("Long", "Long", stop = longSL, limit = longTP, comment_profit = "Profit Long: " + str.tostring(exitPrice, "#.####"), comment_loss = "Stop Long: " + str.tostring(exitPrice, "#.####"))
    
if strategy.position_size < 0
    strategy.exit('Short_Close', 'Short',profit = TP, loss=SL, qty_percent=100, comment_profit = "Profit Short: " + str.tostring(exitPrice, "#.####"), comment_loss = "Stop Short: " + str.tostring(exitPrice, "#.####"))
//if strategy.position_size < 0
//    strategy.exit("Short", "Short", stop = shortSL, limit = shortTP, comment_profit = "Profit Short: "+ str.tostring(exitPrice, "#.####"), comment_loss = "Stop Short: " + str.tostring(exitPrice, "#.####")) 

//  END SETTINGS STRATEGY  //

// LOGS 
// if strategy.opentrades > 10
//     log.warning("{0} positions opened in the same direction in a row. Try adjusting `bracketTickSizeInput`", strategy.opentrades)

// last10Perc = strategy.initial_capital / 10 > strategy.equity
// if (last10Perc and not last10Perc[1])
//     log.error("The strategy has lost 90% of the initial capital!")