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


تخلیق کی تاریخ: 2024-02-21 16:18:44 آخر میں ترمیم کریں: 2024-02-21 16:18:44
کاپی: 0 کلکس کی تعداد: 669
1
پر توجہ دیں
1617
پیروکار

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

جائزہ

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

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

  1. RSI اشاریہ کے تین سیٹوں کا حساب لگائیں: RSI فاسٹ لائن Period = 50 ، RSI میڈ لائن Period = 75 ، RSI سست لائن Period = 100
  2. RSI اشارے کے ہر گروپ کے لئے 5، 30، 50، 70، 90، اور 100 ادوار کے لئے ایک سادہ منتقل اوسط یا اشاریہ منتقل اوسط کا حساب لگایا جاتا ہے، جس میں ایک منتقل اوسط بینڈ تشکیل دیا جاتا ہے.
  3. جب فوری لائن RSI موازنہ حرکت پذیر اوسط کی مکمل لائن میں اضافہ ہوتا ہے تو اسے کثیر سر سگنل سمجھا جاتا ہے۔ جب فوری لائن RSI موازنہ حرکت پذیر اوسط کی مکمل لائن میں کمی ہوتی ہے تو اسے خالی سر سگنل سمجھا جاتا ہے۔
  4. درمیانی لائن RSI اور سست لائن RSI ٹریڈنگ سگنل کے لئے موزوں ہیں جو منتقل شدہ اوسط کے مطابق ہیں۔
  5. کسی دیئے گئے تجارتی وقت کے دوران ، جب خریدنے کا اشارہ ہوتا ہے تو 100٪ پوزیشن پر اوور ہیڈ پوزیشن کھولی جاتی ہے۔ جب بیچنے کا اشارہ ہوتا ہے تو اس سے پہلے کی اوور ہیڈ پوزیشنوں کو ختم کردیا جاتا ہے۔

طاقت کا تجزیہ

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

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

خطرے کا تجزیہ

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

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

اصلاح کی سمت

اس حکمت عملی کو مزید بہتر بنانے کے لیے درج ذیل نکات پر غور کیا جا سکتا ہے:

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-01-21 00:00:00
end: 2024-02-20 00:00:00
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/
// © exlux99

//@version=4

strategy(title="3 RSI MA movement crypto strategy", overlay=true, initial_capital = 100, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.03, pyramiding=1  )

///////////////
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2019, title = "From Year", minval = 1970)
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true

source = input(ohlc4)

RSIFast  = rsi(source, 50)
RSINorm  = rsi(source, 75)
RSISlow = rsi(source, 100)

// plot(RSIFast, color=color.silver, style=plot.style_area, histbase=50)
// plot(RSINorm, color=#98b8be, style=plot.style_area, histbase=50)
// plot(RSISlow, color=#be9e98, style=plot.style_area, histbase=50)

// plot(RSIFast, color=color.gray, style=plot.style_line, linewidth=1)
// plot(RSINorm, color=color.purple, style=plot.style_line, linewidth=2)
// plot(RSISlow, color=color.black, style=plot.style_line, linewidth=3)

exponential = false//input(false, title="Exponential MA")

src = (RSIFast)

ma05 = exponential ? ema(src, 05) : sma(src, 05)
ma30 = exponential ? ema(src, 30) : sma(src, 30)
ma50 = exponential ? ema(src, 50) : sma(src, 50)
ma70 = exponential ? ema(src, 70) : sma(src, 70)
ma90 = exponential ? ema(src, 90) : sma(src, 90)
ma100 = exponential ? ema(src, 100) : sma(src, 100)

leadMAColor = change(ma30)>=0 and ma30>ma100 ? color.lime            : change(ma30)<0  and ma30>ma100 ? color.red            : change(ma30)<=0 and ma30<ma100 ? color.maroon            : change(ma30)>=0 and ma30<ma100 ? color.green            : color.gray
maColor(ma, maRef) => 
              change(ma)>=0 and ma30>maRef ? color.lime            : change(ma)<0  and ma30>maRef ? color.red            : change(ma)<=0 and ma30<maRef ? color.maroon            : change(ma)>=0 and ma30<maRef ? color.green            : color.gray
            
// plot( ma30, color=maColor(ma30,ma100), style=plot.style_line, title="MMA30", linewidth=2)
// plot( ma50, color=maColor(ma50,ma100), style=plot.style_line, title="MMA50", linewidth=2)
// plot( ma70, color=maColor(ma70,ma100), style=plot.style_line, title="MMA70", linewidth=2)
// plot( ma90, color=maColor(ma90,ma100), style=plot.style_line, title="MMA90", linewidth=2)

long0=(leadMAColor==color.lime and maColor(ma30,ma100)==color.lime and maColor(ma50,ma100)==color.lime and maColor(ma70,ma100)==color.lime and maColor(ma90,ma100)==color.lime ) or (leadMAColor==color.green and maColor(ma30,ma100)==color.green and maColor(ma50,ma100)==color.green and maColor(ma70,ma100)==color.green and maColor(ma90,ma100)==color.green )
exit0=leadMAColor==color.maroon and maColor(ma30,ma100)==color.maroon and maColor(ma50,ma100)==color.maroon and maColor(ma70,ma100)==color.maroon and maColor(ma90,ma100)==color.maroon 


exponential1 = false//input(false, title="Exponential MA")

src1 = (RSINorm)

ma051 = exponential1 ? ema(src1, 05) : sma(src1, 05)
ma301 = exponential1 ? ema(src1, 30) : sma(src1, 30)
ma501 = exponential1 ? ema(src1, 50) : sma(src1, 50)
ma701 = exponential1 ? ema(src1, 70) : sma(src1, 70)
ma901 = exponential1 ? ema(src1, 90) : sma(src1, 90)
ma1001 = exponential1 ? ema(src1, 100) : sma(src1, 100)

leadMAColor1 = change(ma051)>=0 and ma051>ma1001 ? color.lime            : change(ma051)<0  and ma051>ma1001 ? color.red            : change(ma051)<=0 and ma051<ma1001 ? color.maroon            : change(ma051)>=0 and ma051<ma1001 ? color.green            : color.gray
maColor1(ma, maRef) => 
              change(ma)>=0 and ma05>maRef ? color.lime            : change(ma)<0  and ma05>maRef ? color.red            : change(ma)<=0 and ma05<maRef ? color.maroon            : change(ma)>=0 and ma05<maRef ? color.green            : color.gray
            
// plot( ma051, color=leadMAColor1, style=plot.style_line, title="MMA05", linewidth=1)
// plot( ma301, color=maColor1(ma301,ma1001), style=plot.style_line, title="MMA30", linewidth=3)
// plot( ma501, color=maColor1(ma501,ma1001), style=plot.style_line, title="MMA50", linewidth=3)
// plot( ma701, color=maColor1(ma701,ma1001), style=plot.style_line, title="MMA70", linewidth=3)
// plot( ma901, color=maColor1(ma901,ma1001), style=plot.style_line, title="MMA90", linewidth=3)

long1=(leadMAColor1==color.lime and maColor1(ma301,ma1001)==color.lime and maColor1(ma501,ma1001)==color.lime and maColor1(ma701,ma1001)==color.lime and maColor1(ma901,ma1001)==color.lime ) or (leadMAColor1==color.green and maColor1(ma301,ma1001)==color.green and maColor1(ma501,ma1001)==color.green and maColor1(ma701,ma1001)==color.green and maColor1(ma901,ma100)==color.green )
exit1=leadMAColor1==color.maroon and maColor1(ma301,ma1001)==color.maroon and maColor1(ma501,ma1001)==color.maroon and maColor1(ma701,ma1001)==color.maroon and maColor1(ma901,ma1001)==color.maroon 

 

exponential2 = false//input(false, title="Exponential MA")

src2 = (RSISlow)

ma052 = exponential2 ? ema(src2, 05) : sma(src2, 05)
ma302 = exponential2 ? ema(src2, 30) : sma(src2, 30)
ma502 = exponential2 ? ema(src2, 50) : sma(src2, 50)
ma702 = exponential2 ? ema(src2, 70) : sma(src2, 70)
ma902 = exponential2 ? ema(src2, 90) : sma(src2, 90)
ma1002 = exponential2 ? ema(src2, 100) : sma(src2, 100)

leadMAColor2 = change(ma052)>=0 and ma052>ma1002 ? color.lime            : change(ma052)<0  and ma052>ma1002 ? color.red            : change(ma052)<=0 and ma052<ma1002 ? color.maroon            : change(ma052)>=0 and ma052<ma1002 ? color.green            : color.gray
maColor2(ma, maRef) => 
              change(ma)>=0 and ma05>maRef ? color.lime            : change(ma)<0  and ma05>maRef ? color.red            : change(ma)<=0 and ma05<maRef ? color.maroon            : change(ma)>=0 and ma05<maRef ? color.green            : color.gray
            
// plot( ma052, color=leadMAColor2, style=plot.style_line, title="MMA05", linewidth=1)
// plot( ma302, color=maColor2(ma302,ma1001), style=plot.style_line, title="MMA30", linewidth=4)
// plot( ma502, color=maColor2(ma502,ma1001), style=plot.style_line, title="MMA50", linewidth=4)
// plot( ma702, color=maColor2(ma701,ma1001), style=plot.style_line, title="MMA70", linewidth=4)
// plot( ma902, color=maColor2(ma901,ma1001), style=plot.style_line, title="MMA90", linewidth=4)

long2=(leadMAColor2==color.lime and maColor2(ma302,ma1002)==color.lime and maColor2(ma502,ma1002)==color.lime and maColor2(ma702,ma1002)==color.lime and maColor2(ma902,ma1002)==color.lime ) or (leadMAColor2==color.green and maColor2(ma302,ma1002)==color.green and maColor2(ma502,ma1002)==color.green and maColor2(ma701,ma1002)==color.green and maColor2(ma901,ma1002)==color.green )
exit2=leadMAColor2==color.maroon and maColor2(ma302,ma1002)==color.maroon and maColor2(ma502,ma1002)==color.maroon and maColor2(ma702,ma1002)==color.maroon and maColor2(ma902,ma1002)==color.maroon 


long= long1 or long2
exit=  exit1 or exit2


// ------------------------- Strategy Logic --------------------------------- //
var longOpened = false
var shortOpened = false
var int timeOfBuy = na

 

longConditionLongOnly= long and not longOpened 

if longConditionLongOnly
    longOpened := true
    timeOfBuy := time


longExitSignal = exit
exitLongConditionLongOnly = longOpened[1] and longExitSignal

if exitLongConditionLongOnly
    longOpened := false
    timeOfBuy := na


//plotshape(longConditionLongOnly, color=color.green, text= "Buy", location= location.belowbar,style= shape.labelup, textcolor=color.white, size = size.tiny, title="Buy Alert",editable=false, transp=60)
//plotshape(exitLongConditionLongOnly, color=color.red, text= "exit", location= location.abovebar,style= shape.labeldown, textcolor=color.white, size = size.tiny, title="Sell Alert", editable=false, transp=60)

//alertcondition(longConditionLongOnly ,title='Buy Alert', message='Buy Alert')
//alertcondition(exitLongConditionLongOnly , title='exit Alert', message='exit Alert')

if(time_cond)
    strategy.entry("long",1,when=longConditionLongOnly)
    strategy.entry("short",0,when=exitLongConditionLongOnly)