この戦略は"イチモク・キンコ・ヒョー戦略"と呼ばれる.これは他の技術指標と組み合わせたイチモク・キンコ・ヒョーシステムに基づくBTC取引戦略である.
この戦略は主にイチモク・キンコ・ヒョーシステムに基づい,トレンド取引のための複数の技術指標を組み込む.主な構成要素は:
キジュン・セン:市場のトレンド方向を表す.過去26日間の最高値と最低値の真ん中点であり,サポートとレジスタンスラインとして機能する. 閉じる価格がキジュン・センを横切ると購入と売却の信号が生成される.
テンカンセン:価格の勢いを表す.過去9日間の最高値と最低値の真ん中点であり,最良のエントリーと出口スポットを決定するのに役立ちます.
Senkou Span A: イチモク
Senkou Span B: 長期トレンドラインを表す.過去52日の中点である.長期および短期トレンドを決定するためにイチモク雲を形成する.
さらに,この戦略には,過剰購入と過剰販売のゾーンで取引シグナルを生成するためのRSI指標も含まれています.
購入信号は,価格がキジュンセンに突入して雲の上に位置するときに生成される. 売却信号は,価格がキジュンセンに突入して雲下に位置するときに生成される.
イチモクシステムでは 比較的高い得率で トレンドを正確に決定します
複数の指標を組み込むことで 機会を逃すことは避けられます
RSIは逆転スポットを効果的に決定します
クラウドは直感的に 短期的・長期的トレンドを提示します
イチモクシステムには 欠陥があり 他の指標を組み込む必要がある
トレンド市場では非常にうまく機能しますが 市場範囲では控えめです
RSIのパラメータは 市場に応じて調整する必要があります
雲の構造は複雑で 熟練した操作が必要です
イチモクのパラメータを最適化したり,より多くの指標を追加したりできます.
イチモクのパラメータを最適化して 傾向を早く判断する
信号の精度を向上させるため 移動平均値のような指標を追加します
RSIパラメータを異なる市場に基づいて調整する.
リスク管理にストップ・ロスのメカニズムを追加することを検討する.
イチモクは,RSIのような指標と組み合わせると,上昇傾向を捉えるのに高い精度を持っています. イチモクに遅れ,市場範囲に適応できないことが主要なリスクです.適切なパラメータ調節とより多くの指標を追加することで,これらのリスクが大幅に軽減され,戦略がより堅牢で信頼性があります.
/*backtest start: 2022-12-13 00:00:00 end: 2023-12-19 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("My Ichimoku Strat v2", overlay=true,default_qty_type=strategy.fixed, default_qty_value=1, initial_capital=1000, currency=currency.EUR,commission_type=strategy.commission.percent,commission_value=0.05) // === BACKTEST RANGE === FromMonth = input(defval = 3, title = "From Month", minval = 1) FromDay = input(defval = 1, title = "From Day", minval = 1) FromYear = input(defval = 2018, title = "From Year", minval = 2014) ToMonth = input(defval = 1, title = "To Month", minval = 1) ToDay = input(defval = 1, title = "To Day", minval = 1) ToYear = input(defval = 9999, title = "To Year", minval = 2014) // === SERIES SETUP === //**** Inputs ******* KijunSenLag = input(6,title="KijunSen Lag",minval=1) //Kijun-sen //Support resistance line, buy signal when price crosses it KijunSen = sma((high+low)/2,26) buy2 = crossover(close,KijunSen) and (rising(KijunSen,KijunSenLag) or falling(KijunSen,KijunSenLag)) sell2= crossunder(close,KijunSen) and (rising(KijunSen,KijunSenLag) or falling(KijunSen,KijunSenLag)) //Tenkan-Sen TenkanSen = sma((high+low)/2,9) //Senkou Span A SenkouSpanA = (KijunSen + TenkanSen)/2 //Senkou Span B SenkouSpanB = sma((high+low)/2,52) //Cloud conditions : ignore buy if price is under the cloud // Huge cloud means safe support and resistance. Little cloud means danger. buy3 = close > SenkouSpanA and close > SenkouSpanB sell3 = close < SenkouSpanA and close < SenkouSpanB //Chikou Span //Buy signal : crossover(ChikouSpan,close) //Sell Signal : crossunder(ChikouSpan,close) ChikouSpan = close buy1=crossover(ChikouSpan,close[26]) sell1=crossunder(ChikouSpan,close[26]) plotshape(buy1,style=shape.diamond,color=lime,size=size.small) plotshape(sell1,style=shape.diamond,color=orange,size=size.small) //Alerts buyCompteur = -1 buyCompteur := nz(buyCompteur[1],-1) buyCompteur := buy2 or buy3 ? 1 : buyCompteur buyCompteur := buyCompteur > 0 ? buyCompteur + 1 : buyCompteur buyCompteur := sell2 or sell3 ? -1 : buyCompteur sellCompteur = -1 sellCompteur := nz(sellCompteur[1],-1) sellCompteur := sell2 or sell3 ? 1 : sellCompteur sellCompteur := sellCompteur > 0 ? sellCompteur + 1 : sellCompteur sellCompteur := buy2 or buy3 ? -1 : sellCompteur //RSI src = close, len = input(14, minval=1, title="RSI Length") up = rma(max(change(src), 0), len) down = rma(-min(change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) buyRSI = crossover(rsi,40) and close > TenkanSen and rsi[5]<30 and (rsi-rsi[1])>5 sellRSI = crossunder(rsi,60) and close < TenkanSen and rsi[5]>70 and (rsi[1]-rsi)>5 plotshape(buyRSI,style=shape.triangleup,color=lime,transp=0,location=location.belowbar,size=size.small) sell= sell2 and sell3 or (sell1 and buyCompteur <= 8) or sellRSI buy=buy2 and buy3 or (buy1 and sellCompteur <=8) or buyRSI plotchar(buy,char='B',size=size.small,color=lime) plotchar(sell,char='S',size=size.small,color=orange) //plots plot(KijunSen,title="Kijun-Sen",color=blue,linewidth=4) plot(TenkanSen,title="Tenkan-Sen",color=red,linewidth=2) cloudA = plot(SenkouSpanA,title="cloud A", color=lime,offset=26,linewidth=2) cloudB = plot(SenkouSpanB,title="cloud B", color=orange,offset=26,linewidth=2) plot(ChikouSpan,title="lag span",color=fuchsia, linewidth=2,offset=-26) //plot() fill(cloudA,cloudB,color=SenkouSpanA>SenkouSpanB?lime:orange) //plot(close,color=silver,linewidth=4) // === ALERTS === strategy.entry("L", strategy.long, when=(buy and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))) strategy.close("L", when=(sell and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))