一目均衡表に基づくビットコイン取引戦略


作成日: 2024-01-31 11:06:02 最終変更日: 2024-01-31 11:06:02
コピー: 0 クリック数: 653
1
フォロー
1617
フォロワー

一目均衡表に基づくビットコイン取引戦略

概要

この戦略は,一見均衡表指標に基づいて設計されたビットコイン取引戦略である.これは,異なる周期の最高価格,最低価格の平均値を計算することによって,均衡表を形成し,短い周期線が長い周期線を横断すると取引信号を生成する.

戦略原則

この戦略は,一見均衡表の指標を用いて,具体的計算式は以下の通りである.

Lmax = period_max周期内の最高値

Smax = period_maxの周期内の最低値

Lmed = period_med 周期内の最高値

Smed = period_med 周期内の最低値

Lmin = period_min周期内の最高値

Smin = period_min周期内の最低値

HL1 = (Lmax + Smax + Lmed + Smed)/4

HL2 = (Lmed + Smed + Lmin + Smin)/4

つまり,長周期線HL1と短周期線HL2の均衡値をそれぞれ計算する.短周期線HL2上を長周期線HL1を通るときは,多めにする.短周期線HL2の下を長周期線HL1を通るときは,平仓する.

優位分析

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

  1. 一見均衡表の指標を使用すると,市場騒音を効果的にフィルタリングし,トレンドを識別できます.
  2. 異なる周期線の交差を取引信号として採用することで,偽信号を減らすことができる.
  3. 戦略の論理はシンプルで明快で,理解し,実行しやすい.
  4. 周期パラメータをカスタマイズし,異なる市場環境に対応します.

リスク分析

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

  1. 一目平衡表の指標は遅滞しており,短期信号を逃している可能性がある.
  2. 長期・短期の周期が交差すると 利回りやすい.
  3. 市場が急激に波動する時には,指数から発せられる信号は信頼できないかもしれない.

これらのリスクは,適正なサイクルパラメータの最適化または他の指標と組み合わせることで軽減することができます.

最適化の方向

この戦略は以下の点で最適化できます.

  1. 長期・短期周期のパラメータを最適化し,市場の変化に適応する.
  2. 損失を抑える戦略を導入する.
  3. MACDなどの他の指標と組み合わせると,信号の精度が向上する.
  4. 波動が激しい時期に取引を停止し,大きな損失を避ける.

要約する

この戦略は,一目的な均衡表指標に基づいており,短期線が長期線を突破すると取引シグナルを生成する.単一の指標と比較して,偽のシグナルを効果的にフィルターすることができる.パラメータの最適化とリスク管理により,戦略の安定性と収益性をさらに向上させることができる.

ストラテジーソースコード
/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-30 00:00:00
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/
// © Alferow

//@version=4
strategy("BTC_ISHIMOKU", overlay=true)

period_max = input(20, minval = 1)
period_med = input(10, minval = 1)
period_min = input(16, minval = 1)

Lmax = highest(high, period_max)
Smax = lowest(low, period_max)

Lmed = highest(high, period_med)
Smed = lowest(low, period_med)

Lmin = highest(high, period_min)
Smin = lowest(low, period_min)

HL1 = (Lmax + Smax + Lmed + Smed)/4
HL2 = (Lmed + Smed + Lmin + Smin)/4

p1 = plot(HL1, color = color.red, linewidth = 2)
p2 = plot(HL2, color = color.green, linewidth = 2)

fill(p1, p2, color = HL1 < HL2 ? color.green : color.red, transp = 90)

start = timestamp(input(2020, minval=1), 01, 01, 00, 00)
finish = timestamp(input(2025, minval=1),01, 01, 00, 00)
trig = time > start and time < finish ? true : false

strategy.entry("Long", true, when = crossover(HL2, HL1) and trig)
// strategy.entry("Short", false, when = crossunder(HL2, HL1) and trig)
strategy.close("Long", when = crossunder(HL2, HL1) and trig)