Momentum Smoothed Moving Average اور Moving Average Crossover Strategy


تخلیق کی تاریخ: 2023-11-27 17:35:09 آخر میں ترمیم کریں: 2023-11-27 17:35:09
کاپی: 0 کلکس کی تعداد: 673
1
پر توجہ دیں
1617
پیروکار

Momentum Smoothed Moving Average اور Moving Average Crossover Strategy

جائزہ

اس حکمت عملی میں متحرک ہموار حرکت پذیر اوسط ((ALMA) اور دو مختلف پیرامیٹرز کے ساتھ ترتیب دی گئی اشاریہ حرکت پذیر اوسط ((EMA) کا ایک کراس استعمال کیا جاتا ہے تاکہ تجارتی سگنل پیدا کیا جاسکے۔ اس کے علاوہ ، اس حکمت عملی میں بے ترتیب اشاریہ ہموار حرکت پذیر اوسط ((Stochastic RSI) بھی شامل ہے تاکہ زیادہ خرید و فروخت سے بچا جاسکے۔

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

ALMA لائن

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

ای ایم اے لائنز کو ہلکا کرو

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

Stochastic RSI

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

حکمت عملی کا تجزیہ

رجحانات پر قابو پانا

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

پیرامیٹرز سایڈست، لچکدار

EMA کی مدت، ALMA پیرامیٹرز وغیرہ کو ایڈجسٹ کرنے کے لئے جگہ فراہم کرتا ہے، صارف اپنی ضروریات کے مطابق پیرامیٹرز کو بہتر بنا سکتے ہیں، تاکہ حکمت عملی مختلف مارکیٹ کے حالات کے مطابق بہتر ہو.

سود کی روک تھام کا طریقہ کار

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

خطرے کا تجزیہ

رجحانات کی غلط تشخیص

پیچیدہ حالات میں ، ای ایم اے اور ایل ایم اے لائنیں غلط سگنل دے سکتی ہیں۔ اس وقت نقصان کو کنٹرول کرنے کے لئے اسٹاپ نقصان پر انحصار کرنا پڑتا ہے۔

غلط پیرامیٹرز

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

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

  1. EMA اور ALMA کے پیرامیٹرز کی ترتیبات کو بہتر بنانے کے لئے ٹیسٹ کریں ، بہترین پیرامیٹرز کا انتخاب کریں۔

  2. دوسرے اشارے کے ساتھ مل کر سگنل کو فلٹر کریں تاکہ غلط سگنل سے بچنے سے نقصان ہو۔ جیسے MACD ، KDJ وغیرہ۔

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

  4. مختلف اقسام اور سائیکلنگ پیرامیٹرز کی جانچ پڑتال کریں تاکہ حکمت عملی کو زیادہ سے زیادہ مارکیٹوں میں لاگو کیا جاسکے۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5

////Arranged by @ClassicScott
//Strategy Created by @CheatCode1


strategy('ALMA/EMA Strategy', shorttitle='ALMA/EMA Strategy', overlay=true )



////Source Selection & ALMA Variables

//Dominant Momentum ALMA
dsource = input.source(close, title='Source', group='Dominant ALMA')
dperiod = input.int(title='Period', defval=130, group='Dominant ALMA')
doffset = input.float(title='Offset', step=0.025, defval=0.775, group='Dominant ALMA')
dsigma = input.float(title='Sigma', step=0.5, defval=4.5, group='Dominant ALMA')

dalma = ta.alma(dsource, dperiod, doffset, dsigma)

dalma_up_color = input.color(#66bb6a, 'Going Up!', group='Dominant ALMA', inline = '1')
dalma_down_color = input.color(#ef5350, 'Going Down :(', group='Dominant ALMA', inline = '1')
dcolor = close[1] > dalma ? dalma_up_color : dalma_down_color

////ALMA Plots
plot(dalma, color=dcolor, style=plot.style_stepline, linewidth=2, title='Dominant Momentum MA')



//Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1

//Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1

cheatcode = input.bool(true, '-----------CHEATC0DE1------------', group = 'Strategy Inputs', confirm = true)

//Variable Declerations/Plot Assingments

inp1 = input.int(49, 'Slow Ema Length', 1, 100, group = 'Strategy Inputs', confirm = true)
inp2 = input.int(9, 'Fast Ema Length', 1, 200, group = 'Strategy Inputs', confirm = true)
inp3 = int(200)
sma1 = ta.sma(close, inp3)
ema1 = ta.ema(close, inp1)
ema2 = ta.ema(close, inp2)

eplot1 = plot(ema1, 'Slow Ema', color.aqua, 1,  plot.style_linebr)
eplot2 = plot(ema2, 'Fast Ema', color.yellow, 1,  plot.style_linebr)
splot1 = plot(sma1, 'Long MA', close[1] < sma1 ? color.red:color.green, 1, plot.style_line, display = display.none)

cross1 = ta.crossover(ema1, ema2)
cross2 = ta.crossunder(ema1, ema2)

plotchar(cross1, '', '↑', location.belowbar,  close[1] > dalma and dalma > sma1 ? na:color.green, size = size.normal, editable = false)
plotchar(cross2, '', '↓', location.abovebar, close[1] < dalma and dalma < sma1 ? na:color.red, size = size.normal, editable = false)
bgcolor(cross1 and close[1] > dalma ? color.new(color.green, 80):cross2 and close[1] < dalma ? color.new(color.red, 80):na)

valueL = ta.valuewhen(cross1 and close[1] > dalma, close, 0)
valueS = ta.valuewhen(cross2 and close[1] < dalma, close, 0)

//Entries

if cross1 and close[2] > dalma[2] and close[1] > dalma[1]
    strategy.entry('Long', strategy.long)
if cross2 and close[2] < dalma[2] and close[1] < dalma[1]
    strategy.entry('Short', strategy.short)
    
//StochRsi
    
smoothK = input.int(3, "K", minval=1)
smoothD = input.int(15, "D", minval=1)
lengthRSI = input.int(14, "RSI Length", minval=1)
lengthStoch = input.int(8, "Stochastic Length", minval=1)
src = input(close, title="RSI Source")
rsi1 = ta.rsi(src, lengthRSI)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = ta.sma(k, smoothD)

//Cancellations

if k > 75
    strategy.cancel('Long')
if k < 25
    strategy.cancel('Short')
    
//Closures

if ta.crossunder(k, d) and k > 92
    strategy.close('Long')
if ta.crossover(k,d) and k < 8
    strategy.close('Short')

//Exit Percents

takeP = input.float(3, title='Take Profit', group = 'Take Profit and Stop Loss') / 100
stopL = input.float(5.49, title = 'Stop Loss', group = 'Take Profit and Stop Loss')/100
// Pre Directionality

Stop_L = strategy.position_avg_price * (1 - stopL)

Stop_S = strategy.position_avg_price * (1 + stopL)

Take_S= strategy.position_avg_price * (1 - takeP)

Take_L = strategy.position_avg_price * (1 + takeP)
     
     
//Post Excecution
if strategy.position_size > 0
    strategy.exit("Flat", limit=Take_L, stop = Stop_L)

if strategy.position_size < 0
    strategy.exit("Flat", limit=Take_S, stop = Stop_S)