この戦略は,定量的な取引を実施するために,あまり知られていないコポック曲線技術指標を利用している.コポック曲線は,S&P 500などの市場指数またはSPY ETFのような取引対価の変動率 (ROC) の重度の移動平均を採取することによって導かれる.コポック曲線がゼロを超えると買い信号が生成され,下を横切ると売り信号が生成される.利益をロックするためにオプションのトライルストップ損失が利用可能である.この戦略は,他のETFや株式に対する取引信号を生成するための代理として$SPYコポック曲線を使用する.
この戦略は,取引信号を生成するための技術指標としてコポック曲線を使用しています.コポック曲線式は:
コッポック曲線 = 10 期間の WMA (14 期間の ROC + 11 期間の ROC)
ローナンス・レジスタンス・レジスタンス・レジスタンス・レジスタンス・レジスタンス・レジスタンス
この戦略は,$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)