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

پیک ڈراؤنڈ کنٹرول اور آٹو ٹرمینل کے ساتھ ایس ایم اے کراس اوور لانگ شارٹ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-07-29 14:16:58
ٹیگز:ایس ایم اے

img

جائزہ

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

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

  1. ٹریڈ سگنل جنریشن:

    • ایک طویل سگنل اس وقت پیدا ہوتا ہے جب 14 پیریڈ ایس ایم اے 28 پیریڈ ایس ایم اے سے اوپر سے گزرتا ہے۔
    • ایک مختصر سگنل اس وقت پیدا ہوتا ہے جب 14 پیریڈ ایس ایم اے 28 پیریڈ ایس ایم اے سے نیچے گزر جاتا ہے۔
  2. چوٹی کا کنٹرول:

    • حکمت عملی کے ایکویٹی وکر کی ریئل ٹائم ٹریکنگ ، تاریخی اعلی مقامات (چوٹیوں) کو ریکارڈ کرنا۔
    • جب موجودہ ایکویٹی چوٹی سے نیچے آجاتی ہے تو ، یہ کھپت کی حالت میں داخل ہوتی ہے ، جس میں سب سے کم نقطہ (ڈراپ) ریکارڈ کیا جاتا ہے۔
    • استعمال کی فیصد کا حساب اس طرح کیا جاتا ہے: (پیک - ٹریف) /پیک * 100٪۔
    • اگر استعمال کی فیصد پہلے سے مقرر زیادہ سے زیادہ استعمال کی حد سے زیادہ ہو تو، حکمت عملی نئی پوزیشنوں کو کھولنے کو روکتا ہے.
  3. چوٹی سے پورے سائیکل کا تجزیہ:

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

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

  1. رجحان کی پیروی اور خطرے کے کنٹرول کو یکجا کرتا ہے: ایس ایم اے کراس اوور حکمت عملی ایک کلاسیکی رجحان کی پیروی کرنے والا طریقہ ہے ، جبکہ چوٹی کی کھوج کا کنٹرول رسک مینجمنٹ کی ایک اضافی پرت فراہم کرتا ہے۔ یہ امتزاج مارکیٹ کے رجحانات کو پکڑتے ہوئے نیچے کے خطرے کو مؤثر طریقے سے کنٹرول کرسکتا ہے۔

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

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

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

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

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

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

  2. کثرت سے تجارت: اتار چڑھاؤ والے بازاروں میں ، ایس ایم اے اکثر عبور کرسکتے ہیں ، جس کے نتیجے میں زیادہ تجارت اور اعلی لین دین کے اخراجات ہوتے ہیں۔

  3. بڑی رقم نکالنے کا امکان: زیادہ سے زیادہ ڈراؤنڈ کنٹرول کے باوجود، مارکیٹ میں شدید اتار چڑھاؤ کے دوران ایک ہی بڑی گرنے سے اب بھی اہم نقصانات ہوسکتے ہیں۔

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

  5. واپسی کے مواقع کھوئے ہوئے: جب زیادہ سے زیادہ ڈراؤنڈ کی حد تک پہنچنے کے بعد تجارت بند ہوجاتی ہے تو ، حکمت عملی مارکیٹ کی تبدیلیوں سے آنے والے مواقع کو کھو سکتی ہے۔

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

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

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

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

  4. منافع لینے کا طریقہ کار شامل کریں: ڈراؤنڈ کنٹرول کے اوپر، منافع میں تالا لگانے اور مجموعی واپسی کو بہتر بنانے کے لئے متحرک منافع لینے کا فنکشن شامل کریں.

  5. پیسے کا انتظام بہتر بنائیں: خطرے کے بہتر کنٹرول کے لیے اکاؤنٹ کے سائز اور مارکیٹ کی اتار چڑھاؤ کی بنیاد پر متحرک پوزیشن سائزنگ کا نفاذ کریں۔

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

نتیجہ

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

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

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


/*backtest
start: 2023-07-23 00:00:00
end: 2024-07-28 00:00:00
period: 1d
basePeriod: 1h
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/

capital = 10000

//@version=5
strategy(title = "Correct Strategy Peak-Drawdown Cycles [Tradingwhale]", shorttitle = "Peak-Draw [Tradingwhale]", initial_capital = capital, overlay=true, margin_long=100, margin_short=100)

// The code below is from Tradingwhale LLC
/// ==============================================================================
//  Peak-Trough Cycles with Date and Prev. RunUp
// Initialize variables
showTable = input.bool(true, title = "Plot Peak to Bottom Drawdown Cycles table?")
min_trough = input.float(3.0, title = "Define Minimum Drawdown/Trough to Display (%)", minval = 1, maxval = 100, step = 0.5, tooltip = "Peaks and Trough Cycles have to be roped in by either a lookback period or minmimum troughs to show. If you don't then every bar could be a peak or trough/bottom. I've decided to use minimum declines here because lookback seems more arbitrary.")
maxdraw = input.float(40.0, title = "Max Drawdown", minval = 1, maxval = 100, step = 0.5, tooltip = "Define the drawdown level where the srtategy stops executing trades.")

var float equityPeak = na
var float equityTrough = na
var int cycleCount = 0
var bool inDrawdown = false
var float initialCapital = capital
var float prevTrough = initialCapital
var float prevRunUp = na
var bool useLighterGray = true
var int lastYear = na

// Variable to indicate whether the strategy should end
var bool end_strategy = false

// Table to display data
var table resultTable = table.new(position.top_right, 5, 30, bgcolor=#ffffff00, frame_color=#4f4040, frame_width=1)

// Function to convert float to percentage string
f_to_percent(value) =>
    str.tostring(value, "#.##") + "%"

// Function to get month/year string without commas
get_month_year_string() =>
    str.tostring(year) + "/" + str.tostring(month)

// Update the table headers
if (bar_index == 0 and showTable)
    table.cell(resultTable, 0, 0, "Show Min Trough: " + f_to_percent(min_trough), bgcolor=#a8a8a88f, text_size=size.normal)
    table.cell(resultTable, 1, 0, "Cycle Count", bgcolor=#a8a8a88f, text_size=size.normal)
    table.cell(resultTable, 2, 0, "Prev.RunUp(%)", bgcolor=#a8a8a88f, text_size=size.normal)
    table.cell(resultTable, 3, 0, "Drawdown(%)", bgcolor=#a8a8a88f, text_size=size.normal)
    table.cell(resultTable, 4, 0, "Year/Month", bgcolor=#a8a8a88f, text_size=size.normal)

// Track peaks and troughs in equity
if (na(equityPeak) or strategy.equity > equityPeak)
    if (inDrawdown and strategy.equity > equityPeak and not na(equityTrough)) // Confirm end of drawdown cycle
        drawdownPercentage = (equityPeak - equityTrough) / equityPeak * 100
        if drawdownPercentage > min_trough
            cycleCount += 1
            prevRunUp := (equityPeak - prevTrough) / prevTrough * 100
            if cycleCount <= 20 and showTable
                currentYear = year
                if na(lastYear) or currentYear != lastYear
                    useLighterGray := not useLighterGray
                    lastYear := currentYear
                rowColor = useLighterGray ? color.new(color.gray, 80) : color.new(color.gray, 50)
                table.cell(resultTable, 1, cycleCount, str.tostring(cycleCount), bgcolor=rowColor, text_size=size.normal)
                table.cell(resultTable, 2, cycleCount, f_to_percent(prevRunUp), bgcolor=rowColor, text_size=size.normal)
                table.cell(resultTable, 3, cycleCount, f_to_percent(drawdownPercentage), bgcolor=rowColor, text_size=size.normal)
                table.cell(resultTable, 4, cycleCount, get_month_year_string(), bgcolor=rowColor, text_size=size.normal)
            prevTrough := equityTrough
    equityPeak := strategy.equity
    equityTrough := na
    inDrawdown := false
else if (strategy.equity < equityPeak)
    equityTrough := na(equityTrough) ? strategy.equity : math.min(equityTrough, strategy.equity)
    inDrawdown := true

// Calculate if the strategy should end
if not na(equityPeak) and not na(equityTrough)
    drawdownPercentage = (equityPeak - equityTrough) / equityPeak * 100
    if drawdownPercentage >= maxdraw
        end_strategy := true


// This code below is from Tradingview, but with additions where commented (see below)

longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
if (longCondition) and not end_strategy // Add 'and not end_strategy' to your order conditions to automatically end the strategy if max_draw is exceeded/
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))
if (shortCondition) and not end_strategy // Add 'and not end_strategy' to your order conditions to automatically end the strategy if max_draw is exceeded/
    strategy.entry("My Short Entry Id", strategy.short)



متعلقہ

مزید