
یہ حکمت عملی قیمتوں کے رجحانات اور اوورلوڈ اوورلوڈ کو WaveTrend اشارے کے ذریعہ طے کرتی ہے ، جس میں RSI اشارے کے فلٹر سگنل کے ساتھ مل کر ، رجحانات کی پیروی کرنے کا طریقہ استعمال کیا جاتا ہے ، اور اوورلوڈ اوورلوڈ پوزیشن پر الٹا کام کیا جاتا ہے۔
یہ حکمت عملی قیمت کے رجحان کی سمت کا تعین کرنے کے لئے ویو ٹرینڈ اشارے کا استعمال کرتی ہے۔ ویو ٹرینڈ اشارے رینبو اشارے پر مبنی بہتری پر مبنی ہے ، جس میں ہیکن - آشی اوسط اور قیمت کی مطلق قیمت کے مابین فرق کا حساب کتاب کرکے قیمت کے رجحان کی سمت کا تعین کیا گیا ہے۔ آر ایس آئی اشارے کے ساتھ مل کر اوور بیئر اور اوور سیل کی صورتحال کا تعین کرنے کے لئے ایک تجارتی سگنل جاری کیا گیا ہے۔
اس حکمت عملی میں WaveTrend فارمولہ یہ ہے:
esa = ema(hlc3, 10)
d = ema(abs(hlc3 - esa), 10)
ci = (hlc3 - esa) / (0.015 * d)
wt = ema(ci, 21)
اس میں سے ، esa ہیکن - ایشی اوسط کی حساب کتاب ہے ، اور d ہیکن - ایشی اوسط اور قیمت کی مطلق قدر کے فرق کی اوسط ہے۔ c یہ ایک نام نہاد موافقت کا فاصلہ ہے ، جو قیمت میں اتار چڑھاؤ کی شدت کی عکاسی کرتا ہے۔ wt سی کی اوسط ہے ، جس میں قیمت کے رجحان کی سمت کا فیصلہ کیا جاتا ہے ، جو زیادہ تر خالی سر کے اہم اشارے ہیں۔
آر ایس آئی اشارے کا استعمال اوور بیو اور اوور سیلنگ کا تعین کرنے کے لئے کیا جاتا ہے۔ آر ایس آئی کا حساب کتاب فارمولا ہے:
rsiup = rma(max(change(close), 0), 14)
rsidown = rma(-min(change(close), 0), 14)
rsi = rsidown == 0 ? 100 : rsiup == 0 ? 0 : 100 - (100 / (1 + rsiup / rsidown))
اس کی معیاری قدر 0-100 ہے، 70 سے زیادہ خریدنے والے زون، 30 سے کم فروخت زون.
جب RSI 25 سے کم ہوتا ہے تو ، WaveTrend 60 سے کم ہوتا ہے ، اور جب RSI 75 سے زیادہ ہوتا ہے تو ، WaveTrend 60 سے زیادہ ہوتا ہے۔
یہ حکمت عملی مندرجہ ذیل فوائد رکھتی ہے:
اس حکمت عملی کے کچھ خطرات بھی ہیں:
ردعمل:
اس حکمت عملی کو مندرجہ ذیل طریقوں سے بہتر بنایا جاسکتا ہے:
فیصلے کے اشارے کو تبدیل کریں یا فیصلے کے اشارے میں اضافہ کریں ، سگنل کی درستگی کو بہتر بنائیں۔ مثال کے طور پر فیصلہ کرنے والے اشارے جیسے MACD ، KD شامل کریں۔
پیرامیٹرز کی ترتیبات کو بہتر بنائیں ، مختلف قسم کے تجارت کے مطابق۔ مثال کے طور پر ہموار دوروں کو ایڈجسٹ کریں ، بہترین پیرامیٹرز کا مجموعہ تلاش کریں۔
ٹریکنگ اسٹاپ اسٹریٹجی میں شامل ہوں ، تاکہ انفرادی نقصانات کو مؤثر طریقے سے کنٹرول کیا جاسکے۔ مثال کے طور پر بیلنس فیصد اسٹاپ ، موبائل اسٹاپ وغیرہ۔
مختلف ذخیرہ کرنے کی حکمت عملی پر غور کریں۔ مثال کے طور پر ، مارٹینگل ذخیرہ کرنے کی بجائے اصل مقررہ مقدار میں ذخیرہ کرنا۔
تعمیل کی حد کے پیرامیٹرز کو بہتر بنائیں ، بہترین پیرامیٹرز تلاش کریں تاکہ فیصلہ کی درستگی کو بہتر بنایا جاسکے
اس حکمت عملی کی مجموعی سوچ واضح ہے ، قیمت کے رجحانات کا تعین کرنے کے لئے اتار چڑھاؤ کی طاقت کے اشارے کا استعمال کرتا ہے ، اور تجارتی اشارے کو مؤثر طریقے سے فلٹر کرتا ہے۔ حکمت عملی کو بہتر بنانے کی گنجائش زیادہ ہے ، اور اس حکمت عملی کو زیادہ مستحکم اور قابل اعتماد بنانے کے لئے متعدد زاویوں سے بہتری لائی جاسکتی ہے۔ پیرامیٹرز کو ایڈجسٹ کرکے اصلاح ، مختلف تجارتی اقسام کے مطابق ڈھال سکتی ہے ، اور اس کی مزید جانچ پڑتال کے قابل ہے۔
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy(title = "Noro's WaveTrender Strategy v1.0", shorttitle = "WaveTrender str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 10)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usemar = input(false, defval = false, title = "Use Martingale")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
showarr = input(true, defval = true, title = "Show Arrows")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//RSI
rsiup = rma(max(change(close), 0), 14)
rsidown = rma(-min(change(close), 0), 14)
rsi = rsidown == 0 ? 100 : rsiup == 0 ? 0 : 100 - (100 / (1 + rsiup / rsidown))
//WaveTrend
esa = ema(hlc3, 10)
d = ema(abs(hlc3 - esa), 10)
ci = (hlc3 - esa) / (0.015 * d)
wt = ema(ci, 21)
//Body
body = abs(close - open)
abody = sma(body, 10)
//Signals
bar = close > open ? 1 : close < open ? -1 : 0
overs = rsi < 25 and wt < -60
overb = rsi > 75 and wt > 60
up1 = (strategy.position_size == 0 or close < strategy.position_avg_price) and overs and bar == -1
dn1 = (strategy.position_size == 0 or close > strategy.position_avg_price) and overb and bar == 1
exit = (strategy.position_size > 0 and overs == false) or (strategy.position_size < 0 and overb == false)
//Arrows
col = exit ? black : up1 or dn1 ? blue : na
needup = up1
needdn = dn1
needexitup = exit and strategy.position_size < 0
needexitdn = exit and strategy.position_size > 0
plotarrow(showarr and needup ? 1 : na, colorup = blue, colordown = blue, transp = 0)
plotarrow(showarr and needdn ? -1 : na, colorup = blue, colordown = blue, transp = 0)
plotarrow(showarr and needexitup ? 1 : na, colorup = black, colordown = black, transp = 0)
plotarrow(showarr and needexitdn ? -1 : na, colorup = black, colordown = black, transp = 0)
//Trading
profit = exit ? ((strategy.position_size > 0 and close > strategy.position_avg_price) or (strategy.position_size < 0 and close < strategy.position_avg_price)) ? 1 : -1 : profit[1]
mult = usemar ? exit ? profit == -1 ? mult[1] * 2 : 1 : mult[1] : 1
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 * mult : lot[1]
if up1
if strategy.position_size < 0
strategy.close_all()
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if dn1
if strategy.position_size > 0
strategy.close_all()
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
if exit
strategy.close_all()