
取引時間VWMA動的価格上下貫通戦略は,日中の取引時間における取引量重み移動平均 (VWMA) をベースにした定量取引システムである.この戦略は,1分間の時間枠に特に適しており,価格と毎取引日再設定されたVWMAとの関係を監視することによって買入シグナルを生成する.戦略のコアロジックは,価格がVWMAを完全に破るときに取引シグナルを誘発することである.具体的には,図の最低値がVWMAより高いときに買入シグナルが生成され,図の最高値がVWMAより低いときに売り出シグナルが生成される.戦略の説明によると,この戦略の売り出シグナルは,勝率が65%以上で,特に早盤の場には適している.
この戦略の核心原則は,毎取引日再計算されるVWMAを動的参照線として利用し,価格とこの参照線の相対的な位置関係によって潜在的な取引機会を識別することです.戦略の詳細な働き方は以下の通りです.
取引時のVWMA計算策略:55の長さのVWMA指標を使用しているが,従来のVWMAとは異なり,この指標は,その日の市場情勢をより正確に反映することを確保するために,各取引日の初めに再計算される.
信号生成メカニズム:
取引制御の論理戦略: 戦略は,連続した同方向信号の重複入場を防止するスマート取引制御機構を実現します.つまり,購入した信号の後,再び購入するには,信号を販売する必要があります,そしてその逆です.
自動クローズオフ戦略: 自動ですべてのポジションを15時29分 (インド標準時) に平仓し,夜間ポジションを保持しないようにし,夜間リスクを効果的に回避する.
多ポジション管理戦略は,最大10層のピラミッド式加仓をサポートし,資金管理は,アカウントの利便権の10%をポジションコントロールに利用する.
この戦略は,コードを深く分析した結果,以下のような顕著な利点が示されています.
時間の適応性: 戦略は,毎取引日ごとにVWMA計算をリセットすることで,日々の市場条件により良く適応し,歴史データに過度に影響されないようにする.
明らかに入口信号: 策略は,価格がVWMAを完全に突破することを要求して信号を誘発し,偽の突破と震動の状況における誤判を減らす.
方向制御: 取引制御の論理により,戦略は同じ方向の連続入場を避け,方向転換を義務付け,再入場を行うことで,頻繁な取引のリスクを効果的に低減する.
リスク管理: 日常固定時間自動平仓メカニズムは,夜間リスクを効果的に回避し,日中のショートライントレーダーに適しています.
高得率の可能性: 戦略の説明によると,特にセールシグナルが優れたパフォーマンスを発揮し,勝率が65%以上で,トレーダーに高い成功確率を提供している.
柔軟なポジション管理: 投資のピラミッド式加仓戦略を推進し,トレンドが続くとポジションを増やすことができ,収益の可能性を最大化します.
この戦略には多くの利点がありますが,以下の潜在的なリスクがあります.
タイムフレームの制限: 策略は1分間の時間枠に最適であることを明確に示し,他の時間枠で不十分なパフォーマンスを発揮することがあり,これは策略の適用シナリオを制限する.
買取の信号は比較的弱かった.策略説明では,買取シグナルには固定ストップとストップ・ロスの設定が必要とされ,買取シグナルの信頼性が売出シグナルの信頼性より低いことを暗示しており,これは買取操作の収益性を制限する可能性があります.
市場条件に依存する:VWMAは主要指標として横横の振動市場で大量に偽信号を生成する可能性があり,戦略は強いトレンド市場でよりよい結果をもたらす可能性があります.
固定時間の平仓リスク“15:29で平仓を固定することは,有利な市場条件下で早期退出を招き,利益の機会の一部を逃す可能性がある”
パラメータ感度:VWMA長さ55は固定パラメータであり,異なる市場環境では異なるパラメータ設定が必要となり,固定パラメータはすべての市場条件に適合しない場合があります.
リスク軽減の方法:
この戦略は,以下の方向で最適化できます.
市場環境のフィルターを増やすこと:波動率またはトレンド強度指標をフィルタリング条件として導入し,適切な市場環境でのみ信号を生成します.例えば,ATRまたはADX指標によって,現在の市場が戦略に適しているかどうかを判断できます.
VWMAパラメータを最適化する: VWMAの長さを自律的に調整し,市場の変動の動向に応じてパラメータを調整し,異なる市場環境に戦略をより良く適応させる.これは,VWMAの長さを市場の変動率と関連付けることで実現できる.
強化信号確認メカニズム: 確認条件として追加の技術指標または価格パターンを導入し,信号品質を向上させる.例えば,RSI,MACDなどの指標と組み合わせて信号確認を行うことができる.
ポジションの改善策: 固定時間平仓に加えて,市場条件に基づくダイナミック平仓ルールを追加します. 例えば,利益の撤回,目標達成,または技術指標の逆転.
差異的な売買信号処理: 購入と売却のシグナルの異なるパフォーマンス特性を対象に,より保守的なポジション管理と購入シグナルのより厳格なストップ・ロスの策略など,標的の管理戦略を開発する.
資金管理の最適化資金管理の柔軟性を向上させ,信号の強さ,市場の変動,および過去の動きに応じて取引ごとに資金の割合を調整する.
これらの最適化方向は,戦略の安定性と適応性を向上させながらも,その原始的な高い勝利率の特性を維持することを目的としています.
取引時間VWMA動的価格上下貫通戦略は,毎日再配置されたVWMAを動的参照線として利用し,価格が完全にその参照線を破る条件と組み合わせて取引信号を生成する巧妙に設計された日内取引システムである.この戦略は,1分間の時間枠に特に適しており,その売り込み信号は,勝利率65%以上で特に優れたパフォーマンスを発揮している.
戦略の主な優位性は,当日の市場条件に適応性,明確な入場条件,有効なリスク管理メカニズムにある.しかしながら,戦略には,時間枠の制限,購入シグナルの相対的な弱さ,および市場条件への依存性などの潜在的リスクもあります.
この戦略は,市場環境のフィルタリングを増やし,自己適応パラメータを実現し,信号確認メカニズムを強化し,平仓戦略の改善などの最適化措置を講じることで,その安定性と収益性をさらに向上させる潜在性があります.全体的に,これは明確な構造と論理的に厳格な取引戦略であり,特に高い勝利率とリスク管理を追求する日内トレーダーに適しています.
この戦略を適用したいトレーダーには,最初にシミュレーション環境で十分なテストを行い,特に買い信号のパフォーマンスを注意し,自分のリスク承受能力と取引目標に応じてパラメータ設定と資金管理ルールを調整することをお勧めします.
/*backtest
start: 2024-02-29 00:00:00
end: 2025-02-26 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("SVWMA Lx", overlay=true, initial_capital=100000,
default_qty_type=strategy.percent_of_equity, default_qty_value=10, pyramiding=10, calc_on_every_tick=true)
//──────────────────────────────
// Session VWMA Inputs
//──────────────────────────────
vwmaLen = input.int(55, title="VWMA Length", inline="VWMA", group="Session VWMA")
vwmaColor = input.color(color.orange, title="VWMA Color", inline="VWMA", group="Session VWMA", tooltip="VWMA resets at the start of each session (at the opening of the day).")
//──────────────────────────────
// Session VWMA Calculation Function
//──────────────────────────────
day_vwma(_start, s, l) =>
bs_nd = ta.barssince(_start)
v_len = math.max(1, bs_nd < l ? bs_nd : l)
ta.vwma(s, v_len)
//──────────────────────────────
// Determine Session Start
//──────────────────────────────
newSession = ta.change(time("D")) != 0
//──────────────────────────────
// Compute Session VWMA
//──────────────────────────────
vwmaValue = day_vwma(newSession, close, vwmaLen)
plot(vwmaValue, color=vwmaColor, title="Session VWMA")
//──────────────────────────────
// Define Signal Conditions (only on transition)
//──────────────────────────────
bullCond = low > vwmaValue // Bullish: candle low above VWMA
bearCond = high < vwmaValue // Bearish: candle high below VWMA
// Trigger signal only on the bar where the condition first becomes true
bullSignal = bullCond and not bullCond[1]
bearSignal = bearCond and not bearCond[1]
//──────────────────────────────
// **Exit Condition at 15:29 IST**
//──────────────────────────────
sessionEnd = hour == 15 and minute == 29
// Exit all positions at 15:29 IST
if sessionEnd
strategy.close_all(comment="Closing all positions at session end")
//──────────────────────────────
// **Trade Control Logic** (Prevents consecutive same-side signals)
//──────────────────────────────
var bool lastTradeWasBuy = false // Track last trade direction **Reset Direction At Session End**
var bool lastTradeWasSell = false // Track last trade direction **Reset Direction At Session End**
// Reset at new session
if newSession
lastTradeWasBuy := true
lastTradeWasSell := true
//──────────────────────────────
// **Position Management: Entry & Labels**
//──────────────────────────────
if bullSignal and not lastTradeWasBuy //
if strategy.position_size < 0
strategy.close("Short", comment="Exit Short on Bull Signal")
strategy.entry("Long", strategy.long, comment="Enter Long: Buy Call & Sell Put at ATM")
else
strategy.entry("Long", strategy.long, comment="Add Long: Buy Call & Sell Put at ATM")
// Add BUY Label above entry candle
label.new(x=bar_index, y=low - ta.atr(5) * 0.5, text="BUY", color=color.green, textcolor=color.white, size=size.small, style=label.style_label_up, xloc=xloc.bar_index)
lastTradeWasBuy := true // Mark that the last trade was a Buy
if bearSignal and lastTradeWasBuy //
if strategy.position_size < 0
strategy.close("Long", comment="Exit Long on Bear Signal")
strategy.entry("Short", strategy.short, comment="Enter Short: Buy Put & Sell Call at ATM")
else
strategy.entry("Short", strategy.short, comment="Add Short: Buy Put & Sell Call at ATM")
// Add SELL Label below candle
label.new(x=bar_index, y=high + ta.atr(5) * 0.5, text="SELL", color=color.red, textcolor=color.white, size=size.small, style=label.style_label_down, xloc=xloc.bar_index)
lastTradeWasBuy := false // Mark that the last trade was a Sell
//──────────────────────────────
// **Updated Alert Conditions**
//──────────────────────────────
alertcondition(bullSignal and not lastTradeWasBuy,
title="Long Entry Alert",
message="Bullish signal: BUY CALL & SELL PUT at ATM. Entry allowed.")
alertcondition(bearSignal and lastTradeWasBuy,
title="Short Entry Alert",
message="Bearish signal: BUY PUT & SELL CALL at ATM. Entry allowed.")