N バル 閉じる オープン ショート 戦略 下

作者: リン・ハーンチャオチャン, 日付: 2023-12-26 10:29:12
タグ:

img

概要

この戦略は,技術指標に基づいて短期トレンドを特定し,開通価格を下回るNの連続バーの閉店を検出するとショートポジションをとります.これは日中取引戦略です.

戦略の論理

この戦略は,nCounter変数を使用して,開く価格を下回る連続バーの数を数えます. 閉じる価格が開く価格より低いとき,nCounterは1倍増加します. 閉じる価格が開く価格より高いとき,nCounterは0にリセットされます. nCounterが入力パラメータ nLengthに到達すると,開く価格を下回る連続バーをN個表示し,シグナルC2は1になります.

シグナルが出ると,ポジションがない場合,ショートオーダーが送信されます. すでにショートポジションにある場合は,ポジションを保持します. ポジションを開いた後,ポスプライスはエントリー価格を記録します. 収益とストップロスはエントリー価格に基づいて設定されます. 価格が利益ポイント (エントリー + インプットテイクプロフィート) に達した場合,閉店し,リセットします.価格がストップロスのポイント (エントリー - インプットストップロス) に達した場合,閉店し,リセットします.

利点分析

この戦略の主な利点は:

  1. シンプルで明快な論理で 分かりやすく実行できます
  2. 異なる市場条件に合わせて 柔軟に調整できるパラメータ
  3. 利潤とストップロスを利用して リスクを効果的にコントロールします

リスク分析

この戦略の主なリスクは

  1. Nバー 閉じて開いてるより 完全に傾向の逆転を確認できないので 誤った信号が発生する可能性があります. N値を細かく調整するか,検証のために他のフィルターを追加します.
  2. 誤ったストップ・ロースまたはテイク・プロフィートの設定は,早期離脱または増幅損失につながる可能性があります.合理的なパラメータは,市場の変動に応じて設定する必要があります.

オプティマイゼーションの方向性

戦略は以下の側面から改善できます.

  1. 横向市場における短期的訂正を誤判しないためにトレンドフィルターを追加します.例えば,全体的なトレンドを決定するために移動平均と組み合わせます.

  2. 増幅するボリュームはトレンド逆転を より良く確認できます

  3. 利得とストップロスを最適化します. 例えば,後続ストップロスを使って,よりスマートな出口をするために,パーセントストップロスを使います.

  4. リアルタイム市場変化に応じて 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)

もっと