
اس حکمت عملی میں ، RSI انڈیکس اور اس کے مطابق چھ چھ حرکی اوسط کے تین سیٹوں کو مختلف پیرامیٹرز کی ترتیب کے حساب سے تشکیل دیا گیا ہے ، جس کے مطابق تین حرکی اوسط بینڈ تشکیل دیئے گئے ہیں ، جس کی بنیاد پر مارکیٹ کے رجحانات کی سمت کا تعین کیا گیا ہے ، اور اس کے مطابق لمبی لائن کا کام کیا گیا ہے۔
یہ حکمت عملی آر ایس آئی اشارے اور چلتی اوسط کی طاقت کو جوڑتی ہے ، جس میں مختلف آر ایس آئی کی ترتیبات کے لئے پیرامیٹرز کے تین سیٹوں کا استعمال کیا جاتا ہے تاکہ مختلف سطحوں پر رجحانات کی تبدیلیوں کو پکڑ لیا جاسکے ، جبکہ چھ حرکت پذیر اوسط کا استعمال کرتے ہوئے کچھ شور کو فلٹر کیا جاسکتا ہے ، جس سے سگنل کی وشوسنییتا میں اضافہ ہوتا ہے۔
ایک واحد RSI اور ایک چلتی اوسط کے مقابلے میں ، یہ مجموعہ فیصلہ سازی کے لئے ایک منظم طریقہ کار کا استعمال کرتا ہے ، پیرامیٹرز کی اصلاح پر انحصار نہیں کرتا ، سائنسی سختی کا استعمال کرتا ہے ، اس پر عمل درآمد آسان اور آسانی سے حاصل ہوتا ہے۔
RSI پورٹیبل منتقل اوسط حکمت عملی پیرامیٹرز کی ترتیب پر منحصر ہے ، اگر پیرامیٹرز کی ترتیب غلط ہو تو ، غلط سگنل پیدا ہوسکتا ہے۔ اس کے علاوہ ، تیزی سے مارکیٹ میں اتار چڑھاؤ بھی غلط سگنل کو متحرک کرسکتا ہے۔
غلط سگنل کے خطرے کو کم کرنے کے لئے ، آر ایس آئی کی سائیکلنگ پیرامیٹرز کو مناسب طریقے سے ایڈجسٹ کیا جانا چاہئے ، یا متحرک اوسط کی سائیکلنگ کی تعداد کو ایڈجسٹ کیا جانا چاہئے ، تاکہ پیرامیٹرز کا بہترین مجموعہ تلاش کیا جاسکے۔
اس حکمت عملی کو مزید بہتر بنانے کے لیے درج ذیل نکات پر غور کیا جا سکتا ہے:
یہ ٹرپل 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)