
Стратегия основана на движении последовательных K-линий, чтобы определить, открывается ли позиция, сравнивая текущую закрывающую цену с закрывающей ценой трех предыдущих K-линий. Когда три последовательных K-линии становятся выше, открывается многосторонняя позиция, а наоборот, она закрывается. В то же время, стратегия использует метод динамического остановки, в котором остановка определяется в зависимости от цены открытия позиции и установленного процента остановки. Этот метод позволяет динамически регулировать остановку, чтобы лучше контролировать риск.
Стратегия использует последовательность K-линий для принятия решений по открытию позиций, а также для управления рисками с использованием динамического метода остановки потерь. Логика стратегии ясна, легко понятна и реализуема, она применима для многих рынков и сортов. Однако в практическом применении необходимо обратить внимание на нетрадиционный риск рынка и оптимизировать параметры, такие как процент остановки потерь. Кроме того, внедрение большего количества технических показателей, методов управления позициями и т. Д.
/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("4 Candle Entry and Exit Strategy", overlay=true)
// Define the stop loss percentage
stopLossPercent = input.float(11, title="Stop Loss Percentage", minval=0.1) / 100
// Identify if the previous 3 candles are consecutively higher
longCondition = close[3] > close[4] and close[2] > close[3] and close[1] > close[2]
// Identify if the previous 3 candles are consecutively lower
exitCondition = close[3] < close[4] and close[2] < close[3] and close[1] < close[2]
// Initialize the entry price and stop loss variables
var float entryPrice = na
var float stopLoss = na
// Update the entry price and stop loss if the long condition is met
if (longCondition)
entryPrice := close[1]
stopLoss := entryPrice * (1 - stopLossPercent)
// Enter the long position at the open of the 4th candle
if (longCondition)
strategy.entry("Long", strategy.long, qty=1)
// Exit the position if exit condition is met or stop loss is hit
if (exitCondition or (strategy.position_size > 0 and low <= stopLoss))
strategy.close("Long")
// Optional: Plot the entry and exit signals on the chart
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY")
plotshape(series=exitCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL")