
اس حکمت عملی میں نسبتا trades حجم کے اشارے اور قیمتوں کے رویے کے فیصلے کے رجحان کے اشارے کے ساتھ مل کر ، رجحان کی پیروی اور توڑنے کے لئے ایک مربوط خودکار تجارتی نظام حاصل کیا گیا۔ جب تجارت میں اضافہ ہوتا ہے اور اس میں کم اتار چڑھاؤ ہوتا ہے تو خریدیں ، اسٹاپ نقصان اور قیمتوں کے رویے کے مطابق اسٹاپ نقصان کا فیصلہ کریں۔
بولنگر بینڈ کا استعمال کرتے ہوئے قیمتوں میں کم اتار چڑھاؤ کا تعین کریں۔ یہ خاص طور پر اے ٹی آر اور بی او ایل ایل چینل کی بینڈوڈتھ کا موازنہ کرنے کے لئے استعمال کیا جاتا ہے۔
پچھلے N دنوں میں اوسط ٹرانزیکشن کا حساب لگائیں ، اور موجودہ حجم کا موازنہ کریں کہ آیا ٹرانزیکشن میں اضافہ ہوا ہے۔
جب قیمت کم ہوتی ہے تو ، حجم میں اضافہ ہوتا ہے ، اور جب قیمت میں کم اتار چڑھاؤ ہوتا ہے تو خریدتے ہیں۔
اسٹاپ نقصان کا تعین کریں ، کم سے کم قیمتوں کی تازہ کاریوں کو ٹریک کریں۔
جب قیمت نیچے کی طرف ٹوٹ جاتی ہے تو اسٹاپ نقصان ہوتا ہے۔
جب قیمت ایک کثیر جہتی نگلنے کا نمونہ بنتی ہے تو رک جاتا ہے۔
ٹرانسمیشن اور اتار چڑھاؤ کے اشارے کو ملا کر ، جعلی توڑ کو مؤثر طریقے سے فلٹر کیا جاسکتا ہے۔
ٹرینڈ ٹریکنگ سٹاپ نقصان کا استعمال کرتے ہوئے ، زیادہ سے زیادہ منافع کو لاک کیا جاسکتا ہے۔
ایک سٹاپ سگنل کے طور پر کثیر سر نگلنے اور اس طرح کی شکل کے فیصلے کا استعمال کرتے ہوئے، آپ کو رجحان کے الٹ کے موقع پر بروقت روکنے کی اجازت دیتا ہے.
حکمت عملی بہت آسان ہے، آسانی سے سمجھنے اور اس پر عمل کرنے کے لئے.
سٹاپ نقصان اور سٹاپ اسٹاپ کے قواعد واضح ہیں ، جس سے بندش کے انٹیسیپیٹ کی غیر یقینی صورتحال کم ہوجاتی ہے۔
اس کے نتیجے میں ، طلباء کے لئے بہترین داخلے کے نقطہ نظر سے محروم ہونے کا خطرہ ہے۔
ایک سے زیادہ سر نگلنے جیسی شکلوں کا فیصلہ روکنے کے سگنل کے طور پر کافی قابل اعتماد نہیں ہوسکتا ہے ، اور اس سے پہلے ہی روکنے کا خطرہ ہے۔
اسٹاپ نقصان کی حکمت عملی کے بعد ، ایک ہی نقصان کا زیادہ خطرہ ہوسکتا ہے۔
معقول پیرامیٹرز کو ایڈجسٹ کرنے کی ضرورت ہے ، جیسے اے ٹی آر اور ٹرانزیکشن حجم سائیکل ، ورنہ بار بار تجارت ہوسکتی ہے۔
اسٹاپ نقصان کے قواعد پر توجہ دینے اور ان کو بہتر بنانے کی ضرورت ہے تاکہ غیر ضروری طور پر پوزیشنوں کو صاف کرنے کے امکانات کو کم کیا جاسکے۔
دوسرے اشارے کے ساتھ مل کر انٹری سگنل کو فلٹر کرنے کی کوشش کریں ، جیسے MACD وغیرہ
اے ٹی آر اور ٹرانزیکشن حجم سائیکل پیرامیٹرز کو بہتر بنانا ، بار بار تجارت کا خطرہ کم کرنا
دوسرے اسٹاپ سگنل ، جیسے قیمتوں میں کمی کے راستے سے باہر نکلنے کے طریقہ کار کی کوشش کریں۔
مزید منافع کو لاک کرنے کے لئے متحرک طور پر اسٹاپ نقصان کی جگہ کو ایڈجسٹ کرنے کے امکانات کی تحقیق کریں۔
کارکردگی پر اثر انداز ہونے والی پوزیشنوں کے مختلف دوروں کی جانچ پڑتال کریں اور بہترین پوزیشنوں کی مدت تلاش کریں.
مختلف اقسام کے معاہدے کے اثرات کا جائزہ لیں اور بہترین مناسب اقسام کو تلاش کریں
اس حکمت عملی کا مجموعی طور پر سادہ اور بدیہی ہے ، جو ٹرینڈ ٹریکنگ کی حکمت عملی کو ٹرانسمیشن اشارے اور قیمت کے رویے کے فیصلے کو جوڑ کر حاصل کرتا ہے۔ اس کا فائدہ یہ ہے کہ سگنل کی پیداوار زیادہ واضح ہے ، اس کی پیروی کرنا آسان ہے ، اور اس کے برعکس آپریشن کا خطرہ کم ہے۔ تاہم ، فلٹرنگ سگنل کے معیار اور اسٹاپ نقصان کے قواعد کو بہتر بنانے کی ضرورت ہے ، تاکہ حکمت عملی کو زیادہ مستحکم اور قابل اعتماد بنایا جاسکے۔ پیرامیٹرز کی ترتیب ، داخلہ اور باہر نکلنے کے طریقہ کار کو بہتر بنانے کے ذریعے ، اس سے بہتر کارکردگی کا امکان ہے۔
/*backtest
start: 2022-10-10 00:00:00
end: 2023-10-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © DojiEmoji (kevinhhl)
//@version=4
strategy("[KL] Relative Volume Strategy",overlay=true,pyramiding=1)
ENUM_LONG = "Long"
VERBOSE_MODE = false
opened_position = false
// Timeframe {
backtest_timeframe_start = input(defval = timestamp("01 Apr 2016 13:30 +0000"), title = "Backtest Start Time", type = input.time)
USE_ENDTIME = input(false,title="Define backtest end-time (If false, will test up to most recent candle)")
backtest_timeframe_end = input(defval = timestamp("01 May 2021 19:30 +0000"), title = "Backtest End Time (if checked above)", type = input.time)
within_timeframe = true
// }
// Volatility Indicators {
// BOLL:
BOLL_length = 20, BOLL_src = close, SMA20 = sma(BOLL_src, BOLL_length), BOLL_sDEV_x2 = 2 * stdev(BOLL_src, BOLL_length)
BOLL_upper = SMA20 + BOLL_sDEV_x2, BOLL_lower = SMA20 - BOLL_sDEV_x2
plot(SMA20, "Basis", color=#872323, offset = 0)
BOLL_p1 = plot(BOLL_upper, "BOLL Upper", color=color.navy, offset = 0, transp=50)
BOLL_p2 = plot(BOLL_lower, "BOLL Lower", color=color.navy, offset = 0, transp=50)
//fill(BOLL_p1, BOLL_p2, title = "Background", color=#198787, transp=85)
// ATR v. sDev of prices
ATR_x2 = atr(input(10,title="Length of ATR [Trailing Stop Loss] (x2)"))*2
//plot(SMA20+ATR_x2, "SMA20 + ATR_x2", color=color.gray, offset = 0, transp=50)
//plot(SMA20-ATR_x2, "SMA20 - ATR_x2", color=color.gray, offset = 0, transp=50)
//plotchar(ATR_x2, "ATR_x2", "", location = location.bottom)
is_low_volat = ATR_x2 > BOLL_sDEV_x2
// }
// Trailing stop loss {
TSL_source = low
var entry_price = float(0), var stop_loss_price = float(0)
TSL_line_color = color.green
if strategy.position_size == 0 or not within_timeframe
TSL_line_color := color.black
stop_loss_price := TSL_source - ATR_x2
else if strategy.position_size > 0
stop_loss_price := max(stop_loss_price, TSL_source - ATR_x2)
plot(stop_loss_price, color=TSL_line_color)
// }
// Relative volume indicator {
LEN_RELATIVE_VOL = input(5, title="SMA(volume) length (for relative comparison)")
relative_vol = sma(volume,LEN_RELATIVE_VOL)
// }
// price actions {
bar_range_ratio = abs(close-open)/(high-low)
engulfing = low < low[1] and high > high[1] and abs(close-open) > abs(close-open)[1]
// }
// MAIN:
if within_timeframe
entry_msg = "", exit_msg = close <= entry_price ? "stop loss" : "take profit"
// ENTRY :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if close > open and volume > relative_vol and is_low_volat
if strategy.position_size > 0
entry_msg := "adding"
else if strategy.position_size == 0
entry_msg := "initial"
if strategy.position_size == 0
entry_price := close
stop_loss_price := TSL_source - ATR_x2
ATR_x2 := ATR_x2
strategy.entry(ENUM_LONG, strategy.long, comment=entry_msg)
// EXIT ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if strategy.position_size > 0
bExit = false
// EXIT: Case (A) touches trailing stop loss
if TSL_source <= stop_loss_price
exit_msg := exit_msg + "[TSL]"
bExit := true
// EXIT: Case (B)
else if close < open and not is_low_volat and engulfing and (high-low) > ATR_x2
exit_msg := VERBOSE_MODE ? exit_msg + "[engulfing bearish]" : exit_msg
bExit := true
strategy.close(ENUM_LONG, when=bExit, comment=exit_msg)
// CLEAN UP:
if strategy.position_size == 0
entry_price := 0
stop_loss_price := float(0)