
Strategi ini adalah sistem perdagangan dua arah yang didasarkan pada bentuk penyerapan grafik K. Strategi ini mengidentifikasi bentuk yang memiliki karakteristik penyerapan di pasar dengan menganalisis hubungan arah, amplitudo, dan volume transaksi dari garis K yang berdekatan, dan melakukan perdagangan dengan arah yang sesuai jika memenuhi syarat. Strategi ini menggunakan metode manajemen dana persentase, dengan logika posisi terbuka yang lengkap.
Logika inti dari strategi ini didasarkan pada tiga persyaratan utama:
Ketika ketiga kondisi ini terpenuhi secara bersamaan, strategi akan menentukan arah perdagangan berdasarkan arah garis K terbaru: jika garis yang lebih banyak, maka lebih banyak, jika garis yang kosong. Strategi menggunakan posisi penuh untuk berdagang, dan melacak kepemilikan posisi melalui variabel status.
Strategi ini membangun sistem perdagangan yang lengkap dengan analisis multi-dimensi dari bentuk K-line, amplitudo dan volume transaksi. Meskipun ada risiko tertentu, strategi ini dapat ditingkatkan lebih lanjut dengan stabilitas dan keandalan melalui arah optimasi yang disarankan. Keunggulan inti dari strategi ini adalah metode analisis multi-dimensi dan mekanisme manajemen status yang disempurnakan, cocok untuk digunakan dalam lingkungan pasar yang bergejolak.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Candle Absorption Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Условия индикатора
// 1. Две соседних свечи должны быть разнонаправленными
condition1 = (close[1] > open[1] and close < open) or (close[1] < open[1] and close > open)
// 2. Дельта по цене открытия/закрытия у первой свечи меньше, чем у следующей
delta1 = math.abs(close[1] - open[1])
delta2 = math.abs(close - open)
condition2 = delta1 < delta2
// 3. Объем первой свечи должен быть больше, а последней меньше
condition3 = volume[1] > volume and volume < volume[2]
// Проверяем выполнение всех условий
all_conditions = condition1 and condition2 and condition3
// Определяем направление для входа
is_bullish = close > open // Зеленая свеча больше (бычье поглощение)
is_bearish = close < open // Красная свеча больше (медвежье поглощение)
// Переменные для отслеживания состояния позиции
var float entryPrice = na
var bool isLong = false
var bool isShort = false
// Логика генерации сигналов
buySignal = all_conditions and is_bullish and not isLong
sellSignal = all_conditions and is_bearish and not isShort
// Обработка лонгового входа
if (buySignal)
isLong := true
isShort := false
entryPrice := close
strategy.entry("Long", strategy.long)
// Обработка шортового входа
if (sellSignal)
isLong := false
isShort := true
entryPrice := close
strategy.entry("Short", strategy.short)
// Визуализация точек поглощения
// if all_conditions
// label.new(bar_index, high, "✔", color=is_bullish ? color.green : color.red, textcolor=color.white, style=label.style_circle, size=size.small)
// Логика сброса состояния при закрытии позиции
if (strategy.position_size == 0)
isLong := false
isShort := false
entryPrice := na
// Дополнительно: можно добавить стоп-лосс и тейк-профит (пример ниже)
// strategy.exit("Exit Long", from_entry="Long", stop=low - atr(14), limit=high + atr(14))
// strategy.exit("Exit Short", from_entry="Short", stop=high + atr(14), limit=low - atr(14))