यह रणनीति पिछले ट्रेडिंग दिन के उच्च स्तर पर आधारित होती है, जो एक प्रवृत्ति-अनुसरण मोड में काम करती है। यह कल के उच्च स्तर के टूटने पर लंबे समय तक चलती है, भले ही एक दिन में कई ब्रेकआउट हों।
बैकटेस्टिंग में लुकहेड पूर्वाग्रह से बचने के लिए LucF फ़ंक्शन का प्रयोग करें.
पहचानें कि क्या यह एक नया ट्रेडिंग दिन खुला है। दिन का उच्चतम max_today और निम्नतम min_today रिकॉर्ड करें।
max_today के साथ वर्तमान उच्च तुलना करें, यदि पार किया जाता है तो max_today अद्यतन करें.
min_today के साथ वर्तमान निम्न की तुलना करें, यदि उल्लंघन किया जाता है तो min_today अपडेट करें.
पिछले ट्रेडिंग दिन के उच्च और निम्न स्तरों का ग्राफ।
पिछले दिन के उच्च स्तर के ब्रेकआउट पर प्रवेश बिंदु सेट करें, अग्रिम या विलंब प्रवेश के लिए GAP जोड़ा जा सकता है।
स्टॉप लॉस प्रतिशत sl सेट करें और लाभ प्रतिशत tp लें.
जब कीमत पिछले ट्रेडिंग दिन के उच्च स्तर को तोड़ती है तो लंबी हो जाती है।
स्टॉप लॉस की कीमत सेट करें और लाभ की कीमत लें.
वैकल्पिक रूप से सक्रियण स्तर और ऑफसेट दूरी के साथ पीछे स्टॉप हानि को सक्षम करें।
ईएमए क्रॉसओवर के आधार पर वैकल्पिक रूप से व्यापार बंद करें।
इस सरल ट्रेंड फॉलो करने वाली रणनीति के निम्नलिखित फायदे हैंः
स्पष्ट और सीधा सिग्नल जनरेशन। लागू करना आसान है।
पिछले दिन के उच्च स्तर से टूटने से रुझान की पुष्टि होती है, जिससे झटके कम होते हैं।
GAP पैरामीटर प्रवेश संवेदनशीलता को समायोजित करने की अनुमति देता है।
समग्र जोखिम को स्पष्ट स्टॉप लॉस के साथ नियंत्रित किया जाता है।
अधिक लाभ प्राप्त करने के लिए ट्रेलिंग स्टॉप का उपयोग किया जा सकता है।
ईएमए क्रॉसओवर गिरावट के रुझानों में फंसने से बचता है।
कुछ जोखिमों पर ध्यान देंः
असफल पलायन नुकसान का कारण बन सकता है। उचित स्टॉप लॉस की आवश्यकता है।
बाजार के रुझान की आवश्यकता होती है.
अनुचित ट्रैलिंग स्टॉप समय से पहले रोक सकता है।
खराब ईएमए पैरामीटर चयन इसे अतिसंवेदनशील या पिछड़ने वाला बना सकता है।
कई चरों को ट्यूनिंग की आवश्यकता होती है जैसे कि गैप, स्टॉप लॉस, ट्रेलिंग स्टॉप आदि।
रणनीति को और अधिक अनुकूलित करने के कुछ तरीके:
एटीआर या प्रवृत्ति के आधार पर गतिशील स्टॉप लॉस का प्रयोग करें।
मानक विचलन का उपयोग करके वैध ब्रेकआउट के लिए फ़िल्टर जोड़ें.
अस्थिर बाजारों में झूठे ब्रेकआउट से बचने के लिए अस्थिरता की स्थिति जोड़ें।
अधिक मजबूत संकेत के लिए ईएमए पैरामीटर का अनुकूलन करें.
बाजार की अस्थिरता से मेल खाने के लिए ट्रेलिंग स्टॉप पैरामीटर को ठीक से समायोजित करें।
विभिन्न साधनों में मापदंडों की मजबूती का परीक्षण करें।
गतिशील स्थिति आकार निर्धारण तंत्र जोड़ें।
यह रणनीति पिछले दिन के उच्च ब्रेकआउट के आधार पर एक विशिष्ट ट्रेंड फॉलो सिस्टम के रूप में सरल और व्यावहारिक है। जोखिम प्रबंधन मुख्य रूप से स्टॉप लॉस पर निर्भर करता है। उचित पैरामीटर ट्यूनिंग के साथ, यह ट्रेंडिंग स्थितियों में अच्छी तरह से प्रदर्शन कर सकता है। लेकिन उचित स्टॉप लॉस और फिल्टर की आवश्यकता होती है। फ्रेमवर्क को ट्रेंड फॉलो रणनीतियों के आधार के रूप में और बढ़ाया जा सकता है।
/*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)