これはブレイクアウト戦略をフォローするダイナミックなトレンドです. リアルタイムで株式の最高値と最低値を追跡します. 最近の期間の最高値を突破すると,それは長引きます. 最近の期間の最低値を突破すると,それは短引きます. 一方,ストップ損失と利益を取ることはリスクを制御し,固定リスク報酬比を確保するために設定されています.
この戦略の主な論理は,トレンドの価格ブレイクポイントを追跡し取引することです.具体的には,この戦略は,過去20日間の最高値と最低値を計算します.今日の閉じる価格が昨日の最高値を突破すると,それは上向きトレンドブレイクシグナルとみなされ,長引きます.今日の閉じる価格が昨日の最低値を突破すると,それは下向きトレンドブレイクシグナルとみなされ,短引きます.
ロングまたはショートに行く後,1%のストップ・ロストと2%の収益を設定します.これは,各取引に対して2:1の固定リスク・リターン比を保証します.単一の取引のリスクを効果的に制御します.
この戦略の最大の利点は,価格動向の逆転点を迅速に把握し,個々の取引のリスクを制御することです.主な利点は:
最高値と最低値のダイナミックな計算 価格動向の変化をリアルタイムで追跡し,価格逆転の信号を迅速に把握できます
入力料のブレイクアウト方法を使うと入力の質が向上します
ストップ・ロストと得益の設定をすることで,単一の取引のリスク・報酬比を制御することで,取引リスクが効果的に管理されます.
シンプルで理解しやすい論理 量子初心者にも適しています
テストや最適化が容易なコードが少なくなります
この戦略にはいくつかのリスクもあります:
進出の傾向を追跡すれば 価格転換の好ましい転換点を見逃すかもしれません
固定ストップ・ロストとテイク・プロフィートは市場の変化に適応できないため,早期にストップ・アウトや利益目標を達成する可能性があります.
後に追加される物件に対するピラミッドの論理はなく, 傾向を追跡し続けることはできません.
大きなサイクルを考慮しないことにより 損失を引き起こす大きな傾向に 衝突する可能性があります
位置測定モジュールがないため,全体的な位置管理を制御できない.
主に下記の方向性において,最適化のための大きな余地があります.
ダイナミックストップ・ロスを追加し 市場の変動に基づいて 利益を取ります
移動平均値に基づくトレンド方向フィルターを追加して,主要なトレンドとの衝突を回避します.
トレンド強度指標を追加して,強いトレンドのみを入力します.
トレンドを常にフォローすることで 利益を最大化するためにピラミッドの論理を追加します
ポジションサイズを動的に調整し,全体的なリスクを制御するために,ポジションサイズのモジュールと組み合わせます.
パラメータを最適化して最適なパラメータセットを見つけます
概要すると,この戦略は,量子初心者が学習し,全体的に実践するのに適しています.その利点は,単純性と理解が容易で,リスク制御のためのストップ損失と利益論理も含んでいます.しかし,まだ最適化すべき多くの側面があり,さらなる学習の機会として役立つことができます.一般的に言えば,この戦略は,初心者にとって原則から適用までマスターするのに適しています.
/*backtest start: 2023-11-28 00:00:00 end: 2023-12-28 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Trend Following Breakout Strategy with 2:1 RRR", overlay=true) // 定义前高和前低的计算 length = input(20, minval=1, title="Length") highestHigh = highest(high, length) lowestLow = lowest(low, length) // 定义买入和卖出的条件 longCondition = close > highestHigh[1] // 当前收盘价高于前一期的最高价 shortCondition = close < lowestLow[1] // 当前收盘价低于前一期的最低价 // 为了确保盈亏比为2:1,我们需要定义止损和目标价 stopLoss = input(1, title="Stop Loss %") / 100 takeProfit = stopLoss * 2 // 如果满足买入条件,进入多头 if (longCondition) strategy.entry("Long", strategy.long) strategy.exit("Long TP", "Long", profit=takeProfit * close, loss=stopLoss * close) // 如果满足卖出条件,进入空头 if (shortCondition) strategy.entry("Short", strategy.short) strategy.exit("Short TP", "Short", profit=takeProfit * close, loss=stopLoss * close) // 绘图显示前高和前低 plot(highestHigh, color=color.green, title="Previous High") plot(lowestLow, color=color.red, title="Previous Low")