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


تخلیق کی تاریخ: 2023-12-20 13:55:15 آخر میں ترمیم کریں: 2023-12-20 13:55:15
کاپی: 1 کلکس کی تعداد: 1097
1
پر توجہ دیں
1621
پیروکار

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

جائزہ

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

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

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

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

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

اسٹریٹجک رسک

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

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

اصلاح کی سمت

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

اس سے حکمت عملی کو مزید بہتر بنانے میں مدد ملتی ہے ، جس سے اس کو زیادہ متحرک اور مقامی طور پر تقویت ملتی ہے۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 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/
// © Seungdori_

//@version=5
strategy("Grid Strategy with MA", overlay=true, initial_capital = 100000, default_qty_type = strategy.cash, default_qty_value = 10000, pyramiding = 10, process_orders_on_close = true, commission_type = strategy.commission.percent, commission_value = 0.04)


//Inputs//

length = input.int(defval = 100, title = 'MA Length', group = 'MA')
MA_Type = input.string("SMA", title="MA Type", options=['EMA', 'HMA', 'LSMA', 'RMA', 'SMA', 'WMA'],group = 'MA')

logic = input.string(defval='ATR', title ='Grid Logic', options = ['ATR', 'Percent'])

band_mult = input.float(2.5, step = 0.1, title = 'Band Multiplier/Percent', group = 'Parameter')
atr_len = input.int(defval=100, title = 'ATR Length', group ='parameter')
//Var//

var int order_cond = 0
var bool order_1 = false
var bool order_2 = false
var bool order_3 = false
var bool order_4 = false
var bool order_5 = false
var bool order_6 = false
var bool order_7 = false
var bool order_8 = false
var bool order_9 = false
var bool order_10 = false
var bool order_11 = false
var bool order_12 = false
var bool order_13 = false
var bool order_14 = false
var bool order_15 = false


/////////////////////
//Region : Function//
/////////////////////
getMA(source ,ma_type, length) =>
    maPrice = ta.ema(source, length)
    ema = ta.ema(source, length)
    sma = ta.sma(source, length)
    if ma_type == 'SMA'
        maPrice := ta.sma(source, length)
        maPrice
    if ma_type == 'HMA'
        maPrice := ta.hma(source, length)
        maPrice
    if ma_type == 'WMA'
        maPrice := ta.wma(source, length)
        maPrice
    if ma_type == "RMA"
        maPrice := ta.rma(source, length)
    if ma_type == "LSMA"
        maPrice := ta.linreg(source, length, 0)
    maPrice

main_plot = getMA(ohlc4, MA_Type, length)


atr = ta.atr(length)

premium_zone_1 = logic == 'ATR' ? ta.ema(main_plot + atr*(band_mult*1), 5) : ta.ema((main_plot*(1+band_mult*0.01*1)), 5)
premium_zone_2 = logic == 'ATR' ? ta.ema(main_plot + atr*(band_mult*2), 5) : ta.ema((main_plot*(1+band_mult*0.01*2)), 5)
premium_zone_3 = logic == 'ATR' ? ta.ema(main_plot + atr*(band_mult*3), 5) : ta.ema((main_plot*(1+band_mult*0.01*3)), 5)
premium_zone_4 = logic == 'ATR' ? ta.ema(main_plot + atr*(band_mult*4), 5) : ta.ema((main_plot*(1+band_mult*0.01*4)), 5)
premium_zone_5 = logic == 'ATR' ? ta.ema(main_plot + atr*(band_mult*5), 5) : ta.ema((main_plot*(1+band_mult*0.01*5)), 5)
premium_zone_6 = logic == 'ATR' ? ta.ema(main_plot + atr*(band_mult*6), 5) : ta.ema((main_plot*(1+band_mult*0.01*6)), 5)
premium_zone_7 = logic == 'ATR' ? ta.ema(main_plot + atr*(band_mult*7), 5) : ta.ema((main_plot*(1+band_mult*0.01*7)), 5)
premium_zone_8 = logic == 'ATR' ? ta.ema(main_plot + atr*(band_mult*8), 5) : ta.ema((main_plot*(1+band_mult*0.01*8)), 5)
//premium_zone_9 = ta.rma(main_plot + atr*(band_mult*9), 5)
//premium_zone_10 = ta.rma(main_plot + atr*(band_mult*10), 5)


discount_zone_1 = logic == 'ATR' ? ta.ema(main_plot - atr*(band_mult*1), 5) : ta.ema((main_plot*(1-band_mult*0.01*1)), 5)
discount_zone_2 = logic == 'ATR' ? ta.ema(main_plot - atr*(band_mult*2), 5) : ta.ema((main_plot*(1-band_mult*0.01*2)), 5)
discount_zone_3 = logic == 'ATR' ? ta.ema(main_plot - atr*(band_mult*3), 5) : ta.ema((main_plot*(1-band_mult*0.01*3)), 5)
discount_zone_4 = logic == 'ATR' ? ta.ema(main_plot - atr*(band_mult*4), 5) : ta.ema((main_plot*(1-band_mult*0.01*4)), 5)
discount_zone_5 = logic == 'ATR' ? ta.ema(main_plot - atr*(band_mult*5), 5) : ta.ema((main_plot*(1-band_mult*0.01*5)), 5)
discount_zone_6 = logic == 'ATR' ? ta.ema(main_plot - atr*(band_mult*6), 5) : ta.ema((main_plot*(1-band_mult*0.01*6)), 5)
discount_zone_7 = logic == 'ATR' ? ta.ema(main_plot - atr*(band_mult*7), 5) : ta.ema((main_plot*(1-band_mult*0.01*7)), 5)
discount_zone_8 = logic == 'ATR' ? ta.ema(main_plot - atr*(band_mult*8), 5) : ta.ema((main_plot*(1-band_mult*0.01*8)), 5)
//discount_zon_9 = ta.sma(main_plot - atr*(band_mult*9), 5)
//discount_zone_10 =ta.sma( main_plot - atr*(band_mult*10), 5)

//Region End//

////////////////////
// Region : Plots//
///////////////////

dis_low1 = plot(discount_zone_1, color=color.new(color.green, 80))
dis_low2 = plot(discount_zone_2, color=color.new(color.green, 70))
dis_low3 = plot(discount_zone_3, color=color.new(color.green, 60))
dis_low4 = plot(discount_zone_4, color=color.new(color.green, 50))
dis_low5 = plot(discount_zone_5, color=color.new(color.green, 40))
dis_low6 = plot(discount_zone_6, color=color.new(color.green, 30))
dis_low7 = plot(discount_zone_7, color=color.new(color.green, 20))
dis_low8 = plot(discount_zone_8, color=color.new(color.green, 10))
//dis_low9 = plot(discount_zone_9, color=color.new(color.green, 0))
//dis_low10 = plot(discount_zone_10, color=color.new(color.green, 0))

plot(main_plot, color =color.new(color.gray, 10))

pre_up1 = plot(premium_zone_1, color=color.new(color.red, 80))
pre_up2 = plot(premium_zone_2, color=color.new(color.red, 70))
pre_up3 = plot(premium_zone_3, color=color.new(color.red, 60))
pre_up4 = plot(premium_zone_4, color=color.new(color.red, 50))
pre_up5 = plot(premium_zone_5, color=color.new(color.red, 40))
pre_up6 = plot(premium_zone_6, color=color.new(color.red, 30))
pre_up7 = plot(premium_zone_7, color=color.new(color.red, 20))
pre_up8 = plot(premium_zone_8, color=color.new(color.red, 10))
//pre_up9 = plot(premium_zone_9, color=color.new(color.red, 0))
//pre_up10 = plot(premium_zone_10, color=color.new(color.red, 0))

fill(dis_low1, dis_low2, color=color.new(color.green, 95))
fill(dis_low2, dis_low3, color=color.new(color.green, 90))
fill(dis_low3, dis_low4, color=color.new(color.green, 85))
fill(dis_low4, dis_low5, color=color.new(color.green, 80))
fill(dis_low5, dis_low6, color=color.new(color.green, 75))
fill(dis_low6, dis_low7, color=color.new(color.green, 70))
fill(dis_low7, dis_low8, color=color.new(color.green, 65))
//fill(dis_low8, dis_low9, color=color.new(color.green, 60))
//fill(dis_low9, dis_low10, color=color.new(color.green, 55))

fill(pre_up1, pre_up2, color=color.new(color.red, 95))
fill(pre_up2, pre_up3, color=color.new(color.red, 90))
fill(pre_up3, pre_up4, color=color.new(color.red, 85))
fill(pre_up4, pre_up5, color=color.new(color.red, 80))
fill(pre_up5, pre_up6, color=color.new(color.red, 75))
fill(pre_up6, pre_up7, color=color.new(color.red, 70))
fill(pre_up7, pre_up8, color=color.new(color.red, 65))
//fill(pre_up8, pre_up9, color=color.new(color.red, 60))
//fill(pre_up9, pre_up10, color=color.new(color.red, 55))



//Region End//

///////////////////////
//Region : Strategies//
///////////////////////

//Longs//

longCondition1 = ta.crossunder(low, discount_zone_7)
longCondition2 = ta.crossunder(low, discount_zone_6)
longCondition3 = ta.crossunder(low, discount_zone_5)
longCondition4 = ta.crossunder(low, discount_zone_4)
longCondition5 = ta.crossunder(low, discount_zone_3)
longCondition6 = ta.crossunder(low, discount_zone_2)
longCondition7 = ta.crossunder(low, discount_zone_1)
longCondition8 = ta.crossunder(low, main_plot)
longCondition9 = ta.crossunder(low, premium_zone_1)
longCondition10 = ta.crossunder(low, premium_zone_2)
longCondition11 = ta.crossunder(low, premium_zone_3)
longCondition12 = ta.crossunder(low, premium_zone_4)
longCondition13 = ta.crossunder(low, premium_zone_5)
longCondition14 = ta.crossunder(low, premium_zone_6)
longCondition15 = ta.crossunder(low, premium_zone_7)

if (longCondition1) and order_1 == false
    strategy.entry("Long1", strategy.long)
    order_1 := true
if (longCondition2) and order_2 == false
    strategy.entry("Long2", strategy.long)
    order_2 := true
if (longCondition3) and order_3 == false
    strategy.entry("Long3", strategy.long)
    order_3 := true
if (longCondition4) and order_4 == false
    strategy.entry("Long4", strategy.long)
    order_4 := true
if (longCondition5) and order_5 == false
    strategy.entry("Long5", strategy.long)
    order_5 := true
if (longCondition6) and order_6 == false
    strategy.entry("Long6", strategy.long)
    order_6 := true
if (longCondition7) and order_7 == false
    strategy.entry("Long7", strategy.long)
    order_7 := true
if (longCondition8) and order_8 == false
    strategy.entry("Long8", strategy.long)
    order_8 := true
if (longCondition9) and order_9 == false
    strategy.entry("Long9", strategy.long)
    order_9 := true
if (longCondition10) and order_10 == false
    strategy.entry("Long10", strategy.long)
    order_10 := true
if (longCondition11) and order_11 == false
    strategy.entry("Long11", strategy.long)
    order_11 := true
if (longCondition12) and order_12 == false
    strategy.entry("Long12", strategy.long)
    order_12 := true
if (longCondition13) and order_13 == false
    strategy.entry("Long13", strategy.long)
    order_13 := true
if (longCondition14) and order_14 == false
    strategy.entry("Long14", strategy.long)
    order_14 := true
if (longCondition15) and order_15 == false
    strategy.entry("Long14", strategy.long)
    order_15 := true

//Close//

shortCondition1 = ta.crossover(high, discount_zone_6)
shortCondition2 = ta.crossover(high, discount_zone_5)
shortCondition3 = ta.crossover(high, discount_zone_4)
shortCondition4 = ta.crossover(high, discount_zone_3)
shortCondition5 = ta.crossover(high, discount_zone_2)
shortCondition6 = ta.crossover(high, discount_zone_1)
shortCondition7 = ta.crossover(high, main_plot)
shortCondition8 = ta.crossover(high, premium_zone_1)
shortCondition9 = ta.crossover(high, premium_zone_2)
shortCondition10 = ta.crossover(high, premium_zone_3)
shortCondition11 = ta.crossover(high, premium_zone_4)
shortCondition12 = ta.crossover(high, premium_zone_5)
shortCondition13 = ta.crossover(high, premium_zone_6)
shortCondition14 = ta.crossover(high, premium_zone_7)
shortCondition15 = ta.crossover(high, premium_zone_8)

if (shortCondition1) and order_1 == true
    strategy.close("Long1")
    order_1 := false
if (shortCondition2) and order_2 == true
    strategy.close("Long2")
    order_2 := false
if (shortCondition3) and order_3 == true
    strategy.close("Long3")
    order_3 := false
if (shortCondition4) and order_4 == true
    strategy.close("Long4")
    order_4 := false
if (shortCondition5) and order_5 == true
    strategy.close("Long5")
    order_5 := false
if (shortCondition6) and order_6 == true
    strategy.close("Long6")
    order_6 := false
if (shortCondition7) and order_7 == true
    strategy.close("Long7")
    order_7 := false
if (shortCondition8) and order_8 == true
    strategy.close("Long8")
    order_8 := false
if (shortCondition9) and order_9 == true
    strategy.close("Long9")
    order_9 := false
if (shortCondition10) and order_10 == true
    strategy.close("Long10")
    order_10 := false
if (shortCondition11) and order_11 == true
    strategy.close("Long11")
    order_11 := false
if (shortCondition12) and order_12 == true
    strategy.close("Long12")
    order_12 := false
if (shortCondition13) and order_13 == true
    strategy.close("Long13")
    order_13 := false
if (shortCondition14) and order_14 == true
    strategy.close("Long14")
    order_14 := false
if (shortCondition15) and order_15 == true
    strategy.close("Long15")
    order_15 := false