概要
この戦略は,複数のハーモニック・ムービング・平均値を利用して取引信号を構築する.まず,第1順から第6順までのハーモニック・ムービング・平均値を計算し,次にこれらの移動平均値を組み合わせてダブル・ロング/ショート・トレード信号を構築する.短期信号線が長期信号線を下に横切るとショートになり,短期信号線が上を横切るとロングする.
戦略の論理
この戦略は,まず,n期間の調和移動平均を計算するために,harm_average関数を定義する.次に,第1から第6順位の調和移動平均を計算する.すなわち,T1からT6まで.それらのうち,T1は3期間の調和移動平均,T2はT1の3期間の調和移動平均,そして,
その後,T1からT6までの立方調和移動平均の逆を合成的に考慮したバランス曲線を構築します.これは短期的および長期的要因の両方を同時に反映することができます.
最後に,T1 から T6 に基づいて,X1 が T1,T2 および T3 の最小値,X2 が T4,T5 および T6 の最大値を取るときに,X1 が X2 を越えて,X1 が X2 を越えて,X2 が X2 を下回るときに,X1 が長値を取るときに,X2 が短値を取るときに,X1 が短値を取るときに,X1 が短値を取るときに,X2 が長値を取るときに,X1 が短値を取るときに,X1 が短値を取るときに,X2 が長値を取るときに,X1 が長値を取るときに,X1 が長値を取るときに,X2 が長値を取るときに,X1 が長値を取るときに,X1 が長値を取るときに,X1 が長値を取るときに,X2 が長値を取るときに,X1 が長値を取るときに,X1 が長値を取るときに,X2 が長値を取るときに,X2 が長値を取るときに,X1 が長値を取るときに,X1 が長
利点分析
複数の調和移動平均値を使用することで,市場の騒音を効果的にフィルタリングし,信号品質を改善できます
二重の長/短取引信号を構築することで,トレンドのターニングポイントをタイムリーに把握できます
バランス曲線は,複数のタイムフレームを合成的に考慮し,トレンド方向を正確に判断することができます.
キューブ平均を採用することで,中間変数の役割がさらに強調され,戦略の安定性が向上する
リスク分析
ハーモニック平均値自体も遅延が大きいため,短期的な逆転の機会を逃す可能性があります.
複数の平均値で過度に最適化すると 戦略の安定性が低下する
キューブの計算は,一定の範囲で中間ノイズを放大させ,特定の誤った信号をもたらします
二重クロスには一定の遅れがあり, ターニングポイントを間に合うように捉えることができない
オプティマイゼーションの方向性
より多くの種類またはより高い階層のハーモニック平均を試験することができる.
平均日数の動的調整を導入し,平均計算システムを最適化する
スクウェアやログのような異なるパワーパラメータをテスト
シグナル品質を検証するためにより多くの補助指標を組み込む
概要
この戦略は,多次調和平均化システムを用いて,二重の長/短取引信号を構築する. 単一平均化システムと比較して,この戦略はトレンドをよりよく特定し,ノイズをフィルタリングすることができます. 一方,二重クロスは市場のターニングポイントを迅速に把握することもできます. しかし,多重平均化とキューブ計算は,いくつかの遅れとノイズ増幅も導入します. 将来,ダイナミックパラメータチューニングとより多くの補助指標を導入することで,戦略の安定性とタイムリー性が向上する可能性があります.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Harmonic System Strategy", overlay=true) harm_average(x,y,z) =>3 / (1 / x + 1 / y + 1 / z) T1 = harm_average(close[1], close[2], close[3]) T2 = harm_average(T1, T1[1], T1[2]) T3 = harm_average(T2, T2[1], T2[2]) T4 = harm_average(T3, T3[1], T3[2]) T5 = harm_average(T4, T4[1], T4[2]) T6 = harm_average(T5, T5[1], T5[2]) Balance = 18 / (1 / T1 * 3 + 1 / T2 * 3 + 1 / T3 * 3 + 1 / T4 * 3 + 1 / T5 * 3 + 1 / T6 * 3) plot(T1,linewidth=2, color=color.green,title="T1") plot(T2,linewidth=1, color=color.blue,title="T2") plot(T3,linewidth=1, color=color.blue,title="T3") plot(Balance,linewidth=2, color=color.black,title="Balance") plot(T4,linewidth=1, color=color.blue,title="T4") plot(T5,linewidth=1, color=color.blue,title="T5") plot(T6,linewidth=2, color=color.red,title="T6") X1 = min(min(T1,T2),T3) X2 = max(max(T4,T5),T6) X3 = min(T1,T2) X4 = max(T3,T4) Buy=crossover(X1,X2) Sell=crossunder(X3,X4) if crossover(X1,X2) strategy.entry("Long", strategy.long, comment="Long") if crossunder(X3,X4) strategy.entry("Short", strategy.short, comment="Short")