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

مصنف:چاؤ ژانگ، تاریخ: 2023-12-27 17:39:40
ٹیگز:

img

جائزہ

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

اصول

یہ حکمت عملی تین اہم منطقوں پر مبنی ہے:

  1. وقت کے قدموں پر مشتمل اہرام سازی

    استعمال کریںsessionTimeپیرامیٹر روزانہ ٹریڈنگ وقت کی کھڑکی مقرر کرنے کے لئے، اس کھڑکی کے دوران کھلی مارکیٹ میں پیرامیڈ طویل پوزیشنوں کو قدم بہ قدم. پوزیشن کا سائز زیادہ سے زیادہ سرمایہ کی اوسط تفویض ہے.

  2. انفرادی طور پر منافع لینے اور نقصان روکنے کے لئے

    سیٹ کے مطابق منافع لینے کی سطحtakeProfitاور سٹاپ نقصان کی سطحstopLossہر کھولی پوزیشن کے لئے، تاکہ ہر پوزیشن بیچ عملدرآمد کا احساس کرنے کے لئے اس کے اپنے منافع لینے اور نقصان کو روکنے منطق ہے.

  3. وقت ونڈو ختم ہونے پر تمام پوزیشن بند کریں

    منتخب کریں کہ آیا ونڈو کے آخر میں وقت کی ونڈو کے دوران کھولی گئی تمام پوزیشنوں کو بند کرنا ہے۔

فوائد

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

  1. خطرے کی تنوع۔ ایک ہی پوزیشن کے نقصان کو مؤثر طریقے سے کنٹرول کرنے کے لئے مختلف پوزیشنوں میں مساوی طور پر سرمایہ مختص کریں۔

  2. بیچ منافع لینے اور نقصان کو روکنا۔ بڑے پیمانے پر نقصان کو روکنے سے بچنے کے لئے مختلف پوزیشنوں میں آزاد منطق ہوتی ہے۔

  3. لچکدار تشکیلات۔ حسب ضرورت پیرامیٹرز جیسے زیادہ سے زیادہ پرامڈائزنگ اوقات ، روزانہ وقت کی ونڈو ، منافع لینے / نقصان کو روکنے کے تناسب وغیرہ۔

  4. سادہ اور واضح منطق۔ سمجھنے میں آسان۔

خطرات

کچھ خطرات بھی ہیں:

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

  2. ایک دن میں کل کھلی پوزیشن کیپٹل کی کوئی حد نہیں۔ غیر معمولی مارکیٹ کے حالات کا سامنا کرنے پر بہت ساری پوزیشنز کیپٹل برداشت سے تجاوز کر سکتی ہیں۔ ایک دن میں زیادہ سے زیادہ کل پوزیشن کیپٹل شامل کرنے پر غور کریں۔

  3. غلط ٹائم ونڈو کی تشکیل سے ٹریڈنگ کے مواقع ضائع ہوسکتے ہیں۔ تجویز ہے کہ ٹریڈنگ اثاثوں کی فعال ٹریڈنگ ٹائم ونڈو کا حوالہ دیں۔

بہتری

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

  1. تکنیکی اشارے کی بنیاد پر کھلی پوزیشن کے حالات شامل کریں تاکہ محتاط pyramiding سے بچنے کے لئے.

  2. سرمایہ کی برداشت سے تجاوز کرنے سے بچنے کے لئے روزانہ کل کھلی پوزیشن کیپٹل کی حد شامل کریں۔

  3. مختلف پوزیشنوں کے لئے مختلف منافع لینے / نقصان کو روکنے کے لئے مختلف تناسب مقرر کریں تاکہ منافع لینے اور نقصان کو روکنے کے لئے مختلف فائدہ حاصل کریں.

  4. سرمایہ پول بیلنس کے ساتھ پوزیشن کی رقم کو منسلک کرنے کے لئے منطق شامل کریں.

نتیجہ

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


/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 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/
// © A3Sh

//@version=5
strategy("Simple_Pyramiding", overlay=true, pyramiding=99, initial_capital=500, default_qty_type=strategy.percent_of_equity, commission_type=strategy.commission.percent, commission_value=0.075, close_entries_rule='FIFO')

// Study of a Simple DCA strategy that opens a position every day at a specified time.
// A position is opened at the start time of the Timeframe.
// Positions exit individually when the take profit level is triggered.
// Option to activate Stop Loss and/or Position exit at the end of the Timeframe


// Backtest Window
start_time   = input(defval=timestamp("01 April 2021 20:00"), group = "Backtest Window", title="Start Time")
end_time     = input(defval=timestamp("01 Aug 2022 20:00"),  group = "Backtest Window", title="End Time")
window() => true


// Inputs
posCount     = input.int    (6,           group = "Risk",         title = "Max Amount of DCA Entries")
takeProfit   = input.float  (2.5,         group = "Risk",         title = "Take Profit %")
slSwitch     = input.bool   (true,        group = "Risk",         title = "Activate Stop Loss")
stopLoss     = input.float  (9,           group = "Risk",         title = "Stop Loss %")
sessionTime =  input("1800-1700", group = "DCA Settings", title = "DCA Order Timeframe", tooltip="Open order at the start/If ativated, close order at the end")
exitDCA     =  input.bool   (false,       group = "DCA Settings", title = "Exit DCA Entry at end of Timeframe")


// Order size based on max amount of pyramid orders
q = (strategy.equity  / posCount) / open


// Timeframe for opening and closing a DCA order
// example taken from https://stackoverflow.com/questions/69230164/pinescript-basic-question-open-a-trade-at-a-set-time-each-day
t       = time("D", sessionTime)
isStart = na(t[1]) and not na(t) or t[1] < t
isEnd   = na(t) and not na(t[1]) or t[1] < t
bgcolor(t ? color.new(color.blue,95) : na, title = " TimeFrame Color")


// Create DCA Entries
entry_price = 0.0
if isStart and window() 
    for i = 0 to strategy.opentrades
        if strategy.opentrades == i
            entry_price := close
            entry_id = "PE_" + str.tostring(i + 1) 
            strategy.entry(id = entry_id, direction=strategy.long, limit=entry_price, qty=q)
        if strategy.opentrades == posCount
            break
            
 
//Exit DCA Entries when take profit or stop loss is triggered
if strategy.opentrades > 0 and window() 
    for i = 0 to strategy.opentrades 
        exit_from = "PE_" + str.tostring(i + 1)
        exit_id = "Exit_" + str.tostring(i + 1)
        strategy.exit(id= exit_id, from_entry= exit_from, profit = close * takeProfit / 100 / syminfo.mintick, loss = slSwitch ? close * stopLoss /100 / syminfo.mintick :na)
        

//Exit DCA Entries at end of DCA Timeframe
if strategy.opentrades > 0 and exitDCA and isEnd and window() 
    for i = 0 to strategy.opentrades 
        exit_from = "PE_" + str.tostring(i + 1)
        exit_id = "Exit_" + str.tostring(i + 1)
        strategy.exit(id= exit_id, from_entry= exit_from, stop = close)




مزید