यह रणनीति एक चलती औसत का उपयोग ट्रेडिंग सिग्नल के रूप में करती है और इसे उपयोगकर्ता-परिभाषित स्टॉप लॉस और ले लाभ अनुपात के साथ जोड़ती है ताकि एक पूर्ण संकेतक-संचालित स्टॉप लॉस और ले लाभ रणनीति को लागू किया जा सके। यह ट्रेडों में प्रवेश कर सकता है, स्टॉप लॉस सेट कर सकता है, और मैनुअल हस्तक्षेप के बिना स्वचालित रूप से लाभ ले सकता है, जो एल्गोरिथम ट्रेडिंग के लिए उपयुक्त है।
इस रणनीति का मूल तर्क यह हैः
ट्रेडिंग सिग्नल के रूप में 3-पीरियड एसएमए का प्रयोग करें, जब एसएमए 0 से ऊपर जाता है तो लंबे समय तक जाएं और जब एसएमए 0 से नीचे जाता है तो छोटे समय तक जाएं।
व्यापार में प्रवेश करने के बाद, उपयोगकर्ता स्टॉप लॉस को अनुकूलित कर सकते हैं और लाभ अनुपात ले सकते हैं।
प्रवेश मूल्य और उपयोगकर्ता द्वारा निर्धारित स्टॉप लॉस अनुपात के आधार पर, स्वचालित रूप से स्टॉप लॉस लाइन सेट करें।
प्रवेश मूल्य के आधार पर और उपयोगकर्ता द्वारा निर्धारित लाभ अनुपात लेने के लिए, स्वचालित रूप से लाभ लाइन लेने के लिए सेट करें।
जब कीमत स्टॉप लॉस लाइन को छूती है, तो स्वचालित रूप से बंद हो जाती है। जब कीमत लाभ रेखा को छूती है, तो स्वचालित रूप से लाभ लेती है।
बंद होने के बाद, स्वचालित रूप से स्टॉप लॉस रद्द करें और लाभ प्राप्त करें।
विशेष रूप से, रणनीति 3 अवधि के एसएमए की गणना एसएमए फ़ंक्शन का उपयोग करके करती है और इसे एमए चर को सौंपती है।
फिर यह लंबी प्रविष्टि पंक्ति की लंबाई की गणना करता है, जो ma प्लस lo का ma% है. lo लंबी प्रविष्टि पंक्ति ऑफसेट के लिए एक उपयोगकर्ता समायोज्य पैरामीटर है.
जब ma 0 से ऊपर जाता है, तो यह एक लंबी प्रविष्टि का संकेत देता है. रणनीति रणनीति.प्रविष्टि फ़ंक्शन का उपयोग करके लंबी प्रविष्टि करता है जिसमें प्रवेश मूल्य लंबी पर सेट होता है.
एक ही समय में, स्टॉप लॉस और टेक प्रॉफिट की कीमतें सेट की जाती हैं. स्टॉप लॉस की कीमत प्रवेश मूल्य है शून्य से प्रवेश मूल्य% एसएल. एसएल उपयोगकर्ता समायोज्य स्टॉप लॉस अनुपात पैरामीटर है. ले लाभ मूल्य है प्रवेश मूल्य प्लस प्रवेश मूल्य% टीपी. टीपी उपयोगकर्ता समायोज्य ले लाभ अनुपात पैरामीटर है.
Strategy.entry फ़ंक्शन स्टॉप लॉस और ले लाभ ऑर्डर अलग से सेट करता है. जब कीमत स्टॉप लॉस लाइन को छूती है, तो यह स्वचालित रूप से बंद हो जाएगी. जब कीमत लाभ लाइन को छूती है, तो यह स्वचालित रूप से लाभ लेगी.
बंद होने के बाद, स्टॉप लॉस और टेक प्रॉफिट ऑर्डर स्वचालित रूप से strategy.cancel फ़ंक्शन का उपयोग करके रद्द कर दिए जाते हैं।
इस रणनीति के फायदे:
उच्च स्तर की स्वचालन, कोई मैनुअल हस्तक्षेप की आवश्यकता नहीं है, एल्गोरिथ्म व्यापार के लिए उपयुक्त है।
जोखिम को नियंत्रित करने के लिए अनुकूलन योग्य स्टॉप लॉस और ले लाभ अनुपात।
ट्रेडिंग सिग्नल सूचक से आते हैं, झूठे ब्रेकआउट से बचते हैं।
विज़ुअलाइज़ेड स्टॉप लॉस और ले लाभ, सहज ज्ञान युक्त।
सरल और स्पष्ट रणनीति तर्क, समझने और लागू करने में आसान।
इस रणनीति के साथ कुछ जोखिम भी हैंः
सूचक से झूठे संकेतों का जोखिम। समाधान विश्वसनीय सूचक सुनिश्चित करने के लिए मापदंडों का अनुकूलन करना है।
गलत स्टॉप लॉस और ले लाभ अनुपात सेटिंग्स, बहुत ढीला या बहुत आक्रामक हो सकता है। समाधान विभिन्न बाजारों के लिए अनुपात को समायोजित करना है।
ब्रेकआउट प्रविष्टि फंसने की प्रवृत्ति है। समाधान प्रवृत्ति, मात्रा आदि के साथ प्रवेश संकेतों को फ़िल्टर करना है।
संभावित रूप से बड़ा ड्रॉडाउन. समाधान स्थिति आकार कम करने या पीछे के स्टॉप हानि का उपयोग करने के लिए है.
रणनीति को अनुकूलित करने के लिए कुछ दिशाएंः
विश्वसनीयता के लिए चलती औसत मापदंडों का अनुकूलन करें।
झूठे ब्रेकआउट से बचने के लिए प्रवेश स्थितियों को अनुकूलित करें, वॉल्यूम पुष्टि आदि जोड़ें।
स्टॉप लॉस को अनुकूलित करें और लाभ लें, गतिशील या ट्रेलिंग स्टॉप लॉस आदि का उपयोग करें।
जोखिम प्रबंधन को अनुकूलित करें, स्थिति के आकार को समायोजित करें, एकल व्यापार जोखिम को कम करें।
प्रवेश समय को अनुकूलित करें, प्रवृत्ति, समर्थन/प्रतिरोध आदि के साथ संयोजन करें।
मिश्रित लाभ के लिए पिरामिड जोड़ें।
विशिष्ट उत्पादों के लिए पैरामीटर अनुकूलन।
यह रणनीति सूचक-संचालित स्टॉप लॉस और ऑटोमेशन और जोखिम नियंत्रण जैसे लाभों के साथ लाभ लेने के लिए एक सरल और विश्वसनीय तकनीकी ढांचा प्रदान करती है। यह एल्गोरिदमिक ट्रेडिंग के लिए उपयुक्त है। कई पहलू भी हैं जिन्हें सुधार और अनुकूलित किया जा सकता है, जैसे कि संकेतक पैरामीटर, प्रवेश फ़िल्टर, स्टॉप लॉस / लाभ लेने की रणनीतियाँ, जोखिम प्रबंधन आदि। आगे के विस्तार और अनुकूलन के साथ, यह एक और अधिक शक्तिशाली ट्रेडिंग रणनीति बन सकती है।
/*backtest start: 2023-01-01 00:00:00 end: 2023-11-09 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("example for panel signals", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //https://www.tradingview.com/script/m2a04xmb-noro-s-shiftma-tp-sl-strategy/ //Settings lo = input(-5.0, title = "Long-line, %") tp = input(5.0, title = "Take-profit") sl = input(2.0, title = "Stop-loss") //SMA ma = sma(ohlc4, 3) long = ma + ((ma / 100) * lo) //Orders avg = strategy.position_avg_price if ma > 0 strategy.entry("Long", strategy.long, limit = long) strategy.entry("Take", strategy.short, 0, limit = avg + ((avg / 100) * tp)) strategy.entry("Stop", strategy.short, 0, stop = avg - ((avg / 100) * sl)) //Cancel order if strategy.position_size == 0 strategy.cancel("Take") strategy.cancel("Stop") //Lines plot(long, offset = 1, color = color.black, transp = 0) take = avg != 0 ? avg + ((avg / 100) * tp) : long + ((long / 100) * tp) stop = avg != 0 ? avg - ((avg / 100) * sl) : long - ((long / 100) * sl) takelinecolor = avg == avg[1] and avg != 0 ? color.lime : na stoplinecolor = avg == avg[1] and avg != 0 ? color.red : na plot(take, offset = 1, color = takelinecolor, linewidth = 3, transp = 0) plot(stop, offset = 1, color = stoplinecolor, linewidth = 3, transp = 0) // disp_panels = input(true, title="Display info panels?") h=high info_label_off = input(20, title="Info panel offset") info_label_size = input(size.large, options=[size.tiny, size.small, size.normal, size.large, size.huge], title="Info panel label size") info_panel_x = timenow + round(change(time)*info_label_off) info_panel_y = h info_title= "-=-=-=-=- Info Panel -=-=-=-=-" info_div = "\n\n------------------------------" a = "\n\ Long : " + tostring(long) b = "\n\ Stop loss : " + tostring(stop) c = "\n\ TP : " + tostring(take) // info_text = a+c+b // info_panel = disp_panels ? label.new(x=info_panel_x, y=info_panel_y, text=info_text, xloc=xloc.bar_time, yloc=yloc.price, color=color.yellow, style=label.style_labelup, textcolor=color.black, size=info_label_size) : na // label.delete(info_panel[1])