イチモク・クラウドに基づくビットコイン取引戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-31 11:06:02
タグ:

img

概要

この戦略は,イチモク雲指標に基づいて設計されたビットコイン取引戦略です. 短期線が異なる期間の均衡価格を計算することによって,短期線が長期線を横切るときに取引信号を生成します.

戦略の論理

この戦略は,イチモク雲指標を使用しています. 具体的な公式は:

Lmax = period_max の最高価格

Smax = 最低価格 期間内_max

Lmed = period_med の最高価格

Smed = 最低価格

Lmin = 期間の最高価格_min

Smin = 最低価格 期間内_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)


もっと