ラストキャンドルの戦略は,最後のキャンドルの閉じる価格と開く価格の関係に基づいて市場のトレンド方向を決定し,それに応じて取引信号を生成するトレンドフォロー戦略です.
この戦略の基本的な論理は
具体的には,この戦略は最後のキャンドルスティックのオープニング価格と閉じる価格データを要求し,価格比較に基づいてトレンド方向を決定する. 上向きのトレンドである場合,キャンドルスティックが閉じるときに購入する市場オーダーが表示されます. 下向きのトレンドである場合,販売する市場オーダーが表示されます.
その後,ストップ・ロストとテイク・プロフィート価格が設定される.ロングポジションでは,ストップ・ロスト価格は,そのキャンドルスティックのオープニング価格を係数で掛け,テイク・プロフィート価格は現在の閉店価格である.ショートポジションでは逆である.価格がストップ・ロストまたはテイク・プロフィートをトリガーすると,対応するポジションが閉鎖される.
リスクは,確認のための傾向指標を組み込むこと,ストップ・ロスト/テイク・プロフィートのロジックを最適化すること,バックテスト期間と市場環境を拡大することによって軽減できます.
ラストキャンドル戦略は,シンプルなトレンドフォロー戦略である.最後のキャンドルスタイクを使用してトレンド方向を迅速に判断し,それに応じて取引する.論理は,トレンドフォローのアイデアに準拠して,シンプルで実行しやすい.ストップ損失と利益を取ることもリスクを制御するために設定されています.しかし,最後のキャンドルスタイクに依存するだけで,簡単に罠に巻き込まれることがあります.したがって,トレンドインジケーターと一緒に使用する必要があります.さらに,より多くの技術指標または機械学習モデルを導入することによって,この戦略を改善するにはまだ大きな余地があります.
/*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)