ノロの価値戦略 v1.1


作成日: 2023-10-24 10:59:38 最終変更日: 2023-10-24 10:59:38
コピー: 0 クリック数: 656
1
フォロー
1617
フォロワー

ノロの価値戦略 v1.1

概要

Noro’s 価値チャネル戦略 v1.1は,価値チャネルと価格変化の方向に基づくトレンド取引戦略である.この戦略は,価値チャネル指標と急速RSI指標を組み合わせて,価値チャネルを突破するK線形状の信号を識別し,連続した赤緑のK線の色反転信号と組み合わせて多空ポジションを確立する.この戦略は,中長線のトレンドの方向を捕捉し,市場の短期的な変動に惑わされないようにすることを目的としている.

戦略原則

この戦略は,まず,過去一定期間の最高価格と最低価格の平均値を計算して,中間値チャネルを構成する.価格がチャネルの下方向からチャネルを突破すると,多頭信号とみなされ,価格がチャネル上方向からチャネルを突破すると,空頭信号とみなされる.

同時に,この戦略は,2つの補助的な判断ルールを組み合わせている:急速RSI指標とK線色. 急速RSIが25%を下回ると,過剰買い状態であると考えられ,価格が反発する可能性がある. 逆に,急速RSIが75%を超えると,価格が超売り領域であると考えられ,価格が下落する可能性がある.

この3つのシグナル指標を統合することで,この戦略は中長線トレンドを効果的に識別し,適切なタイミングでポジションを確立することができる. ポジションの方向が最新のK線の色と対極であるときに,トレンドが変化したと考えられ,その時点で現在のポジションを平準化することができる.

戦略的優位性

この戦略の最大の利点は,複数の指標を組み合わせてトレンドの方向性を判断し,短期市場のノイズに惑わされないことです.具体的には,以下のいくつかの側面が主な利点はあります.

  1. 価値チャネル指標は,中長期トレンドの方向と強さを明確に識別できます. 価格がチャネルを突破して上下軌道に進むと,トレンドが新しい段階に入ることを代表し,より強いシグナルを生成します.

  2. 急速RSI指標は,超買超売の現象を判断し,転換点でのトレンドを追求することを避ける.例えば,超売時に買い,超買時に売る.

  3. K線色判定は,トレンドの継続性をさらに検証し,色が変化した場合,現在のポジションをクローズする.

  4. この戦略は,短期の振動に誤導されないために,連続して2つの同色のK線が通路を突破したときにのみポジションを開きます.

  5. 平均ストップは簡単で有効で,K線色が変化する限り平仓し,損失拡大を最大限に防ぐ.

戦略リスク

この戦略にはいくつかのリスクがあります.

  1. 値チャネルのパラメータが正しく設定されず,チャネルがあまりにも広いか狭すぎると,トレンドの転換点を逃すか,誤った信号を過剰に発生させる.

  2. RSIパラメータの設定が正しくないため,超買いと超売りを正確に判断できず,反転の機会を逃します.

  3. 平均ストップは,波動的なトレンドに過度に敏感になり,頻繁にポジションを平らにする可能性があります.

  4. 価値チャネルを突破した後の具体的運行動向を判断できないことが,損失の拡大につながる可能性があります.

  5. ブラック・スヴァン事件の突発的な打撃に耐えられない国は,大きな損失を被るだろう.

最適化の方向

この戦略には,以下の主な改善策があります.

  1. 価値チャネルのパラメータを動的に調整することで,チャネルが異なる周期と異なる市場の波動に適応できるようになります.

  2. 波動率指数と組み合わせてRSIパラメータを修正し,大きな波動時に感度を下げ,低い波動時に感度上げます.

  3. モバイル・ストップメカニズムの加入により,トレンドの波動幅に応じてストップポジションを設定し,過度に敏感なストップを避ける.

  4. 突破の強さや背の判断を高め,偽突破を回避する.

  5. 歴史データと訓練判断モデルを組み合わせて,トレンド転換が非常に起こりうる時期を判断し,ポジション開設の成功率を向上させる.

  6. ポジション管理戦略の最適化,リスク状況の動向に応じてポジション比率の調整

要約する

Noro’s 価値チャネル戦略 v1.1は,全体的に,シンプルで実用的なトレンド追跡戦略である.中長線トレンドの方向性を識別するために,複数の指標を組み合わせ,より慎重な開場ルールを設定している.ストップ・ロース・メカニズム,動的調整パラメータなどの最適化に関して,さらなる改善の余地がある.しかし,この戦略の全体的な考え方は,明確で,実用化されやすく,協同取引の入門戦略の1つに非常に適しています.パラメータ調整とメカニズムの最適化により,この戦略は,安定した信頼できる量化システムになることができます.

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

//Noro
//2018

//@version=2
strategy(title = "Noro's Price Channel Strategy v1.1", shorttitle = "Price Channel str 1.1", 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")
usecol = input(true, defval = true, title = "Use color strategy")
usersi = input(true, defval = true, title = "Use RSI strategy")
lev = input(1, defval = 1, minval = 1, maxval = 100, title = "leverage")
pch = input(30, defval = 30, minval = 2, maxval = 200, title = "Price Channel")
showcl = input(true, defval = true, title = "Show center-line")
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")
src = close

//Price channel
lasthigh = highest(src, pch)
lastlow = lowest(src, pch)
center = (lasthigh + lastlow) / 2
trend = low > center ? 1 : high < center ? -1 : trend[1]
col = showcl ? blue : na
plot(center, color = col, linewidth = 2)

//Bars
bar = close > open ? 1 : close < open ? -1 : 0
rbars = sma(bar, 2) == -1
gbars = sma(bar, 2) == 1

//Fast RSI
fastup = rma(max(change(src), 0), 2)
fastdown = rma(-min(change(src), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Signals
body = abs(close - open)
abody = sma(body, 10)
up1 = rbars and close > center and usecol
dn1 = gbars and close < center and usecol
up2 = fastrsi < 25 and close > center and usersi
dn2 = fastrsi > 75 and close < center and usersi
exit = (((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2)
lot = strategy.equity / close * lev

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

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