ブールマーケット・ブレークアウト・ダーバス・ボックス・バイ・ストラテジー (Bull Market Breakout Darvas Box Buy Strategy) は,ブルマーケット期間のみロングするダーバス・ボックス・ストラテジーの改変版である.この戦略は,最近の高価格に基づいて最初にボックスエリアを描き,価格がボックスの上部帯を超えると閉値でロングする.
この戦略はダーバスボックス理論に基づいている.ダーバスボックス理論は,価格が統合後にボックスから突破すると,それは良いロングエントリー信号であると考えている.この戦略は,この理論に基づいてロングエントリーを特定する.
ストラテジーは,最初の5日間の低低値を計算し,ボックスの下のバンドをグラフ化します.次に,上位バンドをグラフ化するために過去5日間の最高高値を計算します.閉盤価格が上位バンドを突破すると,トレンドが上昇し,閉盤価格でロングに行くことを示します.
ストップ・ロスの5倍に設定します ストップ・ロスの5倍に設定します
この戦略の利点は以下の通りです.
箱理論を用いて 長いエントリを追いかけるのは 効果的です
明確なブレイクシグナルでロングするだけで 多くの不必要なランダムな取引を回避できます
既定のストップ・ロストとテイク・プロフィートを設定することで リスクをうまくコントロールできます
暴動や熊市のリスクは 牛市中にだけ買えるのです
この戦略にはいくつかのリスクもあります:
箱理論は完璧ではない 突破はさらなる上昇を保証しない
ストップ・ロスを打つ可能性があるブレイクアウト後の引き戻しリスクは考慮されません.
脱出の仕組みがないので 長期にわたって保持することは危険です
パラメータは,異なる市場のために調整する必要があるかもしれません.
リスクに基づいて最適化や改善するためのいくつかの方法:
突破信号の信頼性を確認するためにより多くの指標と組み合わせます.
再検査か 2度目の突破を 確認するまで待って
利潤をロックするには ストップロスを追加します
異なる市場データを使用してパラメータをテストし最適化します
この戦略を改善できる分野は以下の通りです.
ボックスパラメータを最適化し 異なる日のパラメータが より良い結果を得られるかどうかをテストします
フィルタリング指標を追加して,上昇傾向の購入を保証します.例えば,移動平均値と組み合わせます.
ストップ・ロスを最適化し 異なる市場で利益を得ます
利益を追うためにストップロスを追加します.
引き戻りがあるときに利益を得るために出口信号を追加します.
ブルマーケットブレイクダーバスボックスバイストラテジー (Bull Market Breakout Darvas Box Buy Strategy) は,ダーバス理論に基づいたシンプルで効果的なトレンド追いかける戦略である.不必要なランダムな取引を避けるために明確なバイシグナルでしか長くは行われない.また,リスクを制御するために既定のストップロストとテイクプロフィートを有している.この戦略はブルマーケットにはシンプルで実用的であるが,リスクは監視され,さまざまな市場でより安定した利益のためにさらなる最適化が探索できる.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Darvas Box Strategy - Buy Only", overlay=true) start_date = timestamp(2023, 10, 15, 0, 0) boxp = input(5, "BOX LENGTH") LL = lowest(low, boxp) k1 = highest(high, boxp) k2 = highest(high, boxp - 1) k3 = highest(high, boxp - 2) NH = valuewhen(high > k1[1], high, 0) box1 = k3 < k2 TopBox = valuewhen(barssince(high > k1[1]) == boxp - 2 and box1, NH, 0) BottomBox = valuewhen(barssince(high > k1[1]) == boxp - 2 and box1, LL, 0) plot(TopBox, linewidth=2, color=color.green, title="TopBox") plot(BottomBox, linewidth=2, color=color.red, title="BottomBox") // Define entry conditions enterLong = crossover(close, TopBox) // Define exit conditions exitLong = false // No specific exit condition mentioned in the original script // Define stop loss level stopLoss = BottomBox // Define take profit level (2 times the stop loss) takeProfit = stopLoss * 5 // Execute buy trade and set stop loss and take profit strategy.entry("Buy", strategy.long, when = enterLong) strategy.exit("Exit", "Buy", stop = stopLoss, limit = takeProfit) // Plot buy signal arrow plotshape(enterLong, title = "Buy Signal", style = shape.labelup, location = location.belowbar, color = color.green) // Plot stop loss level plot(stopLoss, linewidth=2, color=color.red, title="Stop Loss Level") // Plot take profit level plot(takeProfit, linewidth=2, color=color.rgb(19, 202, 111), title="Take Profit Level") // Hide sell signal arrow plotshape(false, title = "Sell Signal", style = shape.labeldown, location = location.abovebar, color = color.red, transp = 100)