
یہ ایک تجارتی حکمت عملی ہے جس میں ایک متحرک اوسط لکیری فورک شکل کا استعمال کیا جاتا ہے ، جس میں رجحان کی لائن مسلسل اوپر کی طرف بڑھتی ہے۔ جب تیز لائن نیچے کی طرف سے سست لائن کو توڑتی ہے تو ، سونے کی فورک سگنل بنتی ہے۔ اگر سونے کی فورک کے بعد کا رجحان بڑھتا رہتا ہے تو ، اس مرحلے میں زیادہ پوزیشن لگانا ممکن ہے۔ جب قیمت اسٹاپ نقصان یا اسٹاپ لائن تک پہنچ جاتی ہے تو ، آپ اسٹاپ نقصان یا اسٹاپ کو منتخب کرسکتے ہیں۔
یہ حکمت عملی بنیادی طور پر حرکت پذیر اوسط کی گولڈ فورک شکل کی بنیاد پر داخلے کے وقت کا فیصلہ کرتی ہے۔ خاص طور پر ، ایک تیز رفتار حرکت پذیر اوسط MA1 اور ایک آہستہ چلنے والی اوسط MA2 کی وضاحت کریں۔ جب MA1 نیچے کی طرف سے MA2 کو توڑتا ہے تو ، اس کا مطلب ہے کہ زیادہ کام کرنا ہے۔
قلیل مدتی گولڈ فورکس کی وجہ سے جھوٹے سگنل سے بچنے کے لئے ، حکمت عملی میں زاویہ کی کمی کا فیصلہ شامل کیا گیا ہے ، یعنی خریدنے کا سگنل صرف اس وقت ٹرگر کیا جاتا ہے جب ایم اے 2 کا زاویہ مقررہ قیمت سے زیادہ ہو۔ اس سے کچھ غیر رجحان ساز قلیل مدتی اضافے کو فلٹر کیا جاسکتا ہے۔
حکمت عملی میں ایک ہی وقت میں اسٹاپ اور اسٹاپ لائنز طے کی جاتی ہیں۔ اسٹاپ لائن مارکیٹ میں اچانک موڑ سے ہونے والے نقصان سے بچنے کے لئے استعمال کی جاتی ہے ، اور اسٹاپ لائن منافع بخش روانگی کو لاک کرنے کے لئے استعمال کی جاتی ہے۔ خاص طور پر داخلے کی قیمت کی ایک خاص فیصد حد طے کی جاتی ہے۔
جب قیمت میں اضافہ رکنے کی حد تک پہنچ جاتا ہے تو ، حکمت عملی اسٹاپ اور آؤٹ پٹ کا انتخاب کرتی ہے۔ اس کے علاوہ ، اگر اس دور میں قیمت میں اضافہ زیادہ ہوتا ہے تو ، حکمت عملی ایک بار پھر کم کرنے کے لئے ریورس آپریشن کرتی ہے۔
یہ ایک سادہ اور بدیہی رجحان ٹریکنگ حکمت عملی ہے۔ اس کے درج ذیل فوائد ہیں:
اس حکمت عملی کے کچھ خطرات بھی ہیں جن کے بارے میں آگاہ ہونا ضروری ہے:
اس حکمت عملی کو مزید بہتر بنانے کے لیے مندرجہ ذیل نکات پر غور کیا جا سکتا ہے۔
مجموعی طور پر ، یہ ایک سادہ اور عملی رجحان سے باخبر رہنے کی حکمت عملی ہے۔ اس کے کچھ فوائد ہیں ، لیکن اس میں خطرات پر بھی توجہ دینے کی ضرورت ہے۔ مزید پیرامیٹرز کی اصلاح ، اشارے کے انتخاب ، اسٹاپ نقصان کی روک تھام کی ترتیب وغیرہ کے ذریعہ بہتری لانے سے بہتر استحکام حاصل کیا جاسکتا ہے۔ لیکن کوئی بھی حکمت عملی مارکیٹ کے سسٹم کے خطرے سے مکمل طور پر بچ نہیں سکتی ، خطرے سے آگاہی پیدا کرنے ، محتاط تجارت کی ضرورت ہے۔
/*backtest
start: 2023-11-05 00:00:00
end: 2023-11-12 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//written by [email protected]
//@version=5
strategy(title="MJ-Dual Moving Average",initial_capital=10000,overlay=false)
// import TradingView/ZigZag/6 as ZigZagLib
// // Create Zig Zag instance from user settings.
// var zigZag = ZigZagLib.newInstance(
// ZigZagLib.Settings.new(
// input.float(5.0, "Price deviation for reversals (%)", 0.00001, 100.0, 0.5, "0.00001 - 100"),
// input.int(10, "Pivot legs", 2),
// input(#2962FF, "Line color"),
// input(true, "Extend to last bar"),
// input(true, "Display reversal price"),
// input(true, "Display cumulative volume"),
// input(true, "Display reversal price change", inline = "priceRev"),
// input.string("Absolute", "", ["Absolute", "Percent"], inline = "priceRev"),
// true)
// )
// // Update 'zigZag' object on each bar with new pivots, volume, lines, labels.
// zigZag.update()
// // plot(zigZag.pivots, "zigZag")
ma1= ta.sma(close,8)
ma2= ta.sma(close,21)
angleCriteria = input.int(title="Angle", defval=7, minval=1, maxval=13)
i_lookback = input.int(2, "Angle Period", minval = 1)
i_atrPeriod = input.int(10, "ATR Period", minval = 1)
i_angleLevel = input.int(6, "Angle Level", minval = 1)
i_maSource = input.source(close, "MA Source")
TP = input.float(1, "TP", minval = 0.1)
SL = input.float(1, "SL", minval = 0.1)
f_angle(_src, _lookback, _atrPeriod) =>
rad2degree = 180 / 3.141592653589793238462643 //pi
ang = rad2degree * math.atan((_src[0] - _src[_lookback]) / ta.atr(_atrPeriod)/_lookback)
ang
_angle = f_angle(ma2, i_lookback, i_atrPeriod)
plot(ta.atr(i_atrPeriod), "atr")
// plot(ma1,color=#FF0000)
// plot(ma2,color=#00FF00)
crosso=ta.crossover(ma1,ma2)
crossu=ta.crossunder(ma1,ma2)
_lookback = 15
f_somethingHappened(_cond, _lookback) =>
bool _crossed = false
for i = 1 to _lookback
if _cond[i]
_crossed := true
_crossed
longcrossed = f_somethingHappened(crosso,_lookback)
shortcrossed = f_somethingHappened(crossu,_lookback)
atr_factor = 1
atr = ta.atr(i_atrPeriod)
e = atr * atr_factor
afr = close
afr := nz(afr[1], afr)
atr_factoryHigh = close + e
atr_factoryLow = close - e
if atr_factoryLow > afr
afr := atr_factoryLow
if atr_factoryHigh < afr
afr := atr_factoryHigh
// plot(afr, "afr", display = display.data_window)
// plot(atr_factoryHigh, "afr", color = color.yellow, display = display.all)
// plot(atr_factoryLow, "afr", color = color.green, display = display.all)
inLong() => strategy.position_size > 0
inShort() => strategy.position_size < 0
inZero() => not inLong() and not inShort()
long = longcrossed and _angle > angleCriteria
short= shortcrossed and _angle < -(angleCriteria)
plotshape(long, "Buy", shape.arrowup, location.belowbar, color = #FF0000)
plotshape(short, "Sell", shape.arrowdown, location.abovebar, color = #00FF00)
var longTp = 0.0
var longSl = 0.0
var shortTp = 0.0
var shortSl = 0.0
[b_middle, b_high, b_low] = ta.bb(close, 20, 2)
entry_price = strategy.opentrades.entry_price(0)
if inZero()
if short
longTp := close * (1 + TP/100)
longSl := close * (1 - SL/100)
strategy.entry("LONG",strategy.long, comment = "tp:" + str.tostring(longTp) + " sl:" + str.tostring(longSl))
if long
shortTp := close * (1 - TP/100)
shortSl := close * (1 + SL/100)
strategy.entry("SHORT",strategy.short, comment = "tp:" + str.tostring(shortTp) + " sl:" + str.tostring(shortSl))
if inLong()
// if close - entry_price > close * 0.005
// longSl := entry_price + close * 0.001
if high > longTp
strategy.close("LONG")
if (close - open) > close * 0.014
shortTp := close * (1 - TP/100)
shortSl := close * (1 + SL/100)
strategy.entry("SHORT",strategy.short, comment = "tp:" + str.tostring(shortTp) + " sl:" + str.tostring(shortSl))
if close < longSl
strategy.close("LONG")
if open >= b_high and close >= b_high
strategy.close("LONG")
// if high > b_high and entry_price < high
// strategy.close("LONG")
if inShort()
// if entry_price - close > close * 0.005
// shortSl := entry_price - close * 0.001
if low < shortTp
strategy.close("SHORT")
if (open - close) > close * 0.014
longTp := close * (1 + TP/100)
longSl := close * (1 - SL/100)
strategy.entry("LONG",strategy.long, comment = "tp:" + str.tostring(longTp) + " sl:" + str.tostring(longSl))
if close > shortSl
strategy.close("SHORT")
if open < b_low and close < b_low
strategy.close("SHORT")
// if low < b_low and entry_price > low
// strategy.close("SHORT")