イチモク移動平均クロスオーバー戦略

作者: リン・ハーンチャオチャン開催日:2023年12月19日 15:40:53
タグ:

img

概要

イチモク移動平均クロスオーバー戦略は,一連の移動平均を計算し,価格クロスを検出することによって,長期と短期のシグナルを識別する.この戦略は複数の技術指標を組み合わせ,中長期取引に堅牢かつ信頼性の高い取引を提供します.

戦略の論理

イチモク戦略は,5つの移動平均線,すなわち変換線,ベースライン,リードスパン1,リードスパン2,レイグスパンからなる専門システムを使用する.具体的には,変換線は最近の価格勢いを描写し,ベースラインは中長期トレンドを示し,リードラインは変換とベースを組み合わせて将来の動きを予測し,レイグスパンでは過去価格を参照として表示する.価格がベースラインを突破すると取引信号が生成される.戦略にはボディフィルターとキャンドルスタイクの色も組み込まれ,偽のブレイクを避ける.

利点

イチモク戦略は,さまざまな技術指標の強みを1つのシステムに統合する.移動平均,価格チャネル,ボリューム確認などの概念を統合し,体系的な方法論を形成する.これは取引信号の正確性と方向性を保証する.単一指標戦略と比較して,誤った信号を大幅に削減し,利益因子を増加させる.

リスク

イチモク戦略は,トレンドフォローシステムとして,比較的長い取引間隔を有する.これは,短期間の価格振動を捕まえることができないことを意味します.また,価格が激しく変動すると移動平均は失敗します.そのような状況は間違った信号と損失につながる可能性があります.リスクを制御するためにストップを使用することがお勧めです.

増進 の 機会

イチモク戦略は以下のような分野では改善できる: 1) 異なる期間や商品の平均パラメータを調整する; 2) 価格と量の関係を確認するためのボリューム指標を組み込む; 3) 信号決定を精査するための機械学習モデルを導入する; 4) 誤った取引確率を下げるためにより多くのフィルターを追加する.

結論

安定かつ信頼性の高いイチモク移動平均クロスオーバー戦略は,他のアルゴリズムと組み合わせたコア戦略として適しています.パラメータ調節とマルチインジケーター最適化による明確なトレンドガイドと柔軟性により,量子トレーダーによる深層研究と長期的適用に価値があります.


/*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()

もっと