N 日連続上下戦略
この記事では,N日連続上下戦略の取引論理,利点を,潜在的なリスク,概要を詳細に紹介します.
これは,ユーザーによって定義された連続したアップ日と連続したダウン日に基づいてエントリーと出口を決定する長時間のみの戦略です. 取引論理は非常にシンプルです.
戦略の論理
まず2つのパラメータを設定します
連続BarsUp: 連続したアップ日 連続BarsDown: 連続してダウンした日
2つの変数を記録します.
順番の上昇日 dns: 連続して稼働していない日
毎日の閉店価格を前回の閉店価格と比較して, 上り日か下り日かを判断します. 上りなら上り+1で, 下りなら下りなら下り+1です.
Upsが連続BarsUpに達すると ロングになり DNSが連続BarsDownに達すると ポジションを終了します
連続した上下戦略の論理はこれです.私たちは連続した上下日から長く進み,連続した下下日後に退場します.これは範囲に制限された市場で頻繁な取引を避けます.
利点
シンプルな論理,理解し実行しやすい
連続日設定による短期変動のフィルタリング
ロングのみ,取引が少なく,取引コストが低く,スリップの影響
ストップ・ロスを設定しやすく,単一の取引損失を効果的に制御する
潜在 的 な 危険
ショート・トップができない ショート・トップの機会が逃れている
入力するには,連続した日が必要で,おそらく最高の入口ポイントが欠けている
タイムレイグ,リアルタイムでターンを記録しない
ストップ損失なしの単一の大きな損失
概要
連続アップ/ダウン・デイストラテジーは,そのシンプルさと低周波の取引のために広く人気があります.適切なパラメータチューニングにより,効果的にウィップソウをフィルタリングすることができます.しかし,時間遅れやショートできないような制限もあります.投資家は採用する前に慎重に検討する必要があります.全体的に,中長期トレンドを追跡する際に安定したリターンを求める投資家に適しています.
/*backtest start: 2023-08-12 00:00:00 end: 2023-09-11 00:00:00 period: 12h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Strategy // strategy("Up/Down Long Strategy", overlay=true, initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash) // There will be no short entries, only exits from long. // strategy.risk.allow_entry_in(strategy.direction.long) consecutiveBarsUp = input(1) consecutiveBarsDown = input(1) price = close ups = 0.0 ups := price > price[1] ? nz(ups[1]) + 1 : 0 dns = 0.0 dns := price < price[1] ? nz(dns[1]) + 1 : 0 // Strategy Backesting startDate = input(timestamp("2021-01-01T00:00:00"), type = input.time) finishDate = input(timestamp("2021-12-31T00:00:00"), type = input.time) time_cond = true // Messages for buy and sell message_buy = input("{{strategy.order.alert_message}}", title="Buy message") message_sell = input("{{strategy.order.alert_message}}", title="Sell message") // Strategy Execution if (ups >= consecutiveBarsUp) and time_cond strategy.entry("Long", strategy.long, stop = high + syminfo.mintick, alert_message = message_buy) if (dns >= consecutiveBarsDown) and time_cond strategy.entry("Short", strategy.short, stop = low + syminfo.mintick, alert_message = message_sell)