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

مصنف:چاؤ ژانگ، تاریخ: 2023-11-23 11:53:27
ٹیگز:

img

جائزہ

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

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

یہ حکمت عملی رجحان کی سمت کا تعین کرنے کے لئے ٹرتل اشارے میں بریک آؤٹ سسٹم کا استعمال کرتی ہے۔ خاص طور پر ، جب اختتامی قیمت پچھلے 20 دنوں میں سب سے زیادہ قیمت سے زیادہ ہوتی ہے تو ، یہ ایک تیزی کا اشارہ ہے اور طویل ہوتا ہے۔ جب اختتامی قیمت پچھلے 20 دنوں میں سب سے کم قیمت سے کم ہوتی ہے تو ، یہ ایک bearish اشارہ ہے اور حکمت عملی مختصر ہوجاتی ہے۔

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

اسٹاپ نقصان کے لئے حکمت عملی میں اسٹاپ نقصان کے لئے N-بریک آؤٹ کا استعمال کیا جاتا ہے۔ یہ نظام پچھلے 20 دنوں میں سب سے زیادہ اور سب سے کم قیمتوں کی بنیاد پر اسٹاپ نقصان طے کرتا ہے۔ مثال کے طور پر ، لمبی پوزیشنوں کے لئے اسٹاپ نقصان پچھلے 20 دنوں میں سب سے کم سے 2N ATRs کم ہوگا۔ اس حکمت عملی کے لئے منافع حاصل کرنا آسان ہے - کل اکاؤنٹ کی قیمت کا 10٪ مقرر کریں۔

فوائد کا تجزیہ

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

خاص طور پر، اس حکمت عملی میں مندرجہ ذیل طاقتیں ہیں:

  1. کچھی کے اشارے درست طریقے سے رجحانات کی نشاندہی کرتے ہیں اور درمیانی مدت کے رجحانات کو ٹریک کرتے ہیں۔
  2. رفتار فلٹرز غیر ضروری تجارت کو کم کرتے ہیں اور تجارت کی تعدد پر نقصان سے بچتے ہیں.
  3. ٹھوس رسک کنٹرول اقدامات رجحانات کے الٹ جانے پر بروقت نقصانات کو روکنے کی اجازت دیتے ہیں۔
  4. مجموعی طور پر حکمت عملی کی ترتیب اصل Turtle اصولوں کے ساتھ اچھی طرح سے سیدھ میں ہے.

خطرے کا تجزیہ

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

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

بہتر مواقع

مندرجہ بالا خطرات کی بنیاد پر، اصلاح کے اہم مواقع میں شامل ہیں:

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

نتیجہ

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


/*backtest
start: 2023-10-23 00:00:00
end: 2023-11-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Heiken Ashi BF 🚀", overlay=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075)

/////////////// Time Frame ///////////////
testStartYear = input(2017, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2029, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true

///////////// HA /////////////
haTicker = heikinashi(syminfo.tickerid)
haOpen = security(haTicker, "D", open)
haHigh = security(haTicker, "D", high)
haLow = security(haTicker, "D", low)
haClose = security(haTicker, "D", close)

///////////// Rate Of Change ///////////// 
source = close
roclength = input(30, minval=1)
pcntChange = input(7.0, minval=1)
roc = 100 * (source - source[roclength]) / source[roclength]
emaroc = ema(roc, roclength / 2)
isMoving() => emaroc > (pcntChange / 2) or emaroc < (0 - (pcntChange / 2))

/////////////// Strategy ///////////////
long = haOpen < haClose and isMoving()
short = haOpen > haClose and isMoving()

last_long = 0.0
last_short = 0.0
last_long := long ? time : nz(last_long[1])
last_short := short ? time : nz(last_short[1])

long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)

last_open_long_signal = 0.0
last_open_short_signal = 0.0
last_open_long_signal := long_signal ? open : nz(last_open_long_signal[1])
last_open_short_signal := short_signal ? open : nz(last_open_short_signal[1])

last_long_signal = 0.0
last_short_signal = 0.0
last_long_signal := long_signal ? time : nz(last_long_signal[1])
last_short_signal := short_signal ? time : nz(last_short_signal[1])

in_long_signal = last_long_signal > last_short_signal
in_short_signal = last_short_signal > last_long_signal

last_high = 0.0
last_low = 0.0
last_high := not in_long_signal ? na : in_long_signal and (na(last_high[1]) or high > nz(last_high[1])) ? high : nz(last_high[1])
last_low := not in_short_signal ? na : in_short_signal and (na(last_low[1]) or low < nz(last_low[1])) ? low : nz(last_low[1])

sl_inp = input(2.0, title='Stop Loss %') / 100
tp_inp = input(5000.0, title='Take Profit %') / 100
 
take_level_l = strategy.position_avg_price * (1 + tp_inp)
take_level_s = strategy.position_avg_price * (1 - tp_inp)

since_longEntry = barssince(last_open_long_signal != last_open_long_signal[1])
since_shortEntry = barssince(last_open_short_signal != last_open_short_signal[1]) 

slLong = in_long_signal ? strategy.position_avg_price * (1 - sl_inp) : na
slShort = strategy.position_avg_price * (1 + sl_inp)
long_sl = in_long_signal ? slLong : na
short_sl = in_short_signal ? slShort : na

/////////////// Execution ///////////////
if testPeriod()
    strategy.entry("L",  strategy.long, when=long)
    strategy.entry("S", strategy.short, when=short)
    strategy.exit("L SL", "L", stop=long_sl, limit=take_level_l, when=since_longEntry > 0)
    strategy.exit("S SL", "S", stop=short_sl, limit=take_level_s, when=since_shortEntry > 0)

/////////////// Plotting ///////////////
plotcandle(haOpen, haHigh, haLow, haClose, title='HA Candles', color = haOpen < haClose ? color.lime : color.red)
bgcolor(isMoving() ? long ? color.lime : short ? color.red : na : color.white, transp=70)
bgcolor(long_signal ? color.lime : short_signal ? color.red : na, transp=50)

مزید