यह रणनीति आरओसी और एसएमए के बीच अंतर के योग की गणना करके ट्रेडिंग सिग्नल उत्पन्न करती है। यह अल्पकालिक ट्रेडिंग रणनीतियों से संबंधित है।
रणनीति पहले लंबाई l और आरओसी के साथ एसएमए की गणना करती है। फिर यह बंद मूल्य और एसएमए के बीच अंतर k की गणना करती है। इसके बाद यह s दिनों के लिए k जोड़ती है और योग प्राप्त करती है। जब योग> 0 होता है, तो यह लंबा हो जाता है। जब योग<0 होता है, तो यह छोटा हो जाता है।
विशेष रूप से, कोड मेंः
लंबाई l के साथ SMA की गणना, एक मिलता है.
लंबाई l के साथ आरओसी की गणना, प्राप्त r.
बंद मूल्य और एसएमए के बीच अंतर की गणना करें: k = बंद - a.
के के लिए दिन जोड़ें, योग मिलता है।
यदि योग>0 है, तो लंबी स्थिति; यदि योग<0 है, तो छोटी स्थिति।
बाहर निकलें जब लम्बे समय के लिए sum<0 और छोटे समय के लिए sum>0 हो।
कुंजी अंतर k को जोड़ना और व्यापार संकेतों के लिए योग के संकेत का उपयोग करना है। जब k>0 हाल के दिनों के लिए, कीमत बढ़ रही है, तो लंबा जाओ। जब k<0, कीमत घट रही है, तो छोटा जाओ।
इस सरल अल्पकालिक व्यापारिक रणनीति के निम्नलिखित लाभ हैंः
उपयोग किए गए संकेतक सरल और समझने में आसान हैं।
संकेतकों के अंतर से फ़िल्टर करने से अधिक सटीक व्यापारिक अवसर मिल सकते हैं।
अंतर को संक्षेप में प्रस्तुत करने से अल्पकालिक रुझानों को बेहतर ढंग से पता लगाया जा सकता है।
पैरामीटर l और s को अलग-अलग चक्र के लिए समायोजित किया जा सकता है।
तर्क स्पष्ट है और इसे संशोधित और अनुकूलित करना आसान है।
लगातार अल्पकालिक व्यापार के लिए उच्च पूंजी उपयोग दक्षता।
कुछ जोखिम भी हैं:
अल्पावधि व्यापार में अधिक जोखिम, हानि संभव है।
अनुचित मापदंडों के कारण अधिक व्यापार या अवसरों की कमी हो सकती है।
रुझान उलटने के अनुकूल होना कठिन है, कोई स्टॉप लॉस नहीं होने से बड़े नुकसान हो सकते हैं।
मापदंडों का लगातार समायोजन व्यापारी के अनुभव पर बहुत निर्भर करता है।
उच्च व्यापारिक आवृत्ति लेनदेन लागत और फिसलने को बढ़ा सकती है।
समाधान:
व्यापारिक आवृत्ति को कम करने के लिए पैरामीटर को ठीक से समायोजित करें।
रुझान के संकेतकों को जोड़ें।
एकल व्यापार हानि को नियंत्रित करने के लिए स्टॉप लॉस को अनुकूलित करें।
अनुभव पर निर्भरता कम करने के लिए ऑटो पैरामीटर अनुकूलन जोड़ें.
लेन-देन की लागत कम करने के लिए आदेश निष्पादन मॉडल का अनुकूलन करना।
इस रणनीति को निम्नलिखित पहलुओं में और अधिक अनुकूलित किया जा सकता हैः
मापदंडों को अनुकूलित करने के लिए आनुवंशिक एल्गोरिदम जैसे मापदंड गणना विधियों को अनुकूलित करें।
सिग्नल की गुणवत्ता में सुधार के लिए अधिक संकेतक और फ़िल्टर जोड़ें।
स्टॉप लॉस रणनीति में सुधार, जैसे कि स्टॉप लॉस को पीछे छोड़ना।
जोखिम बिंदु नियंत्रण जैसी धन प्रबंधन रणनीतियों का अनुकूलन करें।
ट्रेंड फॉलो करने, स्लिप नियंत्रण आदि के साथ ऑर्डर निष्पादन मॉडल को अनुकूलित करें।
बैकटेस्टिंग और ऑटो अनुकूलन मॉड्यूल जोड़ें.
सिग्नल की गुणवत्ता का मात्रात्मक मूल्यांकन जोड़ें।
इन अनुकूलन के साथ, यह रणनीति अधिक व्यापक, बुद्धिमान, स्थिर और नियंत्रित अल्पकालिक व्यापार प्रणाली बन सकती है।
संक्षेप में, यह रणनीति संकेतकों से सरल संकेत उत्पन्न करती है, जिसमें स्पष्ट तर्क और आसान कार्यान्वयन होता है। मापदंडों, स्टॉप लॉस, मनी मैनेजमेंट आदि में आगे के अनुकूलन के साथ, यह एक सार्थक मात्रात्मक ट्रेडिंग रणनीति बन सकती है। लेकिन कोई भी रणनीति सही नहीं है। व्यापारियों को अभी भी व्यक्तिगत जोखिम वरीयता के आधार पर इसे तर्कसंगत रूप से लागू करने की आवश्यकता है।
/*backtest start: 2023-10-06 00:00:00 end: 2023-11-05 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Indicator Integrator Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=662, overlay=false) l = input(defval=170,title="Length for indicator") s = input(title="Length of summation",defval=18) a= sma(close,l) r=roc(close,l) k=close-a sum = 0 for i = 0 to s sum := sum + k[i] //plot(a,color=yellow,linewidth=2,transp=0) //bc = iff( sum > 0, white, teal) //plot(sum,color=bc, transp=20, linewidth=3,style=columns) //plot(sma(sum,3),color=white) //hline(0) inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0) inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0) inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0) inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0) useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na ////buyEntry = crossover(source, lower) ////sellEntry = crossunder(source, upper) if sum>0 strategy.entry("Long", strategy.long, oca_name="Long", comment="Long") else strategy.cancel(id="Long") if sum<0 strategy.entry("Short", strategy.short, oca_name="Short", comment="Short") else strategy.cancel(id="Short") strategy.initial_capital = 50000 plot(strategy.equity-strategy.initial_capital-strategy.closedtrades*.25/2, title="equity", color=red, linewidth=2) hline(0) //longCondition = sum>0 //exitlong = sum<0 //shortCondition = sum<0 //exitshort = sum>0 //strategy.entry(id = "Long", long=true, when = longCondition) //strategy.close(id = "Long", when = exitlong) //strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong) //strategy.entry(id = "Short", long=false, when = shortCondition) //strategy.close(id = "Short", when = exitshort) //strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)