
اس حکمت عملی کا بنیادی نظریہ یہ ہے کہ جب قیمت SMA200 سے نیچے اور نیچے کی طرف رجحان ، کم حجم اور کم اتار چڑھاؤ میں ہو تو اس کی خریداری کی جائے ، اور اس میں اسٹاپ نقصان اور اسٹاپ آؤٹ پوڈ لگائے جائیں۔ اس حکمت عملی میں غیر معمولی باہر نکلنے کا طریقہ کار بھی ہے ، یعنی جب RSI 70 سے زیادہ ہو یا اسٹاپ نقصان کی پہلے سے طے شدہ حد تک پہنچ جائے۔
یہ حکمت عملی متعدد تکنیکی اشارے کے مجموعی استعمال کے ذریعے ، رجحان فلٹرنگ اور تجارت کے حجم ، اتار چڑھاؤ کی شرائط کے ساتھ مل کر ، مخصوص حالات میں تجارت کرتی ہے۔ اس کے ساتھ ہی ، واضح اسٹاپ نقصان اور غیر معمولی باہر نکلنے کا طریقہ کار ترتیب دے کر ، خطرے کو مؤثر طریقے سے کنٹرول کیا جاسکتا ہے۔ تاہم ، اس حکمت عملی میں کچھ حدود بھی ہیں ، جیسے پیرامیٹرز کا انتخاب ، مارکیٹ کی غیر معمولی اور دیگر عوامل جو حکمت عملی کی کارکردگی کو متاثر کرسکتے ہیں۔ مستقبل میں ، اس حکمت عملی کو مزید بہتر بنانے کے لئے مزید اشارے ، پیرامیٹرز کی ترتیب کو بہتر بنانے ، خطرے کے انتظام میں شامل کرنے وغیرہ کو متعارف کرایا جاسکتا ہے۔
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Strategia Stop Loss & Take Profit z Filtrem Trendu i Wyjątkiem", shorttitle="Smooth MA SL & TP with Exception", overlay=true)
// Parametry
tp_multiplier = input.float(1.5, title="Mnożnik Take Profit")
sl_percent = input.float(5, title="Procent Stop Loss")
wait_bars = input.int(3, title="Liczba Oczekiwanych Świec")
sma_period = input.int(200, title="Okres SMA")
rsi_period = input.int(14, title="Okres RSI")
vol_ma_period = input.int(20, title="Okres Średniej Wolumenu")
tr_ma_period = input.int(20, title="Okres Średniej Rzeczywistego Zakresu")
// Obliczenie Gładkiej Średniej Kroczącej
sma = ta.sma(close, sma_period)
// Obliczenie RSI
rsi = ta.rsi(close, rsi_period)
// Filtr Trendu
uptrend = close > sma
downtrend = close < sma
// Warunek konsolidacji: Niski wolumen i niska zmienność
niski_wolumen = volume < ta.sma(volume, vol_ma_period)
niska_zmienosc = ta.tr(true) < ta.sma(ta.tr(true), tr_ma_period)
// Warunek Wejścia (Long): Cena poniżej SMA 200 i filtr trendu w strefie czerwonej
warunek_wejscia = close < sma and niski_wolumen and niska_zmienosc and not uptrend
// Warunek Wyjścia ze strategii
warunek_wyjscia = downtrend and close > sma and ta.crossover(close, sma)
// Ustalanie Stop Loss i Take Profit
var float stop_loss = na
var float take_profit = na
var int indeks_wejscia = na
if (warunek_wejscia)
stop_loss := close * (1 - sl_percent / 100)
take_profit := close * (1 + tp_multiplier)
indeks_wejscia := bar_index
// Handel
if (warunek_wejscia)
strategy.entry("Long", strategy.long)
// Warunek Wyjścia: RSI w strefie wykupienia lub Stop Loss/Take Profit
if (strategy.opentrades != 0)
if (rsi > 70)
strategy.exit("Take Profit/Stop Loss", "Long", limit=take_profit)
else if (bar_index - indeks_wejscia == wait_bars)
strategy.exit("Take Profit/Stop Loss", "Long", stop=stop_loss, limit=take_profit)
// Wyjątek: Warunek Wyjścia z Longów na podstawie zmiany trendu
if (warunek_wyjscia)
strategy.close("Long")
// Rysowanie RSI
rsi_plot = plot(rsi, title="RSI", color=color.blue)
// Rysowanie Gładkiej Średniej Kroczącej
sma_plot = plot(sma, color=color.gray, title="Smooth MA", linewidth=2)
// Rysowanie Filtru Trendu
fill(sma_plot, rsi_plot, color=downtrend ? color.new(color.red, 90) : na)