اس حکمت عملی میں تیزی سے اوسط اور سست اوسط کا مجموعہ استعمال کیا جاتا ہے تاکہ رجحان کی سمت کا اندازہ لگایا جاسکے۔ اس حکمت عملی میں وسط اور لمبی لائن کے رجحانات کو پکڑنے کے لئے رجحانات کی تجارت کی جاتی ہے۔ جب تیز اوسط لائن پر سست اوسط لائن کو عبور کرتے ہو تو زیادہ کام کریں ، اور جب تیز اوسط لائن کے نیچے سست اوسط لائن کو عبور کرتے ہو تو خالی کریں ، یہ ایک عام رجحان کی پیروی کرنے والی حکمت عملی ہے۔
اس حکمت عملی میں ٹریڈنگ کے رجحانات کا اندازہ لگانے کے لئے بنیادی طور پر اوسط لائن پر انحصار کیا جاتا ہے۔ خاص طور پر ، اس حکمت عملی میں 5 سیکنڈ کی تیز اوسط اور 21 سیکنڈ کی سست اوسط استعمال کی جاتی ہے۔
جب تیز میڈین لائن پر سست میڈین لائن کو پار کیا جاتا ہے تو ، مارکیٹ کا رجحان زیادہ ہوتا ہے ، اور یہ حکمت عملی اگلے K لائن کھولنے پر زیادہ کام کرتی ہے۔ جب تیز میڈین لائن کے نیچے سست میڈین لائن کو پار کیا جاتا ہے تو ، مارکیٹ کا رجحان ہوا کی طرف جاتا ہے ، اور یہ حکمت عملی اگلے K لائن کھولنے پر خالی ہوجاتی ہے۔
اس کے علاوہ ، حکمت عملی میں جعلی توڑنے کو فلٹر کرنے کے لئے بار بار بار بار بار پیرامیٹر بھی ترتیب دیا گیا ہے۔ اس پیرامیٹر کی ڈیفالٹ قیمت 2 ہے۔ یعنی ، تیز رفتار اوسط لائن کو 2 مسلسل K لائنوں کی ضرورت ہوتی ہے جو سست رفتار اوسط لائن کے اوپر ایک سے زیادہ سگنل جاری کرے گی تاکہ جعلی توڑنے کو مؤثر طریقے سے فلٹر کیا جاسکے۔
کریپٹوکرنسیوں کے لئے ، حکمت عملی میں انتہائی قیمت کا فیصلہ کرنے کی منطق بھی شامل کی گئی ہے۔ تجارت کا اشارہ صرف اس وقت جاری کیا جاتا ہے جب تیز اوسط اور سست اوسط ایک ہی وقت میں انتہائی خطوں میں ہوں۔ یہ بھی جعلی توڑ سے بچنے کے لئے ہے۔
حکمت عملی سے باہر نکلنے کا قاعدہ آسان اور سیدھا ہے ، جب قیمت اسٹاپ نقصان کا نشان لگاتی ہے تو موجودہ پوزیشن سے باہر نکل جاتا ہے۔
مندرجہ ذیل طریقوں سے خطرے کو کم کیا جا سکتا ہے:
اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:
زیادہ مجموعے کی جانچ کی جاسکتی ہے اور اوسط لائن پیرامیٹرز کو تلاش کیا جاسکتا ہے جو موجودہ مارکیٹ کے لئے زیادہ موزوں ہے۔ مثال کے طور پر ، فاسٹ لائن کو 10 سیکنڈ اور سست لائن کو 50 سیکنڈ میں ایڈجسٹ کریں۔
MACD ، KDJ اور دیگر اشارے شامل کرنے کے لئے ٹیسٹ کیا جاسکتا ہے ، اور جعلی توڑ سے بچنے کے لئے سخت شرائط طے کی جاسکتی ہیں۔
موجودہ داخلہ بہت سادہ اور اوسط پر منحصر ہے، جس کو بہتر بنایا جا سکتا ہے:
اس کے علاوہ ، آپ کو روکنے کے لئے دیگر طریقوں کی جانچ پڑتال کی جاسکتی ہے ، جیسے قیمت سے باخبر رہنے کی روک تھام ، تاکہ روک تھام کو جلدی سے متحرک نہ کیا جاسکے۔
جب پوزیشن ختم ہوجاتی ہے تو ، آپ دوبارہ داخل ہوسکتے ہیں ، اس طرح رجحانات کو چھوڑنے کے لئے کم سے کم رکاوٹ کو کم کیا جاسکتا ہے۔
اس حکمت عملی کو ایک بنیادی رجحان کی پیروی کرنے والی حکمت عملی کے طور پر استعمال کیا جاتا ہے ، اس کا بنیادی نظریہ آسان اور براہ راست ہے ، اس میں رجحان کی سمت کا فیصلہ کرنے کے لئے دوہری مساوات کا استعمال کیا جاتا ہے ، اور خطرے کو کنٹرول کرنے کے لئے متحرک رکاوٹ ہے۔ اس کی خوبی یہ ہے کہ یہ سمجھنا اور اس پر عمل درآمد کرنا آسان ہے ، اس رجحان کے مطابق فائدہ اٹھانا ممکن ہے ، اور خطرہ بھی قابو میں ہے۔ تاہم ، اس میں کچھ خامیاں بھی ہیں ، جیسے کہ مارکیٹ میں غیر درست سگنل ، اور رکاوٹ کو بہت جلد متحرک کیا جاسکتا ہے۔ اس کی ضرورت ہے کہ ہم مسلسل اصلاحات کو ایڈجسٹ کریں اور دوسرے تکنیکی اشارے کو فلٹر کریں تاکہ حکمت عملی کو مختلف مارکیٹ کے حالات کے مطابق ڈھال سکے۔
/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title = "Noro's Trend MAs Strategy v2.3", shorttitle = "Trend MAs str 2.3", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)
//Settings
needlong = input(true, "long")
needshort = input(true, "short")
needstops = input(false, "stops")
stoppercent = input(5, defval = 5, minval = 1, maxval = 50, title = "Stop, %")
usefastsma = input(true, "Use fast MA Filter")
fastlen = input(5, defval = 5, minval = 1, maxval = 50, title = "fast MA Period")
slowlen = input(21, defval = 20, minval = 2, maxval = 200, title = "slow MA Period")
bars = input(2, defval = 2, minval = 0, maxval = 3, title = "Bars Q")
needbg = input(false, defval = false, title = "Need trend Background?")
needex = input(true, defval = true, title = "Need extreme? (crypto/fiat only!!!)")
fromyear = input(1900, defval = 1900, 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")
src = close
//PriceChannel 1
lasthigh = highest(src, slowlen)
lastlow = lowest(src, slowlen)
center = (lasthigh + lastlow) / 2
//PriceChannel 2
lasthigh2 = highest(src, fastlen)
lastlow2 = lowest(src, fastlen)
center2 = (lasthigh2 + lastlow2) / 2
//Trend
trend = low > center and low[1] > center[1] ? 1 : high < center and high[1] < center[1] ? -1 : trend[1]
//Bars
bar = close > open ? 1 : close < open ? -1 : 0
redbars = bars == 0 ? 1 : bars == 1 and bar == -1 ? 1 : bars == 2 and bar == -1 and bar[1] == -1 ? 1 : bars == 3 and bar == -1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0
greenbars = bars == 0 ? 1 : bars == 1 and bar == 1 ? 1 : bars == 2 and bar == 1 and bar[1] == 1 ? 1 : bars == 3 and bar == 1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0
//Fast RSI
fastup = rma(max(change(close), 0), 2)
fastdown = rma(-min(change(close), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
//CryptoBottom
mac = sma(close, 10)
len = abs(close - mac)
sma = sma(len, 100)
max = max(open, close)
min = min(open, close)
//Signals
up1 = trend == 1 and (low < center2 or usefastsma == false) and redbars == 1
dn1 = trend == -1 and (high > center2 or usefastsma == false) and greenbars == 1
up2 = high < center and high < center2 and bar == -1 and needex
dn2 = low > center and low > center2 and bar == 1 and needex
up3 = close < open and len > sma * 3 and min < min[1] and fastrsi < 10 ? 1 : 0
//Lines
plot(center2, color = red, linewidth = 3, transp = 0, title = "Fast MA")
plot(center, color = blue, linewidth = 3, transp = 0, title = "Slow MA")
//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)
//Trading
stoplong = up1 == 1 and needstops == true ? close - (close / 100 * stoppercent) : stoplong[1]
stopshort = dn1 == 1 and needstops == true ? close + (close / 100 * stoppercent) : stopshort[1]
if up1 or up2 or up3
strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
strategy.exit("Stop Long", "Long", stop = stoplong)
if dn1
strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
strategy.exit("Stop Short", "Short", stop = stopshort)
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()