この戦略は,入口ポイントを決定するためにスーパートレンド指標を使用し,指標が逆転するとロングまたはショートになります.また,2%,5%および10%の固定利益で3つの収益オーダーを設定し,異なるレベルでの利益をロックします.
この戦略は,トレンド方向を特定するためにスーパートレンド指標を使用する.スーパートレンドは,平均の真の範囲と倍数因子に基づいています.価格が上部帯を超えると,過剰購入状態を示し,価格が下部帯を下回ると,過剰販売状態を示します.したがって,戦略はエントリを決定するためにスーパートレンド方向の逆転を検知します.
スーパートレンドの変化が0未満の場合,インディケーターが上から下へと逆転し,ロング信号を生成することを示します. スーパートレンドの変化が0を超えると,インディケーターが下から上へと逆転し,ショート信号を生成します. ロングまたはショート信号を受信すると,エントリー価格が記録され,注文が行われます.
この戦略は,固定目標利益をロックするために,入場価格の2%,5%および10%で3つの取利益注文を設定する.これらの注文の割合はそれぞれ25%,50%および25%に設定される.入場信号の後,これらの取利益注文は,異なるレベルの利益を得るために同時に配置される.
この戦略には以下の利点があります.
Supertrend を使ってエントリは,正確な長/短のトレンド逆転ポイントを効果的に把握します.
複数の取利益比率によって 利益が異なるレベルに固定され 引き上げが減少します
2%,5%および10%の保守的な利益目標により,利益の過剰拡大が大きな損失につながらないようにします.
シンプルで明快な論理で 分かりやすく 変更も容易で 初心者にも適しています
この戦略にはいくつかのリスクもあります:
誤ったスーパートレンドパラメータは,逆転信号が欠落し,誤ったエントリにつながる可能性があります.
保守的な利益率は 利益を引き上げる機会を逃すかもしれません
ギャップや限界動きは スーパートレンドの調整の前にストップを誘発する可能性があります
ストップ・ロスの条件がないことは,無制限の損失の可能性を意味します.
戦略を最適化できるいくつかの方法:
感度向上のために異なるスーパートレンドパラメータをテストします
最大損失を制限するためにストップ損失を追加します.
シンボルと時間枠に基づいて 利益率と量を調整します
フィルターを追加して,レンジ・バインド市場での過剰な取引を避ける.
デフォルトの取引サイズを調整して取引ごとにリスクを下げるため,資本利用を最適化する.
この戦略はシンプルで,全体的に実用的です.入場と複数のテイクプロフィートオーダーを使用して,利益をロックし,リスクを効果的に制御します.しかし,ストップを追加し,パラメータを最適化するなど,将来の強化方向性を提供する改善のための余地があります.要約すると,この戦略は,アルゴリズム取引を学び,実践する初心者にとって適しています.
/*backtest start: 2023-01-01 00:00:00 end: 2024-01-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy( "Supertrend with TP", overlay=true ) // Supertrend Settings atrPeriod = input(10, "ATR Length") factor = input.float(3.0, "Factor", step = 0.01) // TP's tp1Open = input.bool(true, "TP1") tp1 = input.float(2.0, "TP Level (%)", step = 0.1) / 100 tp1Amount = input.int(25, "Amount (%)", step = 1) tp2Open = input.bool(true, "TP2") tp2 = input.float(5.0, "TP Level (%)", step = 0.1) / 100 tp2Amount = input.int(50, "Amount (%)", step = 1) tp3Open = input.bool(true, "TP3") tp3 = input.float(10.0, "TP Level (%)", step = 0.1) / 100 tp3Amount = input.int(25, "Amount (%)", step = 1) [_, direction] = ta.supertrend(factor, atrPeriod) entryPrice = 0.0 entryPrice := entryPrice[1] if ta.change(direction) < 0 strategy.entry("Long", strategy.long) entryPrice := close if ta.change(direction) > 0 strategy.entry("Short", strategy.short) entryPrice := close if (tp1Open) strategy.exit ("TP1", from_entry="Long", limit=entryPrice * (1 + tp1), qty_percent=tp1Amount) strategy.exit ("TP1", from_entry="Short", limit=entryPrice * (1 - tp1), qty_percent=tp1Amount) if (tp2Open) strategy.exit ("TP2", from_entry="Long", limit=entryPrice * (1 + tp2), qty_percent=tp2Amount) strategy.exit ("TP2", from_entry="Short", limit=entryPrice * (1 - tp2), qty_percent=tp2Amount) if (tp3Open) strategy.exit ("TP3", from_entry="Long", limit=entryPrice * (1 + tp3), qty_percent=tp3Amount) strategy.exit ("TP3", from_entry="Short", limit=entryPrice * (1 - tp3), qty_percent=tp3Amount)