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


تخلیق کی تاریخ: 2023-12-27 17:39:40 آخر میں ترمیم کریں: 2023-12-27 17:39:40
کاپی: 0 کلکس کی تعداد: 684
1
پر توجہ دیں
1623
پیروکار

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

جائزہ

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

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

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

  1. ٹائم سیڑھی میں اضافہ

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

  1. انفرادی سٹاپ نقصان

اسٹاک کھولنے کے ہر آرڈر کے لئے متعلقہ اسٹاپ سیٹ کریںtakeProfitاور سٹاپ نقصانstopLossہر آرڈر کے لئے ایک علیحدہ اسٹاپ اسٹاپ لاجسٹک ہے ، جس کی وجہ سے اسٹاپ اسٹاپ لاجسٹک کو تقسیم کیا جاسکتا ہے۔

  1. ٹائم فریم کے اختتام پر

اس دن کے ٹریڈنگ کی مدت کے اختتام پر ، آپ منتخب کرسکتے ہیں کہ آیا اس مدت کے دوران تمام غیر اسٹاپ نقصان والے آرڈرز پر کوئی جگہ خالی کی جائے یا نہیں۔

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

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

  1. خطرے کو تقسیم کریں ، فنڈ پول میں فنڈز وغیرہ کو مختلف احکامات میں تقسیم کریں ، تاکہ ایک ہی آرڈر کے نقصان کو مؤثر طریقے سے کنٹرول کیا جاسکے۔

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

  3. لچکدار ترتیب ، اپنی مرضی کے مطابق پیرامیٹرز جیسے زیادہ سے زیادہ پوزیشنوں کی تعداد ، روزانہ تجارت کا وقت ، اسٹاپ نقصان کا تناسب وغیرہ۔

  4. اس کی حکمت عملی سادہ اور واضح ہے۔

اسٹریٹجک رسک

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

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

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

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

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

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

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

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

  3. مختلف احکامات کے لئے مختلف اسٹاپ نقصان کا تناسب ترتیب دیں ، تاکہ فرق اسٹاپ نقصان کو حاصل کیا جاسکے۔

  4. آرڈرز کی تعداد کو فنڈ پول کے بیلنس کے ساتھ منسلک کرنے کی منطق میں اضافہ کریں ، تاکہ آرڈرز کی تعداد دستیاب فنڈز سے منسلک ہو۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*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)