
اس حکمت عملی کا بنیادی نظریہ یہ ہے کہ دو مختلف ادوار کی متحرک اوسطوں کا استعمال مارکیٹ میں ردوبدل کے بعد واپسی کے مواقع کو پکڑنے کے لئے کیا جائے۔ جب قیمت طویل مدتی اوسط سے اوپر ہوتی ہے اور مختصر مدت کی اوسط کی طرف واپسی ہوتی ہے تو حکمت عملی زیادہ پوزیشن کھولتی ہے ، اور جب قیمت قلیل مدتی اوسط پر دوبارہ کھڑی ہوتی ہے یا نقصان کی قیمت کو چھوتی ہے تو اس کی جگہ کھڑی کردی جاتی ہے۔ اس حکمت عملی میں رجحان میں واپسی کے خریدنے کے مواقع تلاش کرکے ، رجحان کی صورت حال میں منافع کمانے کی کوشش کی جاتی ہے۔
ایک متحرک اوسط واپسی ٹریکنگ حکمت عملی دو مختلف دورانیہ کی اوسط سے متعلق پوزیشن کے تعلقات کے ذریعے ، قیمتوں میں اضافے کے رجحان میں واپسی کے متعدد مواقع کو پکڑنے کے لئے۔ یہ حکمت عملی رجحان ساز مارکیٹوں کے لئے موزوں ہے ، اور مناسب پیرامیٹرز اور اسٹاپ نقصانات کی ترتیب کے ذریعہ ، رجحان سازی کے حالات میں مستحکم منافع حاصل کیا جاسکتا ہے۔ تاہم ، اس حکمت عملی کو ہلچل والے بازار اور رجحان میں تبدیلی کے دوران کچھ خطرہ لاحق ہے۔ مزید اشارے ، پوزیشن مینجمنٹ کو بہتر بنانے اور متحرک نقصانات کے طریقہ کار کو متعارف کرانے وغیرہ کے ذریعہ اس حکمت عملی کی کارکردگی اور استحکام کو مزید بہتر بنایا جاسکتا ہے۔
/*backtest
start: 2023-03-22 00:00:00
end: 2024-03-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © contapessoal_ivan
// @version=5
strategy("Pullback Strategy",
overlay=true,
initial_capital=1000,
default_qty_type=strategy.percent_of_equity,
default_qty_value=100, // 100% of balance invested on each trade
commission_type=strategy.commission.cash_per_contract,
commission_value=0.005) // Interactive Brokers rate
// Get user input
i_ma1 = input.int(title="MA 1 Length", defval=200, step=10, group="Strategy Parameters", tooltip="Long-term MA")
i_ma2 = input.int(title="MA 2 Length", defval=10, step=10, group="Strategy Parameters", tooltip="Short-term MA")
i_stopPercent = input.float(title="Stop Loss Percent", defval=0.10, step=0.1, group="Strategy Parameters", tooltip="Failsafe Stop Loss Percent Decline")
i_lowerClose = input.bool(title="Exit On Lower Close", defval=false, group="Strategy Parameters", tooltip="Wait for a lower-close before exiting above MA2")
i_startTime = input(title="Start Filter", defval=timestamp("26 Jan 2023 00:00 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime = input(title="End Filter", defval=timestamp("26 Mar 2024 23:59 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")
// Get indicator values
ma1 = ta.sma(close, i_ma1)
ma2 = ta.sma(close, i_ma2)
// Check filter(s)
f_dateFilter = true
// Check buy/sell conditions
var float buyPrice = 0
buyCondition = close > ma1 and close < ma2 and strategy.position_size == 0 and f_dateFilter
sellCondition = close > ma2 and strategy.position_size > 0 and (not i_lowerClose or close < low[1])
stopDistance = strategy.position_size > 0 ? ((buyPrice - close) / close) : na
stopPrice = strategy.position_size > 0 ? buyPrice - (buyPrice * i_stopPercent) : na
stopCondition = strategy.position_size > 0 and stopDistance > i_stopPercent
// Enter positions
if buyCondition
strategy.entry(id="Long", direction=strategy.long)
if buyCondition[1]
buyPrice := open
// Exit positions
if sellCondition or stopCondition
strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
buyPrice := na
// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)
plot(ma1, color=color.blue)
plot(ma2, color=color.orange)