最後のキャンドル戦略

作者: リン・ハーンチャオチャン,日付: 2023-12-21 12:15:23
タグ:

img

概要

ラストキャンドルの戦略は,最後のキャンドルの閉じる価格と開く価格の関係に基づいて市場のトレンド方向を決定し,それに応じて取引信号を生成するトレンドフォロー戦略です.

戦略の論理

この戦略の基本的な論理は

  1. 最後のキャンドルスタイルのオープニング価格と終了価格を計算します.
  2. 開始価格が閉店価格より低い場合,上向きだと判断し,購入信号を生成します.
  3. オープニング価格が閉じる価格より高くなった場合,ダウントレンドとして判断し,売り信号を生成します.
  4. トレーディング・シグナルに基づいて,ロング・またはショート・ポジションを
  5. ストップ・ロスを設定し,出口ポジションに利益率を設定する

具体的には,この戦略は最後のキャンドルスティックのオープニング価格と閉じる価格データを要求し,価格比較に基づいてトレンド方向を決定する. 上向きのトレンドである場合,キャンドルスティックが閉じるときに購入する市場オーダーが表示されます. 下向きのトレンドである場合,販売する市場オーダーが表示されます.

その後,ストップ・ロストとテイク・プロフィート価格が設定される.ロングポジションでは,ストップ・ロスト価格は,そのキャンドルスティックのオープニング価格を係数で掛け,テイク・プロフィート価格は現在の閉店価格である.ショートポジションでは逆である.価格がストップ・ロストまたはテイク・プロフィートをトリガーすると,対応するポジションが閉鎖される.

利点分析

  • シンプルで明快な戦略論理,理解し実行しやすい
  • 最後のキャンドルスタイクを使用して最新の価格変化トレンドをキャプチャします
  • ダウンサイドリスクを制限するために,ストップ損失と利益の両方を有します.

リスク分析

  • 最後のキャンドルスタイクが引き戻りまたは横向き,ウィップソー確率を増加させる可能性があります
  • 過去のキャンドルに基づいて単に傾向を判断する 罠に囚われる可能性があります,傾向指標を組み込む必要があります
  • バックテストのデータが十分でない場合,オーバーフィットメントが起こる

リスクは,確認のための傾向指標を組み込むこと,ストップ・ロスト/テイク・プロフィートのロジックを最適化すること,バックテスト期間と市場環境を拡大することによって軽減できます.

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

  • 入力タイミングをフィルタリングするために,MA,MACD等を組み込む.
  • ATR を使ってストップ損失パーセントを設定します.
  • 傾向の方向性を決定するための機械学習モデルを導入する
  • ストップ・ロスト/テイク・プロフィート戦略を最適化します.ストップ・ロストを後押ししたり,部分的なテイク・プロフィートなど.

結論

ラストキャンドル戦略は,シンプルなトレンドフォロー戦略である.最後のキャンドルスタイクを使用してトレンド方向を迅速に判断し,それに応じて取引する.論理は,トレンドフォローのアイデアに準拠して,シンプルで実行しやすい.ストップ損失と利益を取ることもリスクを制御するために設定されています.しかし,最後のキャンドルスタイクに依存するだけで,簡単に罠に巻き込まれることがあります.したがって,トレンドインジケーターと一緒に使用する必要があります.さらに,より多くの技術指標または機械学習モデルを導入することによって,この戦略を改善するにはまだ大きな余地があります.


/*backtest
start: 2022-12-14 00:00:00
end: 2023-12-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Last Candle Strategy with Date Range", overlay=true)

// Define the start and end dates for the backtest
startDate = timestamp(2015, 01, 01, 00, 00)
endDate = timestamp(2023, 11, 24, 23, 59)

// Check if the current bar is within the specified date range
withinDateRange = time >= startDate and time <= endDate

// If outside the date range, skip the strategy logic
if (not withinDateRange)
    strategy.close_all()

// Calculate the opening and closing values for the last candle
lastCandleOpen = request.security(syminfo.tickerid, "D", open[1], lookahead=barmerge.lookahead_on)
lastCandleClose = request.security(syminfo.tickerid, "D", close[1], lookahead=barmerge.lookahead_on)

// Determine the trade direction based on the last candle
tradeDirection = lastCandleOpen < lastCandleClose ? 1 : -1  // 1 for buy, -1 for sell

// Plot the last candle's opening and closing values on the chart
plot(lastCandleOpen, color=color.blue, title="Last Candle Open")
plot(lastCandleClose, color=color.red, title="Last Candle Close")

// Execute strategy orders
if (withinDateRange)
    if (tradeDirection == 1)
        strategy.entry("Buy", strategy.long)

    if (tradeDirection == -1)
        strategy.entry("Sell", strategy.short)

// Set stop loss and take profit
stopLoss = 0.01 * lastCandleOpen
takeProfit = close

// Exit strategy
strategy.exit("StopLoss/Profit", from_entry="Buy", loss=stopLoss, profit=takeProfit)
strategy.exit("StopLoss/Profit", from_entry="Sell", loss=stopLoss, profit=takeProfit)



もっと