この戦略は,技術指標に基づいて短期トレンドを特定し,開通価格を下回るNの連続バーの閉店を検出するとショートポジションをとります.これは日中取引戦略です.
この戦略は,nCounter変数を使用して,開く価格を下回る連続バーの数を数えます. 閉じる価格が開く価格より低いとき,nCounterは1倍増加します. 閉じる価格が開く価格より高いとき,nCounterは0にリセットされます. nCounterが入力パラメータ nLengthに到達すると,開く価格を下回る連続バーをN個表示し,シグナルC2は1になります.
シグナルが出ると,ポジションがない場合,ショートオーダーが送信されます. すでにショートポジションにある場合は,ポジションを保持します. ポジションを開いた後,ポスプライスはエントリー価格を記録します. 収益とストップロスはエントリー価格に基づいて設定されます. 価格が利益ポイント (エントリー + インプットテイクプロフィート) に達した場合,閉店し,リセットします.価格がストップロスのポイント (エントリー - インプットストップロス) に達した場合,閉店し,リセットします.
この戦略の主な利点は:
この戦略の主なリスクは
戦略は以下の側面から改善できます.
横向市場における短期的訂正を誤判しないためにトレンドフィルターを追加します.例えば,全体的なトレンドを決定するために移動平均と組み合わせます.
増幅するボリュームはトレンド逆転を より良く確認できます
利得とストップロスを最適化します. 例えば,後続ストップロスを使って,よりスマートな出口をするために,パーセントストップロスを使います.
リアルタイム市場変化に応じて nLength などのパラメータを動的に調整する機械学習モデルを使用します
この戦略は,閉値と開値の関係に基づいて短期トレンドを識別する.開値以下に閉じるNの連続バーを検出すると取引信号が生成される.この戦略は直感的で,カスタマイズ可能で,効果的なリスク管理が備わっています.しかし,一定のレベルの誤った信号が存在します.最適化のために追加のフィルターを組み合わせることが推奨されています.パラメータチューニング,リスク管理,モデル強化により,これは短期取引のための非常に実践的なツールになります.
/*backtest start: 2023-12-18 00:00:00 end: 2023-12-25 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 05/02/2020 // Evaluates for n number of consecutive lower closes. Returns a value // of 1 when the condition is true or 0 when false. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title="N Bars Down", shorttitle="NBD Backtest", overlay = false) nLength = input(4, minval=1) input_takeprofit = input(20, title="Take Profit pip", step=0.01) input_stoploss = input(10, title="Stop Loss pip", step=0.01) nCounter = 0 nCounter := iff(close[1] <= open[1], nz(nCounter[1],0)+1, iff(close[1] > open[1], 0, nCounter)) C2 = iff(nCounter >= nLength, 1, 0) posprice = 0.0 pos = 0 barcolor(nz(pos[1], 0) == -1 ? color.red: nz(pos[1], 0) == 1 ? color.green : color.blue ) posprice := iff(C2== 1, close, nz(posprice[1], 0)) pos := iff(posprice > 0, -1, 0) if (pos == 0) strategy.close_all() if (pos == -1) strategy.entry("Short", strategy.short) posprice := iff(low <= posprice - input_takeprofit and posprice > 0, 0 , nz(posprice, 0)) posprice := iff(high >= posprice + input_stoploss and posprice > 0, 0 , nz(posprice, 0)) plot(C2, title='NBD', color=color.red)