Стратегия отслеживания импульса с высокой частотой переворота в процентах

KAMA TP
Дата создания: 2024-07-29 14:12:08 Последнее изменение: 2024-07-29 14:12:08
Копировать: 0 Количество просмотров: 560
1
Подписаться
1617
Подписчики

Стратегия отслеживания импульса с высокой частотой переворота в процентах

Обзор

Высокочастотная стратегия переворачивания процентов, которая отслеживает динамику, - это высокочастотная торговая стратегия, основанная на адаптированном движущемся среднем Кауфмана (KAMA). Стратегия использует индикатор KAMA в качестве основного эталона на 1-часовом временном фреймве и торгует на более коротком временном фреймве (например, 15 минут).

Стратегический принцип

  1. В качестве основного индикатора тренда используется 1-часовая линия KAMA.
  2. Открытие позиции с несколькими позициями при пересечении линии KAMA вверх и пустой позиции при пересечении линии KAMA вниз.
  3. При владении позицией с множественными позициями, если цена пересекает KAMA-линию ниже, множественная позиция ликвидируется и открывается пустая; и наоборот.
  4. Поставьте себе цель получить 1% прибыли. Как только цель будет достигнута, немедленно ликвидируйте позиции и перезагрузите баланс счета.
  5. Используйте 90% баланса счета в качестве размера позиции для каждой сделки.
  6. Выполнение сделок в более короткие временные рамки (например, 15 минут) для захвата большего количества торговых возможностей.

В основе стратегии лежит использование KAMA-линии для захвата краткосрочных тенденций и адаптации к рыночным колебаниям с помощью частых поворотов позиций. Цель прибыли в 1% обеспечивает быструю блокировку прибыли, сокращает время удержания позиции и потенциальный риск.

Стратегические преимущества

  1. Высокая частота торговли: стратегия позволяет зафиксировать краткосрочные колебания рынка, повышая частоту торгов и потенциальные возможности для получения прибыли.

  2. Управление рисками: С помощью целевой прибыли в размере 1%, стратегия позволяет быстро закрепить небольшую прибыль и снизить риск, связанный с одной сделкой.

  3. Адаптируемость: индикатор KAMA обладает адаптивными свойствами, позволяющими корректировать чувствительность в различных рыночных условиях, повышая адаптивность стратегии.

  4. Высокая эффективность: стратегия использует 90% баланса счета в качестве размера позиции, максимально используя доступные средства.

  5. Контроль drawdown: Частые небольшие выигрыши помогают контролировать максимальный вывод, что делает стратегию более стабильной.

  6. Потенциал для использования: из-за низкой доходности у стратегии есть потенциал для использования более высокого уровня.

  7. Полная автоматизация: четкая логика стратегии, легкость в реализации полностью автоматизированных сделок, сокращение человеческого вмешательства.

Стратегический риск

  1. Перепланировка: высокая частота переворачивания может привести к перепланировке, увеличению затрат на транзакции и потере скользящих точек.

  2. Неблагоприятный эффект от колебания рынка: в случае колебания рынка в сторону, частое перевертывание может привести к накоплению небольших убытков.

  3. Пропущенные тренды: Цель прибыли в 1% может привести к преждевременному погашению позиций на рынках с сильной тенденцией и к упущению возможности для большей прибыли.

  4. Риск ложного прорыва: частое пересечение цены вблизи линии KAMA может спровоцировать множество ложных сделок.

  5. Риск управления деньгами: использование 90% баланса счета в качестве позиции может быстро разрушить средства при последовательных убытках.

  6. Ограничения применимости: Стратегия может применяться только на рынках с высокой волатильностью и неэффективна в низковолатильных рынках.

  7. Техническая зависимость: стратегия сильно зависит от показателя KAMA, который может привести к серьезным убыткам, если он не сработает.

Направление оптимизации стратегии

  1. Динамическая остановка: рассмотреть возможность изменения фиксированной цели 1% доходности на динамическую остановку, основанную на ATR или волатильности, в соответствии с различными рыночными условиями.

  2. Входные фильтры: ввод дополнительных фильтров (например, RSI, объем сделок) для уменьшения ложных прорывов.

  3. Оценка силы тренда: оценить силу тренда перед открытием позиции, торговать только тогда, когда тенденция ясна, избегать частых торгов на волатильных рынках.

  4. Оптимизация управления позициями: реализация более гибких стратегий управления позициями, таких как корректировка размеров позиций на основе прибыли или убытков счета или рыночных колебаний.

  5. Анализ нескольких временных рамок: в сочетании с более длительными временными рамками, повышается точность направления торгов.

  6. Стойкость к убыткам: внедрение надлежащих механизмов сдерживания убытков, предотвращающих чрезмерные потери в отдельных сделках.

  7. Параметровая оптимизация: оптимизация параметров KAMA для поиска оптимальной комбинации быстрого и медленного линейного цикла.

  8. Рыночная адаптивность: разработка механизмов для идентификации состояния рынка, автоматической корректировки параметров стратегии или приостановки торговли в различных рыночных условиях.

Подвести итог

Высокочастотная стратегия отслеживания динамики процента переворота является инновационным высокочастотным методом торговли, основанным на индикаторе KAMA. Эта стратегия направлена на достижение частой небольшой прибыли путем быстрого улавливания изменений в краткосрочных тенденциях и установления фиксированной цели получения прибыли. Ее преимущества заключаются в высокой адаптивности, низком разрыве и потенциально высокой эффективности капитала, но в то же время она также сталкивается с такими проблемами, как чрезмерная торговля и рыночные риски.

Эта стратегия имеет потенциал для дальнейшего повышения ее производительности и стабильности путем оптимизации условий входа, внедрения динамических стопов и улучшения управления позициями. Тем не менее, трейдеры, использующие эту стратегию, должны быть полностью осведомлены о ее рисках и соответствующим образом адаптировать ее в соответствии с личными предпочтениями в отношении риска и рыночными условиями. В целом, это потенциальная стратегия количественной торговли, особенно подходящая для инвесторов, которые ищут высокочастотные, низкорисковые торговые возможности.

Исходный код стратегии
/*backtest
start: 2023-07-23 00:00:00
end: 2024-07-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// indicator('TeeLek Flip 1 Percent', shorttitle='TeeLek Flip 1 Percent', overlay=true)
strategy("TeeLek Flip 1 Percent", shorttitle="TeeLek Flip 1 Percent", overlay=true)

// ----------------------------------------
// Input
// ----------------------------------------
BALANCE_USDT = input.float(1000, title="Start Balance (USDT)", minval=100)
PERCENT_POSITION_SIZE = input.float(90, title="Position Size (%USDT)", minval=1, maxval=100)
PERCENT_TAKE_PROFIT = input.float(10, title="Take Profit (%)", minval=0.1, maxval=100)
// KAMA Setup
KAMA_PERIOD = int(10)
KMA_FAST_LEN = input.int(5, "KMA Fast Legnth", minval=1,group="KAMA Setup")
KMA_SLOW_LEN = input.int(50, "KMA Slow Legnth", minval=1,group="KAMA Setup")

// ----------------------------------------
// Function
// ----------------------------------------
pine_kama(source) =>
    price_change = math.abs(source - source[KAMA_PERIOD])
    sum_price_change = math.sum(math.abs(source - source[1]), KAMA_PERIOD)
    fastest = 2/(KMA_FAST_LEN + 1)
    slowest = 2/(KMA_SLOW_LEN + 1)
    ER = price_change / sum_price_change
    SC =  math.pow((ER * (fastest-slowest) + slowest), 2)
    alpha = SC
    sum = 0.0
    sum := na(sum[1]) ? source : sum[1] + SC * (source - nz(sum[1]))

// ----------------------------------------
// Variable
// ----------------------------------------
var CurrentBalance_USDT = float(0)
var Accom_USDT = float(0)
var PositionSize_USDT = float(0)
var PositionSize_BTC = float(0)
var PositionTarget_USDT = float(0)
var TargetPrice = float(0)

var Long_BTC = float(0)
var Long_AvgPrice = float(0)
var Short_BTC = float(0)
var Short_AvgPrice = float(0)

var Long_Profit = float(0)
var Short_Profit = float(0)
// เริ่มต้นจากจำนวน Balanace ที่กำหนดมาให้
if CurrentBalance_USDT==0
    CurrentBalance_USDT:=BALANCE_USDT

// ----------------------------------------
// Signal
// ----------------------------------------
// kama line
kama_1h = request.security(syminfo.tickerid, "60",pine_kama(close))

// ----------------------------------------
// Strategy Preparing
// ----------------------------------------
// คำนวณ Position Size เตรียมเอาไว้
PositionSize_USDT:=CurrentBalance_USDT*PERCENT_POSITION_SIZE/100
PositionSize_BTC:=PositionSize_USDT/close
// คำนวณหามูลค่าเป้าหมาย ถ้าถึงก็จะขายเลย
PositionTarget_USDT:=CurrentBalance_USDT+(CurrentBalance_USDT*PERCENT_TAKE_PROFIT/100)

// ถ้ายังไม่ได้เปิด Order // ให้รอ ราคาตัดเส้น KAMA 1H ก่อน
if Long_BTC==0 and Short_BTC==0
    // ตัดขึ้น ให้ซื้อขึ้น Long
    if close>kama_1h and close[1]<=kama_1h[1]
        strategy.entry("L", strategy.long)
        Long_BTC:=PositionSize_BTC
        Long_AvgPrice:=close
    // ตัดลง ให้ซื้อลง  Short
    else if close<kama_1h and close[1]>=kama_1h[1]
        strategy.entry("S", strategy.short)
        Short_BTC:=PositionSize_BTC
        Short_AvgPrice:=close

// ----------------------------------------
// Strategy Switch Side
// ----------------------------------------
// ถ้าเปิด Long อยู่
if Long_BTC>0 
    // ถ้าตัดลง ให้ปิด Long แล้วซื้อลง Short
    if close<kama_1h and close[1]>=kama_1h[1]
        strategy.close_all("X")
        strategy.entry("S", strategy.short)
        Accom_USDT:=Accom_USDT+(close*Long_BTC)-(Long_AvgPrice*Long_BTC)
        Long_AvgPrice:=0
        Long_BTC:=0
        Short_AvgPrice:=close
        Short_BTC:=PositionSize_BTC
// ถ้าเปิด Short อยู่
if Short_BTC>0
    // ตัดขึ้น ให้ปิด Short แล้วซื้อขึ้น Long
    if close>kama_1h and close[1]<=kama_1h[1]
        strategy.close_all("X")
        strategy.entry("L", strategy.long)
        Accom_USDT:=Accom_USDT+(Short_AvgPrice*Short_BTC)-(close*Short_BTC)
        Short_AvgPrice:=0
        Short_BTC:=0
        Long_AvgPrice:=close
        Long_BTC:=PositionSize_BTC

// ----------------------------------------
// Strategy Take Profit
// ----------------------------------------
// ถ้าเปิด Long อยู่
if Long_BTC>0
    // คำนวณหาราคา Target price
    TargetPrice:=(PositionTarget_USDT+(Long_AvgPrice*Long_BTC)-(CurrentBalance_USDT+Accom_USDT))/Long_BTC
    // ถ้าราคามากกว่าราคาเป้าหมายก็ปิดทำกำไรได้เลย
    if close>=TargetPrice
        strategy.close_all("Take Profit")
        // เก็บกำไรเป็นทุน ไปเริ่มรอบใหม่
        CurrentBalance_USDT:=CurrentBalance_USDT+(close*Long_BTC)-(Long_AvgPrice*Long_BTC)
        Long_BTC:=0
        Long_AvgPrice:=0
        Accom_USDT:=0

// ถ้าเปิด Short อยู่
if Short_BTC>0
    // คำนวณหาราคา Target price
    TargetPrice:=((CurrentBalance_USDT+Accom_USDT)+(Short_AvgPrice*Short_BTC)-PositionTarget_USDT)/Short_BTC
    // ถ้าราคามากกว่าราคาเป้าหมายก็ปิดทำกำไรได้เลย
    if close<=TargetPrice
        strategy.close_all("Take Profit")
        // เก็บกำไรเป็นทุน ไปเริ่มรอบใหม่
        CurrentBalance_USDT:=CurrentBalance_USDT+(Short_AvgPrice*Short_BTC)-(close*Short_BTC)
        Short_BTC:=0
        Short_AvgPrice:=0
        Accom_USDT:=0

// ----------------------------------------
// Draw
// ----------------------------------------
// KAMA
plot(kama_1h,"KAMA 1H", #f18a23 , linewidth = 2)

// ----------------------------------------
// Alert
// ----------------------------------------

// ----------------------------------------
// Info Table
// ----------------------------------------