سپر ٹرینڈ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-02-02 11:11:48
ٹیگز:

img

جائزہ

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

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

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

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

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

سپر ٹرینڈ حکمت عملی مندرجہ ذیل اہم اصولوں پر مبنی ہے:

  1. اے ٹی آر ویلیو کا حساب لگائیں: ایس ایم اے حساب یا بلٹ ان اے ٹی آر اشارے کے درمیان انتخاب کرسکتے ہیں۔ ایس ایم اے فارمولا:

    atr2 = sma(tr, Periods)
    
  2. اوپری اور نچلی بینڈ کا حساب لگائیں۔ اوپری بینڈ قریب ہے مائنس اے ٹی آر ضرب ضرب اے ٹی آر۔ نچلی بینڈ قریب ہے پلس ضرب ضرب اے ٹی آر۔

    up = close - (Multiplier * atr) 
    dn = close + (Multiplier * atr)
    
  3. قیمت کو بینڈوں سے موازنہ کرکے رجحان کی سمت کا تعین کریں۔ جب قیمت نیچے کی بینڈ سے تجاوز کرتی ہے تو اپ ٹرینڈ۔ جب قیمت اوپری بینڈ سے نیچے ہوتی ہے تو ڈاؤن ٹرینڈ۔

    trend := trend == -1 and close > dn ? 1 : trend == 1 and close < up ? -1 : trend
    
  4. رجحان کی تبدیلی پر ٹریڈنگ سگنل تیار کریں، مثال کے طور پر جب اپ ٹرینڈ سے ڈاؤن ٹرینڈ میں تبدیل ہو تو فروخت کا سگنل:

    sellSignal = trend == -1 and trend[1] == 1 
    
  5. سگنل اور اضافی حالات کی بنیاد پر داخلہ فلٹر.

  6. منافع میں مقفل کرنے یا خطرات کو محدود کرنے کے لئے سٹاپ نقصان اور منافع لے لو.

یہ سپر ٹرینڈ حکمت عملی کے پیچھے کام کرنے کے اہم اصول ہیں۔ پیرامیٹر کی اصلاح کے ساتھ مل کر ، یہ اچھے تجارتی نتائج پیدا کرسکتا ہے۔

فوائد

سپر ٹرینڈ حکمت عملی کے کئی فوائد ہیں:

  1. سپر ٹرینڈ خود مؤثر طریقے سے رجحانات کی نشاندہی کرتا ہے اور عام طور پر ٹریلنگ اسٹاپ کے لئے استعمال ہوتا ہے۔

  2. اپنی مرضی کے مطابق اے ٹی آر پیرامیٹرز کو بہترین فٹ کے ل products مصنوعات میں بہتر بنایا جاسکتا ہے۔ ایس ایم اے حساب کتاب ایک اور آپشن فراہم کرتا ہے۔

  3. ترتیب دینے کے قابل بیک ٹسٹ اور لائیو ٹریڈنگ وقت کی حد مختلف ٹریڈنگ سیشنوں کے مطابق ہوتی ہے۔

  4. فوری طور پر پہلی تجارت میں داخل ہونے یا سگنل کا انتظار کرنے کا اختیار مختلف مصنوعات کی خدمت کرتا ہے۔

  5. بلٹ ان سٹاپ نقصان اور منافع لینے سے خطرے کے انتظام کو بہتر بنانے یا زیادہ منافع میں مقفل کرنے میں مدد ملتی ہے۔

  6. خودکار تجارتی نظاموں اور بوٹس کے ساتھ انضمام کے لئے اپنی مرضی کے مطابق تجارتی انتباہات۔

خطرات

اس کے علاوہ کچھ خطرات پر بھی غور کرنا چاہئے:

  1. سپر رجحان غلط سگنل پیدا کر سکتا ہے جو اضافی حالات کے ساتھ فلٹر کرنے کی ضرورت ہے.

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

  3. بہت قریب سٹاپ نقصان منافع بخش تجارت سے قبل ہی باہر نکل سکتا ہے. منافع بہت کم لے کر میز پر پیسہ چھوڑ سکتا ہے.

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

ان خطرات سے نمٹنے کے لئے پیرامیٹرز یا اضافی فلٹرز میں مناسب ایڈجسٹمنٹ کے ذریعے مضبوطی کو بہتر بنایا جاسکتا ہے۔

اصلاح کے مواقع

کچھ طریقوں سے حکمت عملی کو مزید بہتر بنایا جاسکتا ہے:

  1. صحیح توازن تلاش کرنے کے لئے مختلف ATR ادوار کی جانچ کریں، عام طور پر 10-20 اچھی طرح کام کرتا ہے.

  2. مختلف ATR ضارب اقدار کی کوشش کریں، عام طور پر 2-5 مناسب ہے، بہترین تلاش کرنے کے لئے ایڈجسٹ.

  3. غلط سگنل کو کم کرنے کے لئے MACD، RSI وغیرہ جیسے فلٹرز شامل کریں.

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

  5. مختلف تجارتی وقت کی حدوں کی جانچ کریں۔ مختصر مدت دن کے اندر اور اعلی تعدد کی حکمت عملیوں کے مطابق ہے۔

  6. اعلی رفتار یا اتار چڑھاؤ کو ٹریک کرنے کے لئے آٹو علامت کے انتخاب کو لاگو کریں.

نتیجہ

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


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © REV0LUTI0N

//@version=4

// Strategy
strategy("Supertrend Strategy", overlay=true, initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash)
Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
enableentry = input(true, title="Enter First Trade ASAP")
waitentry = input(false, title="Wait To Enter First Trade")

atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend

upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
Long = (trend == 1 ? up : na)
buySignal = trend == 1 and trend[1] == -1

dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
Short = (trend == 1 ? na : dn)
sellSignal = trend == -1 and trend[1] == 1

// Strategy Backtesting
startDate  = input(timestamp("2021-01-01T00:00:00"), type = input.time, title='Backtesting Start Date')
finishDate = input(timestamp("2021-12-31T00:00:00"), type = input.time, title='Backtesting End Date')

time_cond  = true

//Time Restriction Settings
startendtime = input("", title='Time Frame To Enter Trades')
enableclose = input(false, title='Enable Close Trade At End Of Time Frame')
timetobuy = (time(timeframe.period, startendtime))
timetoclose = na(time(timeframe.period, startendtime))

// Stop Loss & Take Profit % Based
enablesl = input(false, title='Enable Stop Loss')
enabletp = input(false, title='Enable Take Profit')
stopTick = input(5.0, title='Stop Loss %', type=input.float, step=0.1) / 100
takeTick = input(10.0, title='Take Profit %', type=input.float, step=0.1) / 100

longStop = strategy.position_avg_price * (1 - stopTick)
shortStop = strategy.position_avg_price * (1 + stopTick)
shortTake = strategy.position_avg_price * (1 - takeTick)
longTake = strategy.position_avg_price * (1 + takeTick)

plot(strategy.position_size > 0 and enablesl ? longStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Fixed SL")
plot(strategy.position_size < 0 and enablesl ? shortStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Short Fixed SL")
plot(strategy.position_size > 0 and enabletp ? longTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Long Take Profit")
plot(strategy.position_size < 0 and enabletp ? shortTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Short Take Profit")

// Alert messages
message_enterlong  = input("", title="Long Entry message")
message_entershort = input("", title="Short Entry message")
message_closelong = input("", title="Close Long message")
message_closeshort = input("", title="Close Short message")

// Strategy Execution
if Long and time_cond and timetobuy and enableentry
    strategy.entry("Long", strategy.long, alert_message = message_enterlong)
    
if Short and time_cond and timetobuy and enableentry
    strategy.entry("Short", strategy.short, alert_message = message_entershort)
    
if buySignal and time_cond and timetobuy and waitentry
    strategy.entry("Long", strategy.long, alert_message = message_enterlong)
    
if sellSignal and time_cond and timetobuy and waitentry
    strategy.entry("Short", strategy.short, alert_message = message_entershort)
    
if strategy.position_size > 0 and timetoclose and enableclose
    strategy.close_all(alert_message = message_closelong)
if strategy.position_size < 0 and timetoclose and enableclose
    strategy.close_all(alert_message = message_closeshort)
    
if strategy.position_size > 0 and enablesl and time_cond
    strategy.exit(id="Close Long", stop=longStop, limit=longTake, alert_message = message_closelong)
if strategy.position_size < 0 and enablesl and time_cond
    strategy.exit(id="Close Short", stop=shortStop, limit=shortTake, alert_message = message_closeshort)
    
if strategy.position_size > 0 and enabletp and time_cond
    strategy.exit(id="Close Long", stop=longStop, limit=longTake, alert_message = message_closelong)
if strategy.position_size < 0 and enabletp and time_cond
    strategy.exit(id="Close Short", stop=shortStop, limit=shortTake, alert_message = message_closeshort)






مزید