
কপপোক কার্ভের একটি ওজনযুক্ত মুভিং এভারেজ থেকে স্ট্যান্ডার্ড 500 সূচক বা ট্রেডিং সমতুল্য পরিবর্তনের হার গণনা করে কপপোক কার্ভ তৈরি করা হয়। কপপোক কার্ভের উপরে শূন্য লাইন অতিক্রম করার সময় একটি কেনার সংকেত তৈরি হয় এবং নীচে শূন্য লাইন অতিক্রম করার সময় একটি বিক্রয় সংকেত তৈরি হয়। লাভের জন্য লক করার জন্য ট্র্যাকিং স্টপ লস ব্যবহার করা যেতে পারে। এই কৌশলটি $SPY এর কপপোক কার্ভকে অন্যান্য ইটিএফ এবং স্টক কেনার এবং বিক্রয়ের জন্য একটি এজেন্ট সংকেত হিসাবে ব্যবহার করে।
এই কৌশলটি কপপক কার্ভকে ট্রেডিং সিগন্যাল উৎপাদনের প্রযুক্তিগত সূচক হিসাবে ব্যবহার করে। কপপক কার্ভের গণনা সূত্রটি হলঃ
কপপক কার্ভ = 10 চক্রের ভারসাম্যপূর্ণ চলমান গড় ((14 চক্রের পরিবর্তনের হার ROC + 11 চক্রের পরিবর্তনের হার ROC)
যেখানে পরিবর্তনের হার 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)