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

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

مصنف:چاؤ ژانگ، تاریخ: 2024-06-21 14:36:35
ٹیگز:اے ٹی آرایس ٹیٹی پی

img

جائزہ

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

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

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

  2. ملٹی اسٹیپ ٹریلنگ ٹیک منافع: یہ حکمت عملی 4 ایڈجسٹ ایبل ٹیک منافع کے اہداف طے کرتی ہے۔ ہر ہدف میں منافع کی اسی فیصد اور پوزیشن بند کرنے کا تناسب ہوتا ہے۔ مثال کے طور پر ، پہلا ہدف 6٪ منافع پر پوزیشن کا 12٪ بند کرسکتا ہے ، دوسرا 12٪ منافع پر 8٪ بند کرسکتا ہے ، اور اسی طرح۔ یہ طریقہ کار منافع کو بتدریج مقفل کرنے کی اجازت دیتا ہے جبکہ پوزیشن کا ایک حصہ مارکیٹ کی مسلسل نقل و حرکت سے فائدہ اٹھانے کے لئے کھلا رہتا ہے۔

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

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

حکمت عملی کے فوائد

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

  2. کم جھوٹے سگنل: دوہری سپر ٹرینڈ اشارے کا استعمال جھوٹے سگنلز کے اثرات کو نمایاں طور پر کم کرتا ہے ، جس سے تجارت کی درستگی اور وشوسنییتا میں اضافہ ہوتا ہے۔

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

  4. آٹومیشن کی اعلی ڈگری: حکمت عملی مکمل طور پر خودکار ہے ، داخلہ سے لے کر منافع اور باہر نکلنے تک ، جذبات اور آپریشنل غلطیوں کے اثرات کو کم سے کم کرنا۔

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

حکمت عملی کے خطرات

  1. پیرامیٹر حساسیت: حکمت عملی کی کارکردگی سپر ٹرینڈ اشارے اور منافع لینے کے پیرامیٹرز کی ترتیبات پر بہت زیادہ منحصر ہے۔ نامناسب پیرامیٹرز سے زیادہ تجارت یا اہم مواقع سے محروم ہوسکتا ہے۔

  2. رجحان پر انحصار: رجحان کی پیروی کرنے والی حکمت عملی کے طور پر ، یہ اکثر متضاد منڈیوں میں داخل اور باہر نکل سکتا ہے ، جس سے غیر ضروری تجارتی اخراجات پیدا ہوتے ہیں۔

  3. اسلیپج کا خطرہ: تیز رفتار مارکیٹوں میں ، کثیر مرحلے کے منافع لینے کے عمل کو اسلیپج سے متاثر کیا جاسکتا ہے ، جس کے نتیجے میں اصل عمل درآمد کی قیمتیں توقعات سے انحراف کرتی ہیں۔

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

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

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

  2. متحرک پیرامیٹر ایڈجسٹمنٹ: مارکیٹ کی تبدیلیوں میں بہتر موافقت کے لئے سپر ٹرینڈ پیرامیٹرز اور منافع لینے کے اہداف کو متحرک طور پر ایڈجسٹ کرنے کے لئے موافقت پذیر الگورتھم کا استعمال کرتے ہوئے دریافت کریں۔

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

  4. اضافی تکنیکی اشارے شامل کریں: کثیر اشارے کے اختلاط کے ذریعے انٹری اور آؤٹ پٹ کی درستگی کو بہتر بنانے کے لئے دیگر تکنیکی اشارے جیسے آر ایس آئی یا ایم اے سی ڈی کو شامل کرنے پر غور کریں۔

  5. سرمائے کے انتظام کو بہتر بنانا: زیادہ نفیس سرمائے کے انتظام کی حکمت عملیوں کا پتہ لگانا ، جیسے اکاؤنٹ کی کارکردگی کی بنیاد پر پوزیشن کے سائز کو متحرک طور پر ایڈجسٹ کرنا ، تاکہ خطرہ اور منافع کو بہتر طور پر متوازن کیا جاسکے۔

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

نتیجہ

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


/*backtest
start: 2024-05-21 00:00:00
end: 2024-06-20 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Strategic Multi-Step Supertrend Trader - Strategy [presentTrading]", overlay=true )

// this strategy utilizes a double Supertrend indicator to determine entry and exit conditions for both long and short trades, with user-configurable take profit levels and trade direction settings. 
// The strategy dynamically updates highest and lowest prices during trades and exits positions based on multi-step profit targets or opposing Supertrend signals.


// User inputs for take profit settings
// Grouping Take Profit settings
useTakeProfit = input.bool(true, title="Use Take Profit", group="Take Profit Settings")
takeProfitPercent1 = input.float(6.0, title="Take Profit % Step 1", group="Take Profit Settings")
takeProfitPercent2 = input.float(12.0, title="Take Profit % Step 2", group="Take Profit Settings")
takeProfitPercent3 = input.float(18.0, title="Take Profit % Step 3", group="Take Profit Settings")
takeProfitPercent4 = input.float(50.0, title="Take Profit % Step 4", group="Take Profit Settings")

takeProfitAmount1 = input.float(12, title="Take Profit Amount % Step 1", group="Take Profit Settings")
takeProfitAmount2 = input.float(8, title="Take Profit Amount % Step 2", group="Take Profit Settings")
takeProfitAmount3 = input.float(4, title="Take Profit Amount % Step 3", group="Take Profit Settings")
takeProfitAmount4 = input.float(0, title="Take Profit Amount % Step 4", group="Take Profit Settings")

numberOfSteps = input.int(3, title="Number of Take Profit Steps", minval=1, maxval=4, group="Take Profit Settings")

// Grouping Trade Direction
tradeDirection = input.string("Both", title="Trade Direction", options=["Long", "Short", "Both"], group="Trade Direction")

// Grouping Supertrend settings
atrPeriod1 = input(10, title="ATR Length for Supertrend 1", group="Supertrend Settings")
factor1 = input.float(3.0, title="Factor for Supertrend 1", step=0.01, group="Supertrend Settings")

atrPeriod2 = input(5, title="ATR Length for Supertrend 2", group="Supertrend Settings")
factor2 = input.float(4.0, title="Factor for Supertrend 2", step=0.01, group="Supertrend Settings")


// Function to calculate Supertrend
supertrend(factor, atrPeriod) =>
    [a, direction] = ta.supertrend(factor, atrPeriod)
    direction

// Calculate Double Supertrend
supertrend1 = supertrend(factor1, atrPeriod1)
supertrend2 = supertrend(factor2, atrPeriod2)

// Entry conditions
longCondition = (supertrend1 < 0 and supertrend2 < 0) and (tradeDirection == "Long" or tradeDirection == "Both")
shortCondition = (supertrend1 > 0 and supertrend2 > 0) and (tradeDirection == "Short" or tradeDirection == "Both")

// Exit conditions
longExitCondition = (supertrend1 > 0 and supertrend2 > 0) and (tradeDirection == "Long" or tradeDirection == "Both")
shortExitCondition = (supertrend1 < 0 and supertrend2 < 0) and (tradeDirection == "Short" or tradeDirection == "Both")

// Variables to store the highest and lowest prices during the trade
var float highestPrice = na
var float lowestPrice = na

// Get the entry price from open trades
entryPrice = strategy.opentrades.entry_price(strategy.opentrades - 1)

// Reset highestPrice or lowestPrice when entering new trades
if (longCondition and strategy.position_size <= 0)
    highestPrice := na // Reset the highest price
    strategy.entry("My Long Entry Id", strategy.long) // Enter long position
    strategy.close("My Short Entry Id", "Short Exit") // Close short position if any

if (shortCondition and strategy.position_size >= 0)
    lowestPrice := na // Reset the lowest price
    strategy.entry("My Short Entry Id", strategy.short) // Enter short position
    strategy.close("My Long Entry Id", "Long Exit") // Close long position if any

// Exit trades based on conditions
if (longExitCondition and strategy.position_size > 0)
    strategy.close("My Long Entry Id", "Long Exit") // Exit long position

if (shortExitCondition and strategy.position_size < 0)
    strategy.close("My Short Entry Id", "Short Exit") // Exit short position

if (strategy.position_size > 0)
    // Update the highest price for long positions
    highestPrice := na(highestPrice) ? high : math.max(highestPrice, high)

    // Step 1
    if (useTakeProfit and numberOfSteps >= 1)
        strategy.exit("Take Profit 1", from_entry="My Long Entry Id", qty_percent=takeProfitAmount1, limit=entryPrice * (1 + takeProfitPercent1 / 100))
    // Step 2
    if (useTakeProfit and numberOfSteps >= 2)
        strategy.exit("Take Profit 2", from_entry="My Long Entry Id", qty_percent=takeProfitAmount2, limit=entryPrice * (1 + takeProfitPercent2 / 100))
    // Step 3
    if (useTakeProfit and numberOfSteps >= 3)
        strategy.exit("Take Profit 3", from_entry="My Long Entry Id", qty_percent=takeProfitAmount3, limit=entryPrice * (1 + takeProfitPercent3 / 100))
    // Step 4
    if (useTakeProfit and numberOfSteps == 4)
        strategy.exit("Take Profit 4", from_entry="My Long Entry Id", qty_percent=takeProfitAmount4, limit=entryPrice * (1 + takeProfitPercent4 / 100))

if (strategy.position_size < 0)
    // Update the lowest price for short positions
    lowestPrice := na(lowestPrice) ? low : math.min(lowestPrice, low)

    // Step 1
    if (useTakeProfit and numberOfSteps >= 1)
        strategy.exit("Take Profit 1", from_entry="My Short Entry Id", qty_percent=takeProfitAmount1, limit=entryPrice * (1 - takeProfitPercent1 / 100))
    // Step 2
    if (useTakeProfit and numberOfSteps >= 2)
        strategy.exit("Take Profit 2", from_entry="My Short Entry Id", qty_percent=takeProfitAmount2, limit=entryPrice * (1 - takeProfitPercent2 / 100))
    // Step 3
    if (useTakeProfit and numberOfSteps >= 3)
        strategy.exit("Take Profit 3", from_entry="My Short Entry Id", qty_percent=takeProfitAmount3, limit=entryPrice * (1 - takeProfitPercent3 / 100))
    // Step 4
    if (useTakeProfit and numberOfSteps == 4)
        strategy.exit("Take Profit 4", from_entry="My Short Entry Id", qty_percent=takeProfitAmount4, limit=entryPrice * (1 - takeProfitPercent4 / 100))


متعلقہ

مزید