یہ حکمت عملی پچھلے تجارتی دن کی اعلیٰ سطح پر مبنی ہے ، جو رجحان کے مطابق کام کرتی ہے۔ یہ کل کی اعلیٰ سطح کو توڑنے پر طویل عرصے تک چلتی ہے ، یہاں تک کہ اگر ایک دن میں متعدد توڑ پڑتے ہیں۔
بیک ٹسٹنگ میں لوک ہیڈ تعصب سے بچنے کے لئے LucF فنکشن کا استعمال کریں۔
اس بات کی نشاندہی کریں کہ آیا یہ ایک نیا تجارتی دن کھلا ہے۔ دن کا اعلی max_today اور کم min_today ریکارڈ کریں۔
max_today کے ساتھ موجودہ اعلی کا موازنہ کریں، اگر زیادہ ہو تو max_today کو اپ ڈیٹ کریں.
موازنہ موجودہ کم سے min_today، اپ ڈیٹ min_today خلاف ورزی کی صورت میں.
پچھلے ٹریڈنگ دن کی اعلی اور کم سطحوں کو دکھائیں.
پچھلے دن کی بلند ترین سطح سے باہر نکلنے پر اندراج کا نقطہ مقرر کریں، GAP کو آگے بڑھانے یا اندراج میں تاخیر کرنے کے لئے شامل کیا جا سکتا ہے۔
سٹاپ نقصان فی صد sl اور منافع فی صد tp لے مقرر کریں.
جب قیمت پچھلے ٹریڈنگ دن کی اونچائی کو توڑتی ہے تو طویل ہوجائیں۔
سٹاپ نقصان کی قیمت مقرر کریں اور منافع کی قیمت لے لو.
اختیاری طور پر ٹرائل سٹاپ نقصان کو فعال کریں، چالو کرنے کی سطح اور آفسیٹ فاصلے کے ساتھ۔
اختیاری طور پر EMA کراس اوور کی بنیاد پر تجارت بند کریں.
اس سادہ رجحان کی پیروی کرنے والی حکمت عملی میں مندرجہ ذیل فوائد ہیں:
واضح اور براہ راست سگنل جنریشن۔ لاگو کرنا آسان ہے۔
پچھلے دن کی بلند ترین سطح سے باہر نکلنے سے رجحان کی تصدیق ہوتی ہے، جس سے ہلچل کم ہوتی ہے۔
GAP پیرامیٹر داخلہ حساسیت کو ایڈجسٹ کرنے کی اجازت دیتا ہے.
مجموعی خطرہ واضح سٹاپ نقصان کے ساتھ کنٹرول کیا جاتا ہے.
ٹریلنگ سٹاپ زیادہ منافع میں مقفل کرنے کے لئے استعمال کیا جا سکتا ہے.
ای ایم اے کراس اوور نیچے کے رجحانات میں پھنسنے سے بچتا ہے۔
کچھ خطرات ہیں جن کا نوٹ کرنا ضروری ہے:
ناکام فرار نقصانات کا سبب بن سکتا ہے۔ معقول سٹاپ نقصان کی ضرورت ہے۔
رجحانات کی مارکیٹ کی ضرورت ہوتی ہے. whipsaws ممکنہ طور پر مختلف حالات میں.
غلط ٹریننگ سٹاپ جلد ہی روک دیا جا سکتا ہے.
EMA پیرامیٹر کا غلط انتخاب اسے بہت حساس یا پسماندہ بنا سکتا ہے۔
متعدد متغیرات کو ٹیوننگ کی ضرورت ہے جیسے گیپ، سٹاپ نقصان، ٹریلنگ سٹاپ وغیرہ
حکمت عملی کو مزید بہتر بنانے کے کچھ طریقے:
اے ٹی آر یا رجحان کی بنیاد پر متحرک سٹاپ نقصان کا استعمال کریں۔
معیاری انحراف کا استعمال کرتے ہوئے درست بریک آؤٹ کے لئے فلٹر شامل کریں.
غیر مستحکم مارکیٹوں میں جھوٹے بریک آؤٹ سے بچنے کے لئے اتار چڑھاؤ کی شرط شامل کریں.
زیادہ مضبوط سگنل کے لئے EMA پیرامیٹر کو بہتر بنائیں.
مارکیٹ کی اتار چڑھاؤ سے ملنے کے لئے ٹھیک ٹون ٹریلنگ سٹاپ پیرامیٹرز.
مختلف آلات میں پیرامیٹر کی مضبوطی کی جانچ کریں۔
متحرک پوزیشن سائزنگ میکانزم شامل کریں.
یہ حکمت عملی ایک عام رجحان کے بعد نظام کے طور پر آسان اور عملی ہے جو پچھلے دن کے اعلی بریک آؤٹ پر مبنی ہے۔ رسک مینجمنٹ بنیادی طور پر اسٹاپ نقصان پر منحصر ہے۔ پیرامیٹر کی مناسب ترتیب کے ساتھ ، یہ رجحان کے حالات میں اچھی کارکردگی کا مظاہرہ کرسکتا ہے۔ لیکن وِپساؤ سے بچنے کے لئے مناسب اسٹاپ نقصان اور فلٹرز کی ضرورت ہے۔ فریم ورک کو رجحان کی پیروی کرنے والی حکمت عملیوں کی بنیاد کے طور پر مزید بہتر بنایا جاسکتا ہے۔
/*backtest start: 2023-09-30 00:00:00 end: 2023-10-07 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) // © TheSocialCryptoClub //@version=5 strategy("Yesterday's High", overlay=true, pyramiding = 1, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, slippage=1, backtest_fill_limits_assumption=1, use_bar_magnifier=true, commission_type=strategy.commission.percent, commission_value=0.075 ) // ----------------------------------------------------------------------------- // ROC Filter // ----------------------------------------------------------------------------- // f_security function by LucF for PineCoders available here: https://www.tradingview.com/script/cyPWY96u-How-to-avoid-repainting-when-using-security-PineCoders-FAQ/ f_security(_sym, _res, _src, _rep) => request.security(_sym, _res, _src[not _rep and barstate.isrealtime ? 1 : 0])[_rep or barstate.isrealtime ? 0 : 1] high_daily = f_security(syminfo.tickerid, "D", high, false) roc_enable = input.bool(false, "", group="ROC Filter from CloseD", inline="roc") roc_threshold = input.float(1, "Treshold", step=0.5, group="ROC Filter from CloseD", inline="roc") closed = f_security(syminfo.tickerid,"1D",close, false) roc_filter= roc_enable ? (close-closed)/closed*100 > roc_threshold : true // ----------------------------------------------------------------------------- // Trigger Point // ----------------------------------------------------------------------------- open_session = ta.change(time('D')) price_session = ta.valuewhen(open_session, open, 0) tf_session = timeframe.multiplier <= 60 bgcolor(open_session and tf_session ?color.new(color.blue,80):na, title = "Session") first_bar = 0 if open_session first_bar := bar_index var max_today = 0.0 var min_today = 0.0 var high_daily1 = 0.0 var low_daily1 = 0.0 var today_open = 0.0 if first_bar high_daily1 := max_today low_daily1 := min_today today_open := open max_today := high min_today := low if high >= max_today max_today := high if low < min_today min_today := low same_day = today_open == today_open[1] plot( timeframe.multiplier <= 240 and same_day ? high_daily1 : na, color= color.yellow , style=plot.style_linebr, linewidth=1, title='High line') plot( timeframe.multiplier <= 240 and same_day ? low_daily1 : na, color= #E8000D , style=plot.style_linebr, linewidth=1, title='Low line') // ----------------------------------------------------------------------------- // Strategy settings // ----------------------------------------------------------------------------- Gap = input.float(1,"Gap%", step=0.5, tooltip="Gap di entrata su entry_price -n anticipa entrata, con +n posticipa entrata", group = "Entry") Gap2 = (high_daily1 * Gap)/100 sl = input.float(3, "Stop-loss", step= 0.5, group = "Entry") tp = input.float(9, "Take-profit", step= 0.5, group = "Entry") stop_loss_price = strategy.position_avg_price * (1-sl/100) take_price = strategy.position_avg_price * (1+tp/100) sl_trl = input.float(2, "Trailing-stop", step = 0.5, tooltip = "Attiva trailing stop dopo che ha raggiunto...",group = "Trailing Stop Settings")//group = "Trailing Stop Settings") Atrl= input.float(1, "Offset Trailing", step=0.5,tooltip = "Distanza dal prezzo", group = "Trailing Stop Settings") stop_trl_price_cond = sl_trl * high/syminfo.mintick/100 stop_trl_price_offset_cond = Atrl * high/syminfo.mintick/100 stop_tick = sl * high/syminfo.mintick/100 profit_tick = tp * high/syminfo.mintick/100 mess_buy = "buy" mess_sell = "sell" // ----------------------------------------------------------------------------- // Entry - Exit - Close // ----------------------------------------------------------------------------- if close < high_daily1 and roc_filter strategy.entry("Entry", strategy.long, stop = high_daily1 + (Gap2), alert_message = mess_buy) ts_n = input.bool(true, "Trailing-stop", tooltip = "Attiva o disattiva trailing-stop", group = "Trailing Stop Settings") close_ema = input.bool(false, "Close EMA", tooltip = "Attiva o disattiva chiusura su EMA", group = "Trailing Stop Settings") len1 = input.int(10, "EMA length", step=1, group = "Trailing Stop Settings") ma1 = ta.ema(close, len1) plot(ma1, title='EMA', color=color.new(color.yellow, 0)) if ts_n == true strategy.exit("Trailing-Stop","Entry",loss= stop_tick, stop= stop_loss_price, limit= take_price, trail_points = stop_trl_price_cond, trail_offset = stop_trl_price_offset_cond, comment_loss="Stop-Loss!!",comment_profit ="CASH!!", comment_trailing = "TRL-Stop!!", alert_message = mess_sell) else strategy.exit("TP-SL", "Entry",loss= stop_tick, stop=stop_loss_price, limit= take_price, comment_loss= "Stop-loss!!!", comment_profit = "CASH!!", alert_message = mess_sell) if close_ema == true and ta.crossunder(close,ma1) strategy.close("Entry",comment = "Close" , alert_message = mess_sell)