
この戦略の主な考えは,毎週の価格トレンドに基づいて多空方向を決定し,看板の場合,陽線形が現れた後に多入;価格が設定されたストップポイントまで上昇するとストップ,設定されたストップポイントまで下落するとストップ.
この戦略は,まず,毎週のトレンドを判断する条件を定義します.
isUptrend = close > close[1]
isDowntrend = close < close[1]
もし現在の閉盤価格が前日の閉盤価格より大きいと判断すると,看板傾向と判断され,逆に下落する.
昼間の取引のシグナルを定義します.
buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend
つまり,前日の閉盘価格が開盘価格 ((陽線),前日の開盘価格が前日の閉盘価格 ((ギャップ)) より大きく,多頭入場条件を満たすため,看板傾向にある.
入場後,ストップ・ロスは前日の閉店価格と前日の実物線長さの1.382倍を引くように設定されます.
stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen())
ストップポイントは,前日の閉店価格と閉店価格の差を2倍に増えた閉店価格に設定されます.
takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss)
損失の追還を実現するために
この戦略の利点は以下の通りです.
この戦略にはいくつかのリスクがあります.
これらのリスクを制御するために,以下の最適化を加えるのを考慮してください.
この戦略は以下の方向から最適化できます.
この戦略は,全体として実用的で,核心構想はトレンド取引を突出し,同時にリスクを制御する. 昼間の短線取引の基本戦略として使用することも,異なる市場と品種に応じてモジュール化して最適化して,多様な取引ポートフォリオを実現することもできる. 実用的な適用では,コスト制御とリスク被覆防止に注意する必要があり,適切なマインドセットを維持することが重要です.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Trend Following Strategy with Stop Loss and Take Profit", overlay=true)
// Function to get previous day's close and open
getPrevDayClose() =>
request.security(syminfo.tickerid, "D", close[1])
getPrevDayOpen() =>
request.security(syminfo.tickerid, "D", open[1])
// Determine weekly trend
isUptrend = close > close[1]
isDowntrend = close < close[1]
// Determine daily conditions for buy
buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend
// Calculate stop loss and take profit
stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen())
takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss)
// Strategy logic
if (isUptrend)
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", loss=stopLoss, profit=takeProfit)
if (isDowntrend)
strategy.entry("Sell", strategy.short)
// Plotting the trend on the chart
plotshape(series=isUptrend, title="Uptrend", color=color.green, style=shape.triangleup, location=location.abovebar)
plotshape(series=isDowntrend, title="Downtrend", color=color.red, style=shape.triangledown, location=location.belowbar)
// Plotting stop loss and take profit levels on the chart
plot(stopLoss, color=color.red, title="Stop Loss", linewidth=2, style=plot.style_cross)
plot(takeProfit, color=color.green, title="Take Profit", linewidth=2, style=plot.style_cross)