رفتار آسکیلیٹر ٹرینڈ ٹریکنگ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-01-22 10:08:55
ٹیگز:

img

جائزہ

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

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

سگنل جنریشن اور رجحان کا فیصلہ

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

اسٹیج مخصوص سگنل جنریشن

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

مجموعی طور پر فیصلے کا بہاؤ

خلاصہ میں ، اس حکمت عملی کے فیصلے کی منطق کو اس طرح بیان کیا جاسکتا ہے: اسٹیج پر مبنی رجحان کی تصدیق (اسٹیج 2 یا اسٹیج 4) > مومنٹم آر ایس آئی کے مطابق بولش / بیرش تعصب کا تعین کرنا > ای ایم اے کراس اوور کے مطابق سمت کا فیصلہ کرنا > اسٹاپ نقصان کی ترتیب کے لئے اے ٹی آر کو شامل کرنا > جب تمام معیار پورے ہوجائیں تو پوزیشنیں کھولنا۔ یہ ہموار عمل حکمت عملی کو مارکیٹ میں اہم موڑ کے مقامات کو درست طریقے سے پکڑنے اور سب سے زیادہ منافع بخش جھولوں میں حصہ لینے کی اجازت دیتا ہے۔

فوائد

مارکیٹ سائیکل کی سیدھ کے ساتھ جیت کی شرح میں اضافہ

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

متعدد فلٹرز کے ذریعے جھوٹے سگنل کو کم کرنا

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

بہت سے پیرامیٹرز کی وجہ سے انتہائی حسب ضرورت

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

خطرات اور تخفیف

منسلک مارکیٹ کے خطرات

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

پیرامیٹرز کی زیادہ فٹنگ

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

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

پوزیشن سائزنگ الگورتھم کو شامل کرنا

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

مشین لرننگ کے ساتھ مزید سگنل فلٹر کریں

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

نتیجہ

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


/*backtest
start: 2023-01-15 00:00:00
end: 2024-01-21 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/
// © JS_TechTrading

//@version=5
strategy('The Flash-Strategy (Momentum-RSI, EMA-crossover, ATR)', shorttitle='The Flash-Strategy (Momentum-RSI, EMA-crossover, ATR)', overlay=true,initial_capital = 1000)
//// author -  JS-TechTrading

// MOM Rsi indicator 
group_mom_rsi = "Rsi Of Momentum "
len = input.int(10, minval=1, title="Length Mom-Rsi", group =group_mom_rsi ,tooltip = 'This ind calculate Rsi value of Momentum we use this ind to determine power of trend')
src2 = close
mom = src2 - src2[len]
rsi_mom = ta.rsi(mom, len)
mom_rsi_val = input.int(60, minval=1, title="Mom-Rsi Limit Val", group =group_mom_rsi, tooltip = "When our Mom-Rsi value more then this we open LONG or Short, with help of this indicator we we determine the status of the trend")

// Super Trend Ind
group_supertrend = "SuperTrend indicator"
atrPeriod = input(10, "ATR Length SuperTrend", group = group_supertrend)
factor = input.float(3.0, "Factor SuperTrend", step = 0.01, group = group_supertrend)

[supertrend, direction] = ta.supertrend(factor, atrPeriod)

// Ema Indicator
group_most = "Ema indicator"
src = input(close, 'Source Ema Ind',group = group_most)
AP2 = input.int(defval=12, title='Length Ema Ind', minval=1,group = group_most)
Trail1 = ta.ema(src, AP2) //Ema func
AF2 = input.float(defval=1, title='Percent Ema Ind', minval=0.1,group = group_most) / 100
SL2 = Trail1 * AF2  // Stoploss Ema
Trail2 = 0.0
iff_1 = Trail1 > nz(Trail2[1], 0) ? Trail1 - SL2 : Trail1 + SL2
iff_2 = Trail1 < nz(Trail2[1], 0) and Trail1[1] < nz(Trail2[1], 0) ? math.min(nz(Trail2[1], 0), Trail1 + SL2) : iff_1
Trail2 := Trail1 > nz(Trail2[1], 0) and Trail1[1] > nz(Trail2[1], 0) ? math.max(nz(Trail2[1], 0), Trail1 - SL2) : iff_2

//EMA50/150/200
group_50_150_200="EMA50/150/200"
show_emas=input.bool(defval = true, title = "SHOW EMAS", group = group_50_150_200)
ema50= ta.ema(src, 50)
ema150 = ta.ema(src, 150)
ema200 = ta.ema(src, 200)
ema50_color=input.color(defval = color.purple, title = "EMA50 COLOR",group = group_50_150_200)
ema50_linewidth=input.int(defval = 2, title = "EMA50 LINEWIDTH", group = group_50_150_200)
ema150_color=input.color(defval = color.blue, title = "EMA150 COLOR", group = group_50_150_200)
ema150_linewidth=input.int(defval = 2, title = "EMA150 LINEWIDTH", group = group_50_150_200)
ema200_color=input.color(defval = color.black, title = "EMA200 COLOR", group = group_50_150_200)
ema200_linewidth=input.int(defval = 2, title = "EMA200 LINEWIDTH", group = group_50_150_200)
plot(show_emas ? ema50 : na, color = ema50_color, linewidth = ema50_linewidth)
plot(show_emas ? ema150 : na, color=ema150_color, linewidth = ema150_linewidth)
plot(show_emas ? ema200 : na, color = ema200_color, linewidth = ema200_linewidth)

//Bull = ta.barssince(Trail1 > Trail2 and close > Trail2 and low > Trail2) < ta.barssince(Trail2 > Trail1 and close < Trail2 and high < Trail2)

//TS1 = plot(Trail1, 'ExMov', style=plot.style_line, color=Trail1 > Trail2 ? color.rgb(33, 149, 243, 100) : color.rgb(255, 235, 59, 100), linewidth=2)
//TS2 = plot(Trail2, 'ema', style=plot.style_line, color=Trail1 > Trail2 ? color.rgb(76, 175, 79, 30) : color.rgb(255, 82, 82, 30), linewidth=2)
//fill(TS1, TS2, Bull  ? color.green : color.red, transp=90)


// Strategy Sett
group_strategy = "Settings of Strategy"
Start_Time = input(defval=timestamp('01 January 2000 13:30 +0000'), title='Start Time of BackTest', group =group_strategy)
End_Time = input(defval=timestamp('30 April 2030 19:30 +0000'), title='End Time of BackTest', group =group_strategy)
dollar = input.float(title='Dollar Cost Per Position* ', defval=50000, group =group_strategy)
trade_direction = input.string(title='Trade_direction', group =group_strategy, options=['LONG', 'SHORT', 'BOTH'], defval='BOTH')
v1 = input(true, title="Version 1 - Uses SL/TP Dynamically ", group =group_strategy ,tooltip = 'With this settings our stoploss price increase or decrease with price to get better PNL score')

v2 = input(false, title="Version 2 -  Uses SL/TP Statically", group =group_strategy)
v2stoploss_input = input.float(5, title='Static Stop.Loss % Val', minval=0.01, group =group_strategy)/100
v2takeprofit_input = input.float(10, title='Static Take.Prof % Val', minval=0.01, group =group_strategy)/100

v2stoploss_level_long = strategy.position_avg_price * (1 - v2stoploss_input)
v2takeprofit_level_long = strategy.position_avg_price * (1 + v2takeprofit_input)

v2stoploss_level_short = strategy.position_avg_price * (1 + v2stoploss_input)
v2takeprofit_level_short = strategy.position_avg_price * (1 - v2takeprofit_input)

group_line = "Line Settings"
show_sl_tp = input.bool(title='  Show StopLoss - TakeProf Lines',inline = "1", defval=true, group =group_line)
show_trend_line = input.bool(title='  Show Trend Line',inline = '3' ,defval=true, group =group_line)
stoploss_colour = input.color(title='StopLoss Line Colour',inline = '2' ,defval=color.rgb(255, 255, 0), group =group_line)
up_trend_line_colour = input.color(title='Up Trend line Colour',inline = '4' ,defval=color.rgb(0, 255, 0, 30), group =group_line)
down_trend_line_colour = input.color(title='Down Trend line Colour',inline = '4' ,defval=color.rgb(255, 0, 0, 30), group =group_line)

//plot(supertrend ,color = strategy.position_size > 0 and show_sl_tp ? color.rgb(255, 0, 0) :show_sl_tp ? color.rgb(0, 255, 0) : na , style = plot.style_steplinebr,linewidth = 2)
// plot(supertrend ,color = show_sl_tp and v1 ? stoploss_colour : na , style = plot.style_steplinebr,linewidth = 2)

// plot(v2stoploss_level_long ,color = strategy.position_size > 0 and show_sl_tp and v2 ? stoploss_colour : na , style = plot.style_steplinebr,linewidth = 2)
// plot(v2stoploss_level_short ,color = strategy.position_size < 0 and show_sl_tp and v2 ? stoploss_colour : na , style = plot.style_steplinebr,linewidth = 2)
// plot(v2takeprofit_level_long  ,color = strategy.position_size > 0 and show_sl_tp and v2 ? up_trend_line_colour : na , style = plot.style_steplinebr,linewidth = 2)
// plot(v2takeprofit_level_short ,color = strategy.position_size < 0 and show_sl_tp and v2 ? up_trend_line_colour : na , style = plot.style_steplinebr,linewidth = 2)


TS2 = plot(Trail2, 'Ema Strategy', style=plot.style_line, color=show_trend_line and Trail1 < Trail2 ? down_trend_line_colour : show_trend_line ? up_trend_line_colour  : na, linewidth=2)

// bgcolor(buy_signal ? color.rgb(0, 230, 119, 80) : na)
// bgcolor(sell_signal ? color.rgb(255, 82, 82, 80) : na)

Time_interval = true
buy_signal = Trail1 > Trail2 and direction < 0 and rsi_mom > mom_rsi_val and Time_interval
sell_signal =Trail1 < Trail2 and direction > 0 and rsi_mom > mom_rsi_val and Time_interval


// Strategy entries 
stop_long = (close < supertrend and v1) or (v2 and strategy.position_size > 0)
stop_short = (close > supertrend and v1) or (v2 and strategy.position_size < 0)
long_cond = ((close > ema150 ) and (ema50 > ema150) and (ema150 > ema200))
short_cond = ((close < ema150) and (ema50 < ema150) and (ema150 < ema200))
if (not stop_long) and (not short_cond) and long_cond and strategy.opentrades == 0 and (trade_direction == 'LONG' or trade_direction == 'BOTH') and buy_signal
    strategy.entry('Long_0', strategy.long, qty=dollar / close)

if (not stop_short) and (not long_cond) and short_cond and strategy.opentrades == 0 and (trade_direction == 'SHORT' or trade_direction == 'BOTH') and sell_signal
    strategy.entry('Short_0', strategy.short, qty=dollar / close)


if close < supertrend and v1
    strategy.exit('Long_Close',from_entry = "Long_0", stop=supertrend, qty_percent=100)
if  v2 and strategy.position_size > 0
    strategy.exit('Long_Close',from_entry = "Long_0", stop=v2stoploss_level_long,limit= v2takeprofit_level_long  , qty_percent=100)
    
if close > supertrend and v1
    strategy.exit('Short_Close',from_entry = "Short_0", stop=supertrend, qty_percent=100)
if  v2 and strategy.position_size < 0
    strategy.exit('Short_Close',from_entry = "Short_0", stop=v2stoploss_level_short,limit= v2takeprofit_level_short ,qty_percent=100)

مزید