一目均衡表クロスオーバー戦略


作成日: 2023-12-19 15:40:53 最終変更日: 2023-12-19 15:40:53
コピー: 0 クリック数: 612
1
フォロー
1621
フォロワー

一目均衡表クロスオーバー戦略

概要

Ichimoku均線交差戦略は,一連の均線を計算し,株価交差信号を認識し,長短多空操作を行う.この戦略は,複数の技術指標を組み合わせて,堅牢で信頼性があり,中長線操作に適している.

戦略原則

Ichimoku均線交差策は,5つの均線からなる特殊な指標体系を使用する.具体的には,交替線,基準線,先行1と先行2と遅延線5つの均線を含む.その中,交替線は近期価格動力の平均線であり,基準線は中長期価格トレンドを反映する.先行線は交替線と基準線を組み合わせて,将来の動きを反映し,遅延線は過去の価格の参照を示す.価格が基準線を破るとき,取引信号を生成する.この策は,実体線フィルターとK線の色判断を組み合わせて,偽の突破を避ける.

戦略的優位性

Ichimoku均線交差策は,複数の技術指標を集めて優れている.移動平均,価格チャネル,量値確認などの複数の戦略思想を融合させ,体系的な方法論体系を形成している.これは,取引信号の accurateness と方向性を保証している.単一の指標策と比較して,この戦略は,偽信号の確率を大幅に削減し,収益因子を向上させる.

戦略リスク

Ichimoku均線交差策は,トレンドフォロー策として,取引のインターバルが長い.これは,短期的な価格の変動を捕捉できないことを意味します.さらに,株価が激しく変動すると,均線指標は失効します.これらの状況では,誤った信号と損失の取引が生じます.リスクを管理するために,ストップ・ロスを採用することをお勧めします.

最適化の方向

Ichimoku平均線交差戦略は,次の方向から最適化することができる:1) 平均線パラメータを調整して,異なる周期と品種に適応する;2) 結合量能指標,価格と取引量関係を確認する;3) 機械学習モデルを導入し,信号判断を改善する;4) 条件とフィルターを追加して,誤った取引の発生確率を減らす.

要約する

Ichimoku均線交差策略は安定して信頼性があり,コア策略として適合し,他のアルゴリズムと組み合わせて使用する.それは明確なトレンド取引方向を提供し,パラメータ調整と多指標最適化は戦略をより賢く柔軟にします.この戦略は,量化トレーダーの重点研究と長期の適用に値する.

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

//Noro
//2018

//@version=3
strategy(title = "Noro's Ichimoku Strategy v1.0", shorttitle = "Ichimoku str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
conversionPeriods = input(9, minval = 1, title = "Conversion Periods")
basePeriods = input(26, minval = 1, title = "Base Periods")
laggingSpan2Periods = input(52, minval = 1, title = "Lagging Span")
usebf = input(true, defval = true, title = "Use body filter")
usecf = input(true, defval = true, title = "Use color filter")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Ichimoku
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

//Lines
plot(conversionLine, color=red, title="Conversion Line")
plot(baseLine, color=blue, title="Base Line")
plot(close, offset = -basePeriods, color=green, title="Lagging Span")
p1 = plot(leadLine1, offset = basePeriods, color=green, title="Lead 1")
p2 = plot(leadLine2, offset = basePeriods, color=red, title="Lead 2")
fill(p1, p2)

//Body Filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 3 or usebf == false

//Color Filter
bar = close > open ? 1 : close < open ? -1 : 0
gb = bar == 1 or usecf == false
rb = bar == -1 or usecf == false

//Signals
up = low > baseLine and rb and body
dn = high < baseLine and gb and body

//Trading
if up
    //if strategy.position_size < 0
    //    strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    //if strategy.position_size > 0
    //    strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()