
この戦略は,現在のK線と前のK線の閉盘価格を比較して,買入または売却のシグナルを誘発するかどうかを判断する.
具体的には,現在のK線の閉店価格が上位K線の最高価格より高い場合,買入シグナルが誘発され,現在のK線の閉店価格が上位K線の最低価格より低い場合,売り出札シグナルが誘発される.
この戦略の基本的な取引の論理はこうです.
この戦略の全体的な考え方はシンプルで明確で,K線閉盘価格情報を活用してトレンド方向を判断し,同時にストップ・ストップ・コントロールのリスクを設定することで,株式・仮想通貨取引の基本戦略として使用できます。しかし,単一の時間周期のK線形状のみに基づいて,偽信号を生成しやすいため,最適化の余地はまだ十分であり,さらに多くの要因とパラメータの調整を考慮して,戦略の効果を向上させる必要があります。
/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Buy/Sell on Candle Close", overlay=true)
var float prevLowest = na
var float prevHighest = na
var float slDistance = na
var float tpDistance = na
// Specify the desired timeframe here (e.g., "D" for daily, "H" for hourly, etc.)
timeframe = "D"
// Fetching historical data for the specified timeframe
pastLow = request.security(syminfo.tickerid, timeframe, low, lookahead=barmerge.lookahead_on)
pastHigh = request.security(syminfo.tickerid, timeframe, high, lookahead=barmerge.lookahead_on)
if bar_index > 0
prevLowest := pastLow[1]
prevHighest := pastHigh[1]
currentClose = close
if not na(prevLowest) and not na(prevHighest)
slDistance := prevHighest - prevLowest
tpDistance := 3 * slDistance // Adjusted for 1:3 risk-reward ratio
// Buy trigger when current close is higher than previous highest
if not na(prevLowest) and not na(prevHighest) and currentClose > prevHighest
strategy.entry("Buy", strategy.long)
strategy.exit("Buy TP/SL", "Buy", stop=prevLowest - slDistance, limit=prevHighest + tpDistance)
// Sell trigger when current close is lower than previous lowest
if not na(prevLowest) and not na(prevHighest) and currentClose < prevLowest
strategy.entry("Sell", strategy.short)
strategy.exit("Sell TP/SL", "Sell", stop=prevHighest + slDistance, limit=prevLowest - tpDistance)
plot(prevLowest, color=color.blue, title="Previous Lowest")
plot(prevHighest, color=color.red, title="Previous Highest")