यह रणनीति मात्रात्मक व्यापार को लागू करने के लिए कम ज्ञात कॉपॉक वक्र तकनीकी संकेतक का उपयोग करती है। कॉपॉक वक्र को एस एंड पी 500 जैसे बाजार सूचकांक या एसपीवाई ईटीएफ जैसे एक ट्रेडिंग समकक्ष की परिवर्तन दर (आरओसी) के भारित चलती औसत को लेकर प्राप्त किया जाता है। जब कॉपॉक वक्र शून्य से ऊपर पार करता है तो खरीद संकेत उत्पन्न होते हैं और जब यह नीचे पार करता है तो संकेत बेचते हैं। लाभ में लॉक करने के लिए एक वैकल्पिक ट्रेलिंग स्टॉप लॉस उपलब्ध है। रणनीति अन्य ईटीएफ और शेयरों पर व्यापार संकेत उत्पन्न करने के लिए एक प्रॉक्सी के रूप में $ एसपीवाई कॉपॉक वक्र का उपयोग करती है।
रणनीति व्यापार संकेत उत्पन्न करने के लिए तकनीकी संकेतक के रूप में कोपॉक वक्र का उपयोग करती है। कोपॉक वक्र सूत्र हैः
कोपॉक वक्र = 10 अवधि WMA (14-अवधि ROC + 11 अवधि ROC)
जहां आरओसी परिवर्तन दर की गणना इस प्रकार की जाती हैः (वर्तमान बंद - बंद N अवधि पहले) / बंद N अवधि पहले
यह रणनीति $SPY के समापन मूल्य के आधार पर कॉपॉक वक्र की गणना करती है। जब वक्र शून्य से ऊपर पार होता है तो खरीद संकेत उत्पन्न होते हैं और जब यह नीचे पार होता है तो बिक्री संकेत उत्पन्न होते हैं।
यह रणनीति व्यापार संकेत उत्पन्न करने के लिए कोपॉक वक्र की अद्वितीय वक्र आकार विशेषताओं का उपयोग करती है। आम संकेतकों की तुलना में, कोपॉक वक्र में मजबूत भविष्य कहने की शक्ति है। लेकिन एक स्टैंडअलोन संकेतक के रूप में, इसकी विश्वसनीयता को सत्यापन की आवश्यकता है। झूठे संकेतों को फ़िल्टर करने के लिए इसे अन्य कारकों के साथ जोड़ने की सिफारिश की जाती है। पैरामीटर अनुकूलन, स्टॉप लॉस अनुकूलन और अन्य संकेतकों के साथ संयोजन के माध्यम से, यह रणनीति एक प्रभावी मात्रात्मक व्यापार प्रणाली बन सकती है।
/*backtest start: 2023-10-13 00:00:00 end: 2023-11-12 00:00:00 period: 1d basePeriod: 1h 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/ // © RolandoSantos //@version=4 strategy(title = "Coppock Curve", shorttitle = "Copp Curve Strat", default_qty_type=strategy.cash, default_qty_value=10000, initial_capital=10000) ///trail stop longTrailPerc = input(title="Trail Long Loss (%)", minval=0.0, step=0.1, defval=100) * 0.01 // Determine trail stop loss prices longStopPrice = 0.0 longStopPrice := if (strategy.position_size > 0) stopValue = close * (1 - longTrailPerc) max(stopValue, longStopPrice[1]) else 0 //Use SPY for Copp Curve entries and exits// security = input("SPY") ticker = security(security, "D", close) ///Copp Curve//// wmaLength = input(title="WMA Length", type=input.integer, defval=10) longRoCLength = input(title="Long RoC Length", type=input.integer, defval=14) shortRoCLength = input(title="Short RoC Length", type=input.integer, defval=11) source = ticker curve = wma(roc(source, longRoCLength) + roc(source, shortRoCLength), wmaLength) ///Lower Band Plot/// band1 = hline(0) band0 = hline(100) band2 = hline(-100) fill(band1, band0, color=color.green, transp=90) fill(band2, band1, color=color.red, transp=90) plot(curve, color=color.white) ///Trade Conditions/// Bull = curve > 0 Bear = curve < 0 ///Entries and Exits// if (Bull) strategy.entry("Long", strategy.long, comment = "LE") if (Bear) strategy.close("Long", qty_percent=100, comment="close") // Submit exit orders for trail stop loss price if (strategy.position_size > 0) strategy.exit(id="Long Trail Stop", stop=longStopPrice)