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

SMA ATR TP SL HTF
تخلیق کی تاریخ: 2024-11-29 14:56:43 آخر میں ترمیم کریں: 2024-11-29 14:56:43
کاپی: 0 کلکس کی تعداد: 522
1
پر توجہ دیں
1617
پیروکار

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

جائزہ

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

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

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

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

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

اسٹریٹجک رسک

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

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

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

خلاصہ کریں۔

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

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