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

متحرک پوزیشن بلڈنگ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-02-20 14:16:30
ٹیگز:

img

جائزہ

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

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

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

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

فوائد کا تجزیہ

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

  1. یہ پوزیشن میں متحرک طور پر پیمانہ کرسکتا ہے، خطرات کو کنٹرول کرنے کے لئے ڈپ پر مختص کرنے اور ریلیوں پر مختص کرنے میں کمی.

  2. اس میں اوسطاً کم لاگ ان قیمت ہوتی ہے، جس سے زیادہ منافع ملتا ہے۔

  3. یہ بہتر خطرہ انعام تناسب کے لئے اتار چڑھاؤ کے ساتھ مختلف بیل مارکیٹوں کو فٹ بیٹھتا ہے۔

  4. یہ پوزیشن سائزنگ کے خطرے کو کنٹرول کرنے کے لئے ابتدائی سرمایہ اور ڈی سی اے فیصد کو پہلے سے مقرر کرنے کی اجازت دیتا ہے۔

  5. اس میں داخلے کے معیار کا واضح اندازہ لگانے کے لئے اوسط اندراج کی قیمت اور درمیانی قیمت کے اعدادوشمار فراہم کیے گئے ہیں۔

خطرے کا تجزیہ

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

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

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

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

اصلاح کی ہدایات

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

  1. سٹاپ نقصان منطق شامل کریں بھاری فروخت میں پیمانے پر روکنے کے لئے.

  2. ڈینامک طور پر ڈینامک ڈینامک ڈینامک ڈینامک ڈینامک ڈینامک ڈینامک ڈینامک ڈینامک ڈینامک ڈینامک ڈینامک ڈینامک

  3. قیمتوں کی پیشن گوئی اور پیمانے کے فیصلوں کی رہنمائی کے لئے مشین لرننگ ماڈل شامل کریں۔

  4. دوسرے اشارے کو یکجا کریں تاکہ مارکیٹ کی ساخت کی تبدیلیوں کو باہر نکلنے والے پوائنٹس کی پیمائش کے لئے شناخت کیا جا سکے.

  5. اکاؤنٹ کی قیمتوں کی بنیاد پر متحرک طور پر سائز کے احکامات کے لئے سرمایہ کاری کے انتظام کے قواعد شامل کریں.

نتیجہ

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


/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © RWCS_LTD

//@version=5
strategy("DCA IN Calculator {RWCS}", overlay=true, pyramiding=999, default_qty_type=strategy.cash, initial_capital=10000, commission_value=0.02)

// User inputs
backtestStartDate = input(timestamp("1 Jan 2024"), 
     title="Start Date", group="Backtest Time Period",
     tooltip="This start date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")
start_date = true
starting_capital = input.float(defval=5000, title="Starting Capital")
dca_allocation_percentage = input.int(defval=10, title="DCA Allocation Percentage")

// Calculate DCA allocation based on price change
price_change_percentage = ((close - close[1]) / close[1]) * 100
adjusted_allocation_percentage = close > close[1] ? dca_allocation_percentage - price_change_percentage : dca_allocation_percentage + price_change_percentage // If price action is negative, increase allocations
adjusted_allocation_percentage1 = dca_allocation_percentage - price_change_percentage // If price action is positive, reduce allocations

// Calculate order size based on adjusted allocation percentage
order_size = (adjusted_allocation_percentage / 100) * starting_capital

// Track remaining capital
var remaining_capital = starting_capital

// Long on the close of every bar
if true
    // Ensure the order size doesn't exceed remaining capital or adjusted allocation
    order_size := math.min(order_size, remaining_capital, adjusted_allocation_percentage / 100 * starting_capital)
    // Ensure order size is not negative
    order_size := math.max(order_size, 0)
    
    strategy.entry("DCA", strategy.long, qty = order_size)
    remaining_capital := remaining_capital - order_size

// Plot average entry price
var float total_entry_price = 0.0
var int total_signals = 0

if start_date
    total_entry_price := total_entry_price + close
    total_signals := total_signals + 1

avg_entry_price = total_entry_price / total_signals

// Calculate and plot median price
var float median_price = na

if start_date
    var float sum_prices = 0.0
    var int num_prices = 0
    
    for i = 0 to bar_index
        if (time[i] >= backtestStartDate)
            sum_prices := sum_prices + close[i]
            num_prices := num_prices + 1
    
    median_price := sum_prices / num_prices

// Reset variables at the start of each day
if (dayofweek != dayofweek[1])
    total_entry_price := 0.0
    total_signals := 0

//table colors
borders_col = color.new(color.black, 90)
top_row_col = color.new(color.gray, 90)
size = input.string(defval='Normal', options=['Tiny', 'Small', 'Normal', 'Large'], title='Table size', inline='design', group='Table Design')
table_size = size == 'Tiny' ? size.tiny : size == 'Small' ? size.small : size == 'Normal' ? size.normal : size == 'Large' ? size.large : na

var tablee = table.new(position=position.top_right, columns=2, rows=3, frame_color=borders_col, frame_width=4, border_color=borders_col, border_width=4)

table.cell(tablee, 0, 0, "Average Entry Price", bgcolor=top_row_col, text_color=color.white, text_size=table_size)
table.cell(tablee, 1, 0, str.tostring(avg_entry_price, '#.##'), text_color=color.white, text_size=table_size)
table.cell(tablee, 0, 1, "Median Price", bgcolor=top_row_col, text_color=color.white, text_size=table_size)
table.cell(tablee, 1, 1, str.tostring(median_price, '#.##'), text_color=color.white, text_size=table_size)
table.cell(tablee, 0, 2, "Remaining Capital", bgcolor=top_row_col, text_color=color.white, text_size=table_size)
table.cell(tablee, 1, 2, str.tostring(remaining_capital, '#.##'), text_color=color.white, text_size=table_size)



مزید