資源の読み込みに... 荷物...

定量範囲突破に基づく適応性変動戦略

作者: リン・ハーンチャオチャン開催日:2024年2月22日16時50分46秒
タグ:

img

概要

この戦略は,適応性波動範囲を形成するために,特定の最近の期間で最も高い取引量と最も低い取引量を計算する.現在のサイクルの取引量がこの範囲を突破すると,取引シグナルが生成される.シグナル方向は,市場での突然の大規模な単一の取引を追跡するためのシンプルで効果的な戦略であるインヤングキャンドルスティックによって決定される.

戦略の論理

基本的な論理は,最も最近のNサイクルにおける正と負の取引量の最高値と最低値を計算して適応性変動範囲を形成することです.判断を完了するために,陰陽線信号を考慮しながら,この範囲に基づいて現在の期間に突破が起こるかどうかを決定します.

特定の計算方法は次のとおりです.

  1. 最も高いトランザクション・ボリュームを計算する 最も高いトランザクション・ボリュームと 最低のトランザクション・ボリューム 最低のNサイクル
  2. トランザクションボリュームのボリュームが,現在のサイクルのボリュームよりも大きいかどうかを決定します.
  3. 突破信号判断を完了するために,現在のキャンドルスタイクがインかヤンかどうか組み合わせる
  4. 長信号と短信号を生成する

利点分析

この戦略の主な利点は以下の通りです.

  1. 適応範囲設定は市場の変化に敏感です
  2. 高波動性の急上昇傾向を把握し,取引の欠落率を削減する
  3. 偽の突破を避けるためにキャンドル形判断を組み合わせる
  4. 簡単に実行し,変更する
  5. パラメータは,異なる製品に合わせて調整できます.

リスク分析

この戦略にはいくつかのリスクもあります:

  1. 制御するパラメータを調整する必要があります
  2. 大型サイクルの振動市場では頻繁に誤った信号を生む可能性があります.
  3. 正常な突破と異常な突破を区別できない,判断のための他の指標やパターンを組み込む必要がある
  4. トレンドを追跡できない

サイクルのパラメータを調整し,フィルタリングのための他の指標を組み込むことで最適化できます.

オプティマイゼーションの方向性

戦略はいくつかの方法で最適化できます.

  1. 差異のある市場サイクルに合わせて範囲の長さを調整する間隔を拡大する
  2. 信号をフィルタリングするためにMA,ボリンジャー帯等を組み込む.
  3. 偽信号を避けるためにキャンドルスタイクパターンとの組み合わせを最適化
  4. 戦略がトレンドを追跡できるように 再入場とストップ損失モジュールを追加します

概要

この戦略は全体的にシンプルで実用的です.適応範囲とボリューム価格分析を組み合わせることで,一方的な爆発的な市場を効果的に捕捉することができます.しかし,最大限の効果を達成する前に,適切なパラメータの調整と補完ツールを必要とする誤った信号のリスクもあります.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
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/
// © EvoCrypto

//@version=4
strategy("Ranged Volume Strategy - evo", shorttitle="Ranged Volume", format=format.volume)

// INPUTS {
Range_Length    =   input(5,        title="Range Length",                       minval=1)

Heikin_Ashi     =   input(true,     title="Heikin Ashi Colors")
Display_Bars    =   input(true,     title="Show Bar Colors")
Display_Break   =   input(true,     title="Show Break-Out")
Display_Range   =   input(true,     title="Show Range")
// }

// SETTINGS {
Close           =   Heikin_Ashi ? security(heikinashi(syminfo.tickerid), timeframe.period, close)    : close
Open            =   Heikin_Ashi ? security(heikinashi(syminfo.tickerid), timeframe.period, open)     : open

Positive        =    volume
Negative        =   -volume

Highest         =   highest(volume, Range_Length)
Lowest          =   lowest(-volume, Range_Length)

Up              =   Highest > Highest[1] and Close > Open
Dn              =   Highest > Highest[1] and Close < Open

Volume_Color    =   
 Display_Break and Up   ? color.new(#ffeb3b, 0)     : 
 Display_Break and Dn   ? color.new(#f44336, 0)     : 
 Close > Open           ? color.new(#00c0ff, 60)    : 
 Close < Open           ? color.new(#000000, 60)    : na 
// }

//PLOTS {
plot(Positive,                      title="Positive Volume",    color=Volume_Color,             style=plot.style_histogram,  linewidth=4)
plot(Negative,                      title="Negative Volume",    color=Volume_Color,             style=plot.style_histogram,  linewidth=4)

plot(Display_Range ? Highest : na,  title="Highest",            color=color.new(#000000, 0),    style=plot.style_line,       linewidth=2)
plot(Display_Range ? Lowest  : na,  title="Lowest",             color=color.new(#000000, 0),    style=plot.style_line,       linewidth=2)

barcolor(Display_Bars ? Volume_Color : na)
// }

if (Up)
    strategy.entry("Long Entry", strategy.long)
if (Dn)
    strategy.entry("Short Entry", strategy.short)

もっと