ブレイクアウト高値と安値バックテスト戦略


作成日: 2024-01-08 16:13:44 最終変更日: 2024-01-08 16:13:44
コピー: 1 クリック数: 575
1
フォロー
1617
フォロワー

ブレイクアウト高値と安値バックテスト戦略

概要

この戦略は,突破周期高低点に基づいてトレンドの方向を判断し,価格突破周期高点時に多し,突破周期低点時に空し,トレンドフォロー戦略に属します.

戦略原則

この策略は,まずユーザが設定した周期 (日線,周線など) と回顧周期の数を読み込む.そして,これらのパラメータに基づいて回顧周期の最高値と最低値を得る.例えば,日線周期,回顧1サイクルとして設定すると,前日の最高値と最低値を得る.

実際の取引では,閉盘価格が回顧周期の最低価格に等しい値より大きい場合は,上方突破として判断し,多額の取引を行う.閉盘価格が回顧周期の最高価格に等しい値より小さい場合は,下方突破として判断し,空白を行う.

この方法では,周期的な高低を突破してトレンドの方向を捉え,トレンド追跡戦略の一種である.

優位分析

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

  1. 突破点に基づいてトレンドの方向を判断し,強さを集計した後の大きなトレンドを簡単に捉えることができます.

  2. 操作は簡単で理解しやすいので,初心者向けに最適です.

  3. 調整周期のパラメータを最適化して,異なる品種に適用できる.

  4. リバース・インプットの設定で逆操作が可能で,戦略が豊富に利用できる.

  5. 周期高低点補助判断を図り,複数の検証を形成する.

リスク分析

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

  1. フィルターによる振動の整理がうまく行われず,複数の誤操作が発生する可能性があります.

  2. ストップ・ロスを制御できない場合,一定程度の損失のリスクがある.

  3. 取引費用に敏感で,実際の利益と損失の偏差がある.

  4. ポジションの規模を制限できず,過量の問題がある.

上記のリスクに対応して,ストップ・ロスの仕組みを設定し,フィルタリング条件を最適化し,ポジション数を制御する方法を最適化する.

最適化の方向

この戦略は以下の方向から最適化できます.

  1. フィルタリングメカニズムを追加し,震動の整理や頻繁に開店を避ける.価格チャネル,波動率などのフィルタリング条件を設定できます.

  2. 移動ストップまたは時間ストップを設定する. 単一の損失のリスクを制御し,全体的な収益性を確保する.

  3. ポジションの規模と資金管理を最適化し,過剰な問題を防止し,戦略の安定性を確保する.

  4. 異なる周期パラメータの効果をテストし,最適のパラメータ組み合わせを選択する.

  5. アルゴリズム取引モジュールを追加し,機械学習アルゴリズムを利用して意思決定の効率性を向上させる.

要約する

全体として,この突破的な高低点回測戦略は,トレンドを追跡して判断方向を判断し,操作が簡単で,初心者向けに適しています.しかし,ブレイクが難しいリスクがあります.フィルタリング条件,ストップダスト機構,ポジション制御などの最適化手段を追加することで,これらのリスクを軽減し,戦略の効果を向上させることができます.この戦略は,我々のさらなる研究と改善のためのアイデアと参考となる役割を果たします.

ストラテジーソースコード
/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 03/07/2018
// This script shows a high and low period value.
//    Width - width of lines
//    SelectPeriod - Day or Week or Month and etc.
//    LookBack - Shift levels 0 - current period, 1 - previous and etc.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="High and Low Levels Backtest", shorttitle="HL Levels", overlay = true)
SelectPeriod = input("D", defval="D")
LookBack = input(1,  minval=0)
reverse = input(false, title="Trade reverse")
xHigh  = request.security(syminfo.tickerid, SelectPeriod, high[LookBack])
xLow   = request.security(syminfo.tickerid, SelectPeriod, low[LookBack])
vS1 = xHigh
vR1 = xLow
pos = iff(close > vR1, 1,
       iff(close < vS1, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )