一目均衡表の定量的取引戦略


作成日: 2023-12-21 15:33:05 最終変更日: 2023-12-21 15:33:05
コピー: 0 クリック数: 634
1
フォロー
1623
フォロワー

一目均衡表の定量的取引戦略

概要

この戦略は,市場技術分析の有名なトレンド指標であるイチモク雲図に基づいており,イチモク雲図の変換線,基準線および雲図の間の交差関係を利用して市場動向を判断し,量的な取引を行います. この戦略は,市場の中期動向を追跡するトレーダーに適しています.

戦略原則

この戦略の核心指標は,イチモク雲図の3つの線である:変換線,基準線,および雲図である.変換線は近期価格動向を表し,基準線は中期価格傾向を表し,雲図は中期および長期のサポートとレジスタンス領域を視覚的に反映している.戦略は,この3つの間の交差関係を判断することによって,市場の傾向と取引を決定する.

具体的には,戦略の論理は以下のルールに基づいています.

  1. 基準線に雲を描くと,中期トレンドが上昇し,多額の労働が増加していることがわかります.

  2. 変換線で雲の図を横切ると,短期的な価格が反発し始め,多額の取引を始める.

  3. 基準線の下の雲のグラフを横切ると,中期トレンドは下落して空白になる.

  4. 線下変換が雲図を横切ったとき,短期価格が下落し始め,空白を表示する.

さらに,偽の信号をフィルターするために,戦略は価格と雲図の交差を補助条件として追加した. 変換線または基準線が雲図を交差し,価格も同時に雲図を交差すると,真の取引信号が生成されるのみである.

優位分析

移動平均などの指標を単独で使用するよりも,この戦略の最大の利点は,複数の時間帯のデータを同時に組み合わせて,市場の構造の変化を判断することです. 変換線は短期的な状況を反映し,基準線は中期的な傾向を反映し,雲図は長期的なサポート抵抗を反映します.

リスク分析

この戦略の最大のリスクは,イチモク雲図自体がパラメータ設定に敏感であることである.パラメータ設定が不適切であれば,誤信号が生じやすいものである.さらに,揺れ動いている状況では,雲図はしばしば平らになり,大量に不確実な信号が生じることがある.戦略の注文の頻繁な開設と停止損失の手数料がかかる.最後に,中長線自体取引は損失拡大のリスクがあり,ストップ・ロスを厳格に制御する必要がある.

リスクの軽減のために,パラメータの組み合わせを調整し,ストップ・ロース,ストップ・ストップの戦略を設定し,他の指標の組み合わせとIchimoku Cloud Graphを使用することも考えることができます.

最適化の方向

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

  1. パラメータの組み合わせを最適化します. 異なる周期長さのパラメータを試して,ターゲット取引品種に最も適合する組み合わせを見つけることができます.

  2. フィルター条件を追加する。他の指標を添加して,トレンド選択においてより信頼性を確保する。例えば,量能指標を添加して,量能が拡大されたときに注文を開くことを確保する。

  3. トレーリングストップまたは時間ストップにより,単一損失をさらに制御できます.

  4. 波段戦略を組み合わせて. 中長線トレンドに基づいて,より短い周期の反転を入場時として識別する.

要約する

Ichimoku Cloud Graphの量化戦略は,基準線,変換線とクラウドグラフの交差を判定して中長期のトレンドを判定し,取引信号として使用する.単一の指標と比較して,複数の時間帯のデータを総合的に判断し,構造的変化をより信頼的に判断することができる.同時に,内在の波機構は,市場騒音を追求するのを避ける.パラメータの最適化とリスクの制御が位置にある場合,この戦略は,安定した余剰収益を生むことができる.

ストラテジーソースコード
/*backtest
start: 2023-11-20 00:00:00
end: 2023-12-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="Ichimoku Cloud", shorttitle="Ichimoku", overlay=true, default_qty_type=strategy.cash, default_qty_value=100000, initial_capital=100000, currency=currency.USD)


conversionPeriods = input(9, minval=1, title="Conversion Line Periods"),
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"),
displacement = input(26, minval=1, title="Displacement")

donchian(len) => avg(lowest(len), highest(len))

conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

plot(conversionLine, color=#0496ff, title="Conversion Line")
plot(baseLine, color=#991515, title="Base Line")
plot(close, offset = -displacement, color=#459915, title="Lagging Span")

p1 = plot(leadLine1, offset = displacement, color=green,
 title="Lead 1")
p2 = plot(leadLine2, offset = displacement, color=red, 
 title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? green : red)



maxlead = max(leadLine1, leadLine2)
minlead = min(leadLine1, leadLine2)

//rules
A = baseLine> maxlead[displacement]
B = crossover(baseLine,  maxlead[displacement])

C = baseLine< minlead[displacement]
D = crossunder(baseLine, minlead[displacement])


E = conversionLine> maxlead[displacement]
F = crossover(conversionLine, maxlead[displacement])

G = conversionLine< minlead[displacement]
H = crossunder(conversionLine, minlead[displacement])


I = close>  maxlead[2*displacement]
J = crossover(close, maxlead[2*displacement])

K = close<minlead[2*displacement]
L = crossunder(close, minlead[2*displacement])


//strategies
if A 
    if E
        strategy.entry("Buy", strategy.long, when= J)
if A 
    if I
        strategy.entry("Buy", strategy.long, when= F)
if E 
    if I
        strategy.entry("Buy", strategy.long, when= B)

if C
    if G
        strategy.entry("Sell", strategy.short, when=L)
if C
    if K
        strategy.entry("Sell", strategy.short, when=H)
if G
    if K
        strategy.entry("Sell", strategy.short, when=D)

//EOS