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

اے ٹی آر پر مبنی رسک مینجمنٹ سسٹم کے ساتھ حکمت عملی کے بعد دوہری چلتی اوسط رجحان

مصنف:چاؤ ژانگ، تاریخ: 2024-11-29 14:56:43
ٹیگز:ایس ایم اےاے ٹی آرٹی پیSLHTF

img

جائزہ

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

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

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

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

  1. انتہائی موافقت پذیر حکمت عملی جو تاجر کے تجربے اور مارکیٹ کے حالات کے ساتھ لچکدار ہوسکتی ہے
  2. اعلی درجے کی موڈ میں کثیر ٹائم فریم تجزیہ سگنل کی کوالٹی کو بہتر بناتا ہے
  3. اے ٹی آر پر مبنی متحرک رکاوٹیں مارکیٹ کی مختلف اتار چڑھاؤ کے مطابق ہوتی ہیں
  4. جزوی منافع لینے کے توازن کے ساتھ منافع کا تحفظ
  5. مختلف مارکیٹ کی خصوصیات کے لئے لچکدار پیرامیٹر ترتیب

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

  1. ڈبل ایم اے سسٹم میں مختلف مارکیٹوں میں اکثر غلط سگنل پیدا ہوسکتے ہیں
  2. ٹرینڈ فلٹرنگ سگنل کی تاخیر کا سبب بن سکتی ہے ، کچھ تجارتی مواقع سے محروم ہوجاتی ہے
  3. اے ٹی آر اسٹاپز اتار چڑھاؤ کے چوٹیوں کے لئے کافی تیزی سے ایڈجسٹ نہیں ہوسکتے ہیں
  4. جزوی منافع لینے سے مضبوط رجحانات میں پوزیشن کا سائز بہت جلد کم ہوسکتا ہے

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

  1. غلط سگنل فلٹر کرنے کے لئے حجم اور اتار چڑھاؤ کے اشارے شامل کریں
  2. مارکیٹ کے حالات کی بنیاد پر متحرک پیرامیٹرز کو اپنانے پر غور کریں
  3. حساسیت اور استحکام کو متوازن کرنے کے لئے اے ٹی آر حساب کی مدت کو بہتر بنائیں
  4. خودکار حکمت عملی موڈ کے انتخاب کے لئے مارکیٹ کی حالت کی شناخت ماڈیول شامل کریں
  5. مزید سٹاپ نقصان کے اختیارات متعارف کروائیں جیسے ٹریلنگ اسٹاپ اور وقت پر مبنی باہر نکلیں

خلاصہ

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


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
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/
// © shaashish1

//@version=5
strategy("Dual Strategy Selector V2 - Cryptogyani", overlay=true, pyramiding=0, 
         default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=100000)

//#region STRATEGY SELECTION
strategyOptions = input.string(title="Select Strategy", defval="Strategy 1", options=["Strategy 1", "Strategy 2"], group="Strategy Selection")
//#endregion STRATEGY SELECTION

// ####################### STRATEGY 1: Original Logic ########################
//#region STRATEGY 1 INPUTS
s1_fastMALen = input.int(defval=21, title="Fast SMA Length (S1)", minval=1, group="Strategy 1 Settings", inline="S1 MA")
s1_slowMALen = input.int(defval=49, title="Slow SMA Length (S1)", minval=1, group="Strategy 1 Settings", inline="S1 MA")
s1_takeProfitMode = input.string(defval="Percentage", title="Take Profit Mode (S1)", options=["Percentage", "Pips"], group="Strategy 1 Settings")
s1_takeProfitPerc = input.float(defval=7.0, title="Take Profit % (S1)", minval=0.05, step=0.05, group="Strategy 1 Settings") / 100
s1_takeProfitPips = input.float(defval=50, title="Take Profit Pips (S1)", minval=1, step=1, group="Strategy 1 Settings")
s1_trailingTakeProfitEnabled = input.bool(defval=false, title="Enable Trailing (S1)", group="Strategy 1 Settings")
//#endregion STRATEGY 1 INPUTS

// ####################### STRATEGY 2: Enhanced with Recommendations ########################
//#region STRATEGY 2 INPUTS
s2_fastMALen = input.int(defval=20, title="Fast SMA Length (S2)", minval=1, group="Strategy 2 Settings", inline="S2 MA")
s2_slowMALen = input.int(defval=50, title="Slow SMA Length (S2)", minval=1, group="Strategy 2 Settings", inline="S2 MA")
s2_atrLength = input.int(defval=14, title="ATR Length (S2)", group="Strategy 2 Settings", inline="ATR")
s2_atrMultiplier = input.float(defval=1.5, title="ATR Multiplier for Stop-Loss (S2)", group="Strategy 2 Settings", inline="ATR")
s2_partialTakeProfitPerc = input.float(defval=50.0, title="Partial Take Profit % (S2)", minval=10, maxval=100, step=10, group="Strategy 2 Settings")
s2_timeframeTrend = input.timeframe(defval="1D", title="Higher Timeframe for Trend Filter (S2)", group="Strategy 2 Settings")
//#endregion STRATEGY 2 INPUTS

// ####################### GLOBAL VARIABLES ########################
var float takeProfitPrice = na
var float stopLossPrice = na
var float trailingStopPrice = na
var float fastMA = na
var float slowMA = na
var float higherTimeframeTrendMA = na
var bool validOpenLongPosition = false

// Precalculate higher timeframe values (global scope for Strategy 2)
higherTimeframeTrendMA := request.security(syminfo.tickerid, s2_timeframeTrend, ta.sma(close, s2_slowMALen))

// ####################### LOGIC ########################
if (strategyOptions == "Strategy 1")
    // Strategy 1 Logic (Original Logic Preserved)
    fastMA := ta.sma(close, s1_fastMALen)
    slowMA := ta.sma(close, s1_slowMALen)
    openLongPosition = ta.crossover(fastMA, slowMA)
    validOpenLongPosition := openLongPosition and strategy.opentrades.size(strategy.opentrades - 1) == 0
    
    // Take Profit Price
    takeProfitPrice := if (s1_takeProfitMode == "Percentage")
        close * (1 + s1_takeProfitPerc)
    else
        close + (s1_takeProfitPips * syminfo.mintick)

    // Trailing Stop Price (if enabled)
    if (strategy.position_size > 0 and s1_trailingTakeProfitEnabled)
        trailingStopPrice := high - (s1_takeProfitPips * syminfo.mintick)
    else
        trailingStopPrice := na

else if (strategyOptions == "Strategy 2")
    // Strategy 2 Logic with Recommendations
    fastMA := ta.sma(close, s2_fastMALen)
    slowMA := ta.sma(close, s2_slowMALen)
    openLongPosition = ta.crossover(fastMA, slowMA) and close > higherTimeframeTrendMA
    validOpenLongPosition := openLongPosition and strategy.opentrades.size(strategy.opentrades - 1) == 0

    // ATR-Based Stop-Loss
    atr = ta.atr(s2_atrLength)
    stopLossPrice := close - (atr * s2_atrMultiplier)

    // Partial Take Profit Logic
    takeProfitPrice := close * (1 + (s2_partialTakeProfitPerc / 100))
//#endregion STRATEGY LOGIC

// ####################### PLOTTING ########################
plot(series=fastMA, title="Fast SMA", color=color.yellow, linewidth=1)
plot(series=slowMA, title="Slow SMA", color=color.orange, linewidth=1)
plot(series=takeProfitPrice, title="Take Profit Price", color=color.teal, linewidth=1, style=plot.style_linebr)

// Trailing Stop and ATR Stop-Loss Plots (Global Scope)
plot(series=(strategyOptions == "Strategy 1" and s1_trailingTakeProfitEnabled) ? trailingStopPrice : na, title="Trailing Stop", color=color.red, linewidth=1, style=plot.style_linebr)
plot(series=(strategyOptions == "Strategy 2") ? stopLossPrice : na, title="ATR Stop-Loss", color=color.red, linewidth=1, style=plot.style_linebr)
//#endregion PLOTTING

// ####################### POSITION ORDERS ########################
//#region POSITION ORDERS
if (validOpenLongPosition)
    strategy.entry(id="Long Entry", direction=strategy.long)

if (strategyOptions == "Strategy 1")
    if (strategy.position_size > 0)
        if (s1_trailingTakeProfitEnabled)
            strategy.exit(id="Trailing Take Profit", from_entry="Long Entry", stop=trailingStopPrice)
        else
            strategy.exit(id="Take Profit", from_entry="Long Entry", limit=takeProfitPrice)

else if (strategyOptions == "Strategy 2")
    if (strategy.position_size > 0)
        strategy.exit(id="Partial Take Profit", from_entry="Long Entry", qty_percent=s2_partialTakeProfitPerc, limit=takeProfitPrice)
        strategy.exit(id="Stop Loss", from_entry="Long Entry", stop=stopLossPrice)
//#endregion POSITION ORDERS


متعلقہ

مزید