वैरिएंस रिवर्सन ट्रेडिंग रणनीति कॉल और पुट विकल्पों के बीच अनुपात की गणना करके ट्रेडिंग सिग्नल उत्पन्न करती है, जिसे कॉल पुट अनुपात के रूप में भी जाना जाता है। जब अनुपात उलट जाता है, तो यह लाभ प्राप्त करने के लिए सरल धन प्रबंधन नियमों के साथ संयुक्त ट्रेडों को ट्रिगर करता है। यह एनडीएक्स और एसपीएक्स की 30-मिनट की अवधि के लिए उपयुक्त है। सही उलट बिंदु को दर्शाने के लिए दोलन को ठीक करने की आवश्यकता होती है। ठोस बैकटेस्टिंग परिणाम इष्टतम उलट बिंदु को इंगित करते हैं।
इस रणनीति के मुख्य मीट्रिक कॉल/पुट अनुपात के चलती औसत और मानक विचलन हैं। यह पहले कॉल/पुट अनुपात के 20 दिन के चलती औसत की गणना करता है, फिर अनुपात के 30 दिन के मानक विचलन की गणना करता है। एक लंबा संकेत तब ट्रिगर होता है जब अनुपात चलती औसत प्लस 1.5 मानक विचलन से ऊपर जाता है। एक छोटा संकेत तब ट्रिगर होता है जब अनुपात चलती औसत से कम हो जाता है।
लॉन्ग जाने के बाद, यदि अनुपात चलती औसत से ऊपर वापस उछलता है, तो शॉर्ट पोजीशन को बंद कर दें। स्टॉप लॉस एंट्री प्राइस से 1% नीचे सेट किया जाता है। ले लाभ एंट्री प्राइस से स्टॉप लॉस दूरी के 3 गुना पर सेट किया जाता है।
इस रणनीति का सबसे बड़ा बढ़त यह है कि जब बाजार अत्यधिक निराशावादी या तेजी से बढ़ता है, तो कॉल / पुट अनुपात में विसंगतियों का कारण बनता है। ऐसी विसंगतियों के खिलाफ व्यापार स्थानीय उलटफेर से लाभ उठा सकता है। धन प्रबंधन नियम प्रभावी रूप से व्यक्तिगत ट्रेडों के जोखिम और लाभ को सीमित करते हैं।
सबसे बड़ा जोखिम अनुचित पैरामीटर ट्यूनिंग से आता है। अत्यधिक लगातार सिग्नल महत्वपूर्ण रिवर्स को पकड़ने में विफल रहते हैं। रिवर्स सिग्नल भी झूठे ब्रेकआउट द्वारा नकली हो सकते हैं, जिससे नुकसान हो सकता है। अधिक विश्वसनीय संकेतों के लिए मापदंडों को अनुकूलित किया जाना चाहिए।
रिवर्स सिग्नल की पुष्टि करने और झूठे ब्रेकआउट से बचने के लिए फ़िल्टर जोड़ने पर विचार करें। उदाहरण के लिए, केवल संकेतों पर विचार करें जब वॉल्यूम बढ़ता है। ट्रेंड फ़िल्टर काउंटरट्रेंड ट्रेड से भी बच सकते हैं। इष्टतम मापदंड विभिन्न बाजारों और समय सीमाओं में भिन्न होने की संभावना है। अधिक कारकों को एकीकृत करने से रणनीति अधिक मजबूत हो जाएगी।
इस रणनीति का उद्देश्य बुनियादी धन प्रबंधन नियमों के साथ कॉल / पुट अनुपात का उपयोग करके बाजार के उलट बिंदुओं को पकड़ना है। यह स्थानीय उलट से लाभ उठा सकता है लेकिन झूठे ब्रेकआउट जोखिमों का सामना करता है। मापदंडों का अनुकूलन, फ़िल्टर जोड़ना और अधिक कारकों को एकीकृत करने से इसकी स्थिरता और लाभप्रदता में सुधार हो सकता है। कुल मिलाकर, यह बाजार की भावना के आधार पर व्यापार उलट के लिए एक दिशा प्रदान करता है। वास्तविक दुनिया के अनुप्रयोग के लिए आगे के परीक्षण और अनुकूलन की आवश्यकता है।
/*backtest start: 2023-09-30 00:00:00 end: 2023-10-30 00:00:00 period: 1h basePeriod: 15m 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/ // © I11L //@version=5 strategy("I11L Long Put/Call Ratio Inversion", overlay=false, pyramiding=1, default_qty_value=10000, initial_capital=10000, default_qty_type=strategy.cash) SL = input.float(0.01,step=0.01) CRV = input.float(3) TP = SL * CRV len = input.int(30,"Lookback period in Days",step=10) ratio_sma_lookback_len = input.int(20,step=10) mult = input.float(1.5,"Standard Deviation Multiple") ratio_sma = ta.sma(request.security("USI:PCC","D",close),ratio_sma_lookback_len) median = ta.sma(ratio_sma,len) standartDeviation = ta.stdev(ratio_sma,len) upperDeviation = median + mult*standartDeviation lowerDeviation = median - mult*standartDeviation isBuy = ta.crossunder(ratio_sma, upperDeviation)// and close < buyZone isCloseShort = (ratio_sma > median and strategy.position_size < 0) isSL = (strategy.position_avg_price * (1.0 - SL) > low and strategy.position_size > 0) or (strategy.position_avg_price * (1.0 + SL) < high and strategy.position_size < 0) isSell = ta.crossover(ratio_sma,lowerDeviation) isTP = strategy.position_avg_price * (1 + TP) < high if(isBuy) strategy.entry("Long", strategy.long) if(isCloseShort) strategy.exit("Close Short",limit=close) if(isSL) strategy.exit("SL",limit=close) if(isTP) strategy.exit("TP",limit=close) plot(ratio_sma,color=color.white) plot(median,color=color.gray) plot(upperDeviation,color=color.rgb(0,255,0,0)) plot(lowerDeviation,color=color.rgb(255,0,0,0)) bgcolor(isBuy?color.rgb(0,255,0,90):na) bgcolor(isSell?color.rgb(255,0,0,90):na)