このページでは、英語で紹介されている手法を日本語で分かりやすく紹介しています。 主に、YouTube再生数の多いものをピックアップしています。
QQEMOD&SSL Hybrid手法
以前あったYoutubeの動画が削除されてしまっていたので、手法の要素だけ抽出してオリジナルインジケーターを作りました。
紹介されていたのは、QQEMODとSSL Hybridというインジケーターを使う手法。
割とシンプルなので再現性は高いと思います。
QQEMODが青の時(上昇トレンド)または赤の時(下降トレンド)を確認して、SSL HybridのExit Arrowサインが出たらエントリーするというやり方です。
損切ラインは直近安値。 リスクリワードは1:1。

この画像のところが条件成立ですね。
どの通貨、どの時間足だと成績がいいのか?などもインジケーターをストラテジー化して調査しました。
SSL HybridとQQE MODってどんなインジ?
SSL Hybrid
- 短期と長期の移動平均線を組み合わせたインジケーター。
- 移動平均線が交差する点をトレーディングのシグナルとして利用。短期MAが長期MAを上から下へ交差する場合は売りシグナル、その逆は買いシグナル。
- 特にトレンドが強い市場状況で効果を発揮。
QQE MOD(Quantitative Qualitative Estimation Modified)
- RSI(相対力指数)をベースにしたインジケーター。市場の過熱・過冷を示すのに使われます。
- RSIにボラティリティの要素を加えることで、より精度の高いシグナルを出す。
- トレンドの強さや転換点を識別するのに役立つ。
ザックリこの手法の説明をすると、QQEMODでトレンドの上下を判断。そしてSSL HybridのExit Arrowで、勢いが出た瞬間に乗っかって1:1を取りに行くって感じですね。
TradingViewへの追加方法
2つのインジはどちらもTradingViewの公開スクリプトから無料で追加できます。 SSL Hybridの追加はこちらから。
作者:Mihkel00 さん

「インジケーター」→「検索」から「SSL Hybrid」で出てきます。作者名が「Mihkel00」のものを選んでください。 QQE MODの追加はこちらから。

同じくインジケーター検索から「QQE MOD」で追加できます。
表示を手法用にスッキリさせる
SSL Hybridをデフォルトで入れると、これがめちゃくちゃゴチャゴチャしています。

点とか矢印とかもうわけわかんないですw
なので、Exit Arrow以外の表示を設定でオフにします。
やり方は、インジケーターの設定画面を開いて「スタイル」タブへ。 チェックボックスが並んでいるので、「Exit Arrows」以外をすべてオフにするだけです。

すると、この手法に必要なExit Arrowサインだけ表示されます。 だいぶスッキリして見やすくなりますね。
QQEMODとSSLの要素を使ったオリジナル
先ほど紹介したインジケーターを導入してもできるのですが、改めて1つにまとめたインジケーターを作りました。
今回作ったのはQQEと、SSLの要素を活かしたサインツールです。
名前は「QQE Channel Strategy」

TradingViewでも無料で公開しています。(英語版なので、日本語が良い方は下にあるコードを使ってください)
ストラテジーの設定が入っているのでバックテストにも使えます。
デフォルト条件はこの手法に合わせて、チャネルEMA期間60・SL直近10本の安値/高値・リスクリワード1:1にしてあります。手数料は0.05%(スプレッド込みのイメージ)。
設定画面は4つのグループに分かれています。
- トレンドチャネル チャネルのEMA期間。長くするとトレンド判定がゆっくりになります。
- モメンタムフィルター RSI期間とQQ係数。係数が大きいほどシグナルが絞られます。
- SL/TP 直近何本の安値/高値をSLにするか、リスクリワード比の設定。固定SL/TPをOFFにするとシグナルだけで決済します。
- ストラテジー ロング/ショートの有効・無効とロット数。
好みに合わせて変更してください。
//@version=6
// ============================================================
// QQE Channel Strategy (QCS)
// 完全オリジナル実装
// ① トレンドチャネル(High/Low EMAによる方向判定)
// ② モメンタムフィルター(QQEアルゴリズムコンセプトを独自実装)
// 両者が同方向に揃ったときだけエントリー
// ============================================================
// 手数料・スリッページはPropertiesタブ「Commissions / Slippage」でも変更可能
strategy(
title = "QQE Channel Strategy",
shorttitle = "QCS",
overlay = true,
default_qty_type = strategy.fixed,
default_qty_value = 1,
commission_type = strategy.commission.percent,
commission_value = 0.05, // ← 手数料(%)。Propertiesタブでも変更可
slippage = 2 // ← スリッページ(tick)
)
// ================================================================
// ① 入力設定
// ================================================================
var GRP_CH = "📊 トレンドチャネル"
var GRP_MOM = "📈 モメンタムフィルター"
var GRP_SL = "🛡️ SL / TP"
var GRP_ST = "⚙️ ストラテジー"
// チャネル
chLen = input.int (60, "チャネルEMA期間", minval = 1, group = GRP_CH)
// モメンタム
rsiLen = input.int (14, "RSI期間", minval = 1, group = GRP_MOM)
rsiSmth = input.int (5, "RSIスムージング(EMA)", minval = 1, group = GRP_MOM)
qFactor = input.float(4.238, "QQ係数", minval = 0.1,
step = 0.001, tooltip = "大きいほどシグナルが少なく安定する。推奨範囲 2〜6", group = GRP_MOM)
// SL / TP
useSLTP = input.bool (true, "固定SL/TPを使う",
tooltip = "OFF にするとシグナルベースの決済のみ(出口サイン・モメンタム逆転)", group = GRP_SL)
swingLen = input.int (10, "SL基準:直近N本の安値/高値", minval = 1,
tooltip = "ロング:直近N本の最安値をSLに。ショート:最高値をSLに", group = GRP_SL)
rrRatio = input.float(1.0, "リスクリワード比(TP倍率)", minval = 0.1, step = 0.1,
tooltip = "1.0 = 1:1。SL幅 × この値がTP距離になる", group = GRP_SL)
// ストラテジー
useLong = input.bool (true, "ロング有効", group = GRP_ST)
useShort = input.bool (true, "ショート有効", group = GRP_ST)
lotSize = input.float(1.0, "ロット数", minval = 0.01, step = 0.01, group = GRP_ST)
// ================================================================
// ② トレンドチャネル(独自実装)
// 高値EMA / 安値EMA で価格帯を囲み、抜けた方向でトレンドを判定
// ================================================================
chHigh = ta.ema(high, chLen)
chLow = ta.ema(low, chLen)
var int chDir = 0
chDir := close > chHigh ? 1
: close < chLow ? -1
: nz(chDir[1])
// 出口ライン:内側のEMAを価格が割ったら流れが変わったサイン
chExit = chDir >= 0 ? chLow : chHigh
chBull = chDir == 1
chBear = chDir == -1
chFlipL = ta.change(chDir) != 0 and chBull
chFlipS = ta.change(chDir) != 0 and chBear
exitLong = chBull[1] and ta.crossunder(close, chExit)
exitShort = chBear[1] and ta.crossover (close, chExit)
// ================================================================
// ③ モメンタムフィルター(独自実装)
// RSI → スムージング → 変動量ATR化 → トレーリングバンド
// ================================================================
rsiVal = ta.rsi(close, rsiLen)
rsiSm = ta.ema(rsiVal, rsiSmth)
wilderLen = rsiLen * 2 - 1
rsiDelta = math.abs(rsiSm - nz(rsiSm[1]))
rsiAtr1 = ta.ema(rsiDelta, wilderLen)
dar = ta.ema(rsiAtr1, wilderLen) * qFactor
float lBand = rsiSm - dar
float sBand = rsiSm + dar
lBand := rsiSm > nz(lBand[1]) ? math.max(lBand, nz(lBand[1])) : lBand
sBand := rsiSm < nz(sBand[1]) ? math.min(sBand, nz(sBand[1])) : sBand
var int qDir = 0
qDir := ta.crossover (rsiSm, sBand[1]) ? 1
: ta.crossunder(rsiSm, lBand[1]) ? -1
: nz(qDir[1])
qBull = qDir == 1
qBear = qDir == -1
// ================================================================
// ④ エントリー / イグジット
// ================================================================
entryLong = (chFlipL and qBull)
or (ta.change(qDir) != 0 and qBull and chBull)
entryShort = (chFlipS and qBear)
or (ta.change(qDir) != 0 and qBear and chBear)
exitL = exitLong or (qBear and strategy.position_size > 0)
exitS = exitShort or (qBull and strategy.position_size < 0)
// ── ロング ───────────────────────────────────────────────────
if useLong
if entryLong
slPrice = ta.lowest(low, swingLen) // 直近N本の最安値
risk = math.max(close - slPrice, syminfo.mintick) // SL幅(0除算対策)
tpPrice = close + risk * rrRatio // RR比でTP計算
strategy.entry("Long", strategy.long, qty = lotSize)
if useSLTP
strategy.exit("Long SLTP", "Long",
stop = slPrice,
limit = tpPrice,
comment_loss = "SL",
comment_profit = "TP")
// シグナルベース決済(SLTPより先に来たらそちらで閉じる)
if exitL
strategy.close("Long", comment = "Signal Exit")
// ── ショート ─────────────────────────────────────────────────
if useShort
if entryShort
slPrice = ta.highest(high, swingLen) // 直近N本の最高値
risk = math.max(slPrice - close, syminfo.mintick)
tpPrice = close - risk * rrRatio
strategy.entry("Short", strategy.short, qty = lotSize)
if useSLTP
strategy.exit("Short SLTP", "Short",
stop = slPrice,
limit = tpPrice,
comment_loss = "SL",
comment_profit = "TP")
if exitS
strategy.close("Short", comment = "Signal Exit")
// ================================================================
// ⑤ 描画
// ================================================================
chColor = chBull ? color.new(#00c3ff, 0) : color.new(#ff0062, 0)
plot(chHigh, "CH High", color.new(chColor, 75), 1)
plot(chLow, "CH Low", color.new(chColor, 75), 1)
fill(
plot(chHigh, display = display.none),
plot(chLow, display = display.none),
color.new(chColor, 92)
)
plot(chExit, "Exit Line", chColor, 2)
plotshape(entryLong, "BUY", shape.triangleup, location.belowbar,
color.new(color.green, 0), size = size.normal, text = "BUY", textcolor = color.white)
plotshape(entryShort, "SELL", shape.triangledown, location.abovebar,
color.new(color.red, 0), size = size.normal, text = "SELL", textcolor = color.white)
plotshape(exitLong, "Exit↑", shape.xcross, location.abovebar,
color.new(color.orange, 0), size = size.small)
plotshape(exitShort, "Exit↓", shape.xcross, location.belowbar,
color.new(color.orange, 0), size = size.small)
barcolor(
chBull and qBull ? color.new(#00c3ff, 65)
: chBear and qBear ? color.new(#ff0062, 65)
: na
)
// ================================================================
// ⑥ アラート
// ================================================================
alertcondition(entryLong, "🟢 Long Entry", "{{ticker}} {{interval}}: ロングエントリー")
alertcondition(entryShort, "🔴 Short Entry", "{{ticker}} {{interval}}: ショートエントリー")
alertcondition(exitLong or exitShort, "⚠️ Exit Arrow", "{{ticker}} {{interval}}: イグジットサイン")
alertcondition(entryLong or entryShort or exitLong or exitShort,
"📢 All Signals", "{{ticker}} {{interval}}: シグナル発生")
QQE SSL成績の良かった通貨は?
大切なことなので初めにお伝えしますが、あくまで検証段階で成績の良かったものです。
今後の成績を保証するものではないのでご了承ください。
一番ヤバイ

総じて成績が悪かったのは、5分などの短い時間足です。
手数料負けが起きるので、頻繁過ぎる取引は成績が悪くなりがちです。(条件を変更すると変わるかもしれませんが)
BTC(ビットコイン) 1日足

かなり波は大きいですが、検証時は右肩上がり。映ってない部分はマイナス圏もありましたが、現状はプラスですね。
GOLD 1日足

GOLDもキレイなトレンドが起きている通貨なので、大きい足だと成績がいいですね。
- EUR/USD
- USD/JPY
- GBP/USD
- AUD/USD
- USD/CAD
などの通貨でも調べましたが、調査時マイナスだったりと成績は良くありませんでしたね。
利確や損切条件などを変えると成績はまた変化すると思います。興味のある人はやってみてください。
この手法の感想
注意点としては、Exit Arrowサインが出ていたとしてもQQEMODが微妙に変化するということ。
QQEMODの値が青か赤か微妙な時は見送るのが賢明ですね。
あるいは様子を見つつ、1:1を待たずに0.8ぐらいで早めに決済してしまうのもアリかなと。
大きな足&大きなトレンドが起きやすい通貨でしか成績が良くなかったのが気になりますが、成績のいい通貨が実際にあるということは検証の価値ありかなと。
あと、MT4やMT5など他のツールでチャートを見ている方はぜひ一度TradingViewを見てみてください。



コメント