
この戦略は,技術指標に基づいて市場動向を判断し,連続したN根K線が閉じる時に空白をかける,ショートライン取引戦略である.
この策略はnCounter変数を用いて連続した收収根の数を統計する。閉じる価格がオープン価格より低ければnCounter値を増やし,閉じる価格がオープン価格より高ければnCounterを0にリセットする。nCounterが入力パラメータnLengthに達すると,連続したN根K線收収根が発生し,出力信号C2=1を表示する。
シグナルが現れたら,現在ポジションを持っていない場合は,ポジションを空白にします.空白を保持している場合は,保持を続けます. ポジションを開設した後,Pospriceを使用して開設価格を記録します. 開設価格を基準として,ストップとストップの条件を設定します. 価格がストップポイントに達した場合 (開設価格+入力パラメータのtakeprofit),平仓と再設定;価格がストップポイントに達した場合 (開設価格-入力パラメータのstop数),平仓と再設定.
この戦略の利点は以下の通りです
この戦略の主なリスクは
この戦略は以下の点で最適化できます.
トレンドフィルターを追加し,不明な市場での短期的な調整が誤判されるのを避ける.例えば,平均線などの指標を組み合わせて全体的なトレンドを判断する.
例えば,取引量を増やすことで,トレンドの逆転が確認される.
ストップ・ストップ・ストップ戦略の最適化,例えば,遊離ストップ,比率ストップなどの使用により,ストップ・ストップをより賢くする.
機械学習によるパラメータの最適化により,nLengthの値がリアルタイムで市場の変化に合わせて調整されます.
この戦略は,閉盤価格と開盤価格の大きさの関係に基づいて短期トレンドを判断し,連続したN根K線が閉盤されたときに取引シグナルを生成する. この戦略は,シンプルで直観的で,パラメータは調整可能で,止まり止まりの仕組みで,部分的なノイズ取引をフィルターすることができます. しかし,ある種の偽信号の危険性もあります. 他の波指標の最適化と組み合わせることをお勧めします. この戦略は,パラメータの調整,リスク管理,モデル最適化により,非常に実用的ショートラインツールとして選択できます.
/*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)