وسائل لوڈ ہو رہے ہیں... لوڈنگ...

آر ایس آئی پر مبنی بلش ٹرینڈ اسٹریٹجی کے بعد

مصنف:چاؤ ژانگ، تاریخ: 2023-12-25 14:32:19
ٹیگز:

img

جائزہ

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

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

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

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

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

فوائد

  • طویل / مختصر پوزیشنوں کا تعین کرنے اور اندھے ٹریڈنگ سے بچنے کے لئے RSI اشارے کا استعمال کریں
  • بہتر اشارے کے اثر کے لئے بہتر RSI پیرامیٹرز
  • معقول ڈبل منافع لینے کا ڈیزائن زیادہ منافع میں مقفل کرنے کے لئے بیچوں میں منافع لینے کی اجازت دیتا ہے
  • ابتدائی سٹاپ نقصان اور ٹریلنگ سٹاپ نقصان بڑے نقصانات کو روکنے

خطرات

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

بہتری

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

خلاصہ

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


/*backtest
start: 2023-12-17 00:00:00
end: 2023-12-24 00:00:00
period: 1m
basePeriod: 1m
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/

//@version=5

strategy(title='RSI Long Strategy', overlay=true, pyramiding=5, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.075)
strat_dir_input = input.string(title='Strategy Direction', defval='long', options=['long', 'short', 'all'])
strat_dir_value = strat_dir_input == 'long' ? strategy.direction.long : strat_dir_input == 'short' ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
//INPUTS


length = input(21)
overSold = input(20)
overBought = input(80)
p = close

vrsi = ta.rsi(p, length)
price = close
var bool long = na
var bool short = na

long := ta.crossover(vrsi, overSold)
short := ta.crossunder(vrsi, overBought)

var float last_open_long = na
var float last_open_short = na

last_open_long := long ? close : nz(last_open_long[1])
last_open_short := short ? close : nz(last_open_short[1])
mpoint=(last_open_long+last_open_short)/2

entry_value = last_open_long
entry_value1 = last_open_short

// Rounding levels to min tick
nround(x) =>
    n = math.round(x / syminfo.mintick) * syminfo.mintick
    n
//
disp_panels = input(true, title='Display info panels?')
fibs_label_off = input(40, title='fibs label offset')
fibs_label_size = input.string(size.normal, options=[size.tiny, size.small, size.normal, size.large, size.huge], title='fibs label size')
r1_x = timenow + math.round(ta.change(time) * fibs_label_off)
r1_y = last_open_short
text1 = 'High : ' + str.tostring(nround(last_open_short))
s1_y = last_open_long
text3 = 'low : ' + str.tostring(nround(last_open_long))

R1_label = disp_panels ? label.new(x=r1_x, y=r1_y, text=text1, xloc=xloc.bar_time, yloc=yloc.price, color=color.orange, style=label.style_label_down, textcolor=color.black, size=fibs_label_size) : na
S1_label = disp_panels ? label.new(x=r1_x, y=s1_y, text=text3, xloc=xloc.bar_time, yloc=yloc.price, color=color.lime, style=label.style_label_up, textcolor=color.black, size=fibs_label_size) : na

label.delete(R1_label[1])
label.delete(S1_label[1])
//
plot(mpoint, title='avreage', color=color.new(color.red, 40), style=plot.style_linebr, linewidth=3, trackprice=true, offset=-9999)
plot(last_open_short, title='high', color=color.new(color.red, 40), style=plot.style_linebr, linewidth=3, trackprice=true, offset=-9999)
plot(last_open_long, title='low', color=color.new(color.blue, 40), style=plot.style_linebr, linewidth=3, trackprice=true, offset=-9999)
//
trend = input(false)
if barstate.islast and trend == true
    line z = line.new(bar_index[1], last_open_short[1], bar_index, last_open_short, extend=extend.both, color=color.red, style=line.style_dashed, width=1)
    line f = line.new(bar_index[1], mpoint[1], bar_index, mpoint, extend=extend.both, color=color.blue, style=line.style_dashed, width=1)
    line w = line.new(bar_index[1], last_open_long[1], bar_index, last_open_long, extend=extend.both, color=color.green, style=line.style_dashed, width=1)
    line.delete(z[1])
    line.delete(f[1])
    line.delete(w[1])
    
//bu = ta.crossover(close, mpoint)
//sz = ta.crossunder(close, mpoint)
//bu1 = ta.crossover(close, last_open_short)
sz1 = ta.crossunder(close, last_open_short)
bu2 = ta.crossover(close, last_open_long)
//sz2 = ta.crossunder(close, last_open_long)
//plotshape(sz, style=shape.triangledown, location=location.abovebar, color=color.new(color.orange, 0), size=size.tiny)
//plotshape(bu, style=shape.triangleup, location=location.belowbar, color=color.new(color.blue, 0), size=size.tiny)
//plotshape(sz1, style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.tiny)
//plotshape(bu1, style=shape.triangleup, location=location.belowbar, color=color.new(color.green, 0), size=size.tiny)
//plotshape(sz2, style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.tiny)
//plotshape(bu2, style=shape.triangleup, location=location.belowbar, color=color.new(color.green, 0), size=size.tiny)

l = bu2
s = sz1 
if l
    strategy.entry('buy', strategy.long)
if s
    strategy.entry('sell', strategy.short)
per(pcnt) =>
    strategy.position_size != 0 ? math.round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss = input.float(title=' stop loss', defval=5, minval=0.01)
los = per(stoploss)
q1 = input.int(title=' qty_percent1', defval=50, minval=1)
q2 = input.int(title=' qty_percent2', defval=50, minval=1)
tp1 = input.float(title=' Take profit1', defval=3, minval=0.01)
tp2 = input.float(title=' Take profit2', defval=5, minval=0.01)
//tp4 = input.float(title=' Take profit4', defval=5, minval=0.01)
strategy.exit('x1', qty_percent=q1, profit=per(tp1), loss=los)
strategy.exit('x2', qty_percent=q2, profit=per(tp2), loss=los)



مزید