この戦略の主な考え方は,週間の価格動向に基づいて,ロングとショートの方向性を決定することです. 上向きの傾向では,上昇したキャンドルスティックパターンがあるときにロングになります. 価格が既定の利益レベルに上昇すると利益を得,既定のストップ損失レベルに落ちると損失を止めます.
戦略はまず,週間の傾向を判断するための条件を定義します.
isUptrend = close > close[1]
isDowntrend = close < close[1]
現在の閉店率が前回の閉店値より高くなった場合,上向きだと判断されます.そうでなければ,下向きです.
次に,日中取引信号を定義します.
buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend
つまり,前回の閉店は前回の開店 (バリーッシュキャンドル) より高く,前回の開店は前日の閉店 (ギャップアップ) より高く,上昇傾向にあります.これらの基準はロングエントリー条件を満たします.
ポジションに入ると,ストップロスは前日の実質値の1.382倍をマイナス1倍に設定します.
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)