리소스 로딩... 로딩...

고주파 플립 비율 추적 모멘텀 전략

저자:차오장, 날짜: 2024-07-29 14:12:08
태그:카마TP

img

전반적인 설명

고주파 리프 퍼센트 트래킹 모멘텀 전략 (High-Frequency Flip Percentage Tracking Momentum Strategy) 은 카프만 적응형 이동 평균 (KAMA) 을 기반으로 한 고주파 거래 접근법이다. 이 전략은 15 분과 같은 짧은 시간 프레임에서 거래를 실행하는 동안 1 시간 시간 프레임에서 KAMA 지표를 주요 참조로 사용합니다. 핵심 개념은 가격이 KAMA 라인을 넘을 때 장기 및 단위 포지션 사이에서 빠르게 전환하는 것을 포함하며 1%의 수익 목표를 가지고 작지만 빈번한 이익을 확보합니다. 이 방법은 빠른 수익을 통해 위험을 제어하면서 단기 시장 변동에 대한 자본을 목표로합니다.

전략 원칙

  1. 주요 트렌드 지표로 1시간 시간 프레임에서 KAMA 라인을 사용합니다.
  2. 가격이 KAMA 라인을 넘어서면 긴 포지션을 열고, KAMA 라인을 넘어서면 짧은 포지션을 열고,
  3. 긴 포지션을 보유 할 때, 가격이 KAMA 라인 아래로 넘어가면 긴 포지션을 닫고 짧은 포지션을 열고, 짧은 포지션의 경우 반대로.
  4. 1%의 수익을 목표로 설정합니다. 일단 도달하면 즉시 포지션을 닫고 계좌 잔액을 재설정합니다.
  5. 각 거래의 위치 크기로 계좌 잔액의 90%를 사용하십시오.
  6. 더 많은 거래 기회를 잡기 위해 더 짧은 시간 (예를 들어, 15 분) 에 거래를 실행하십시오.

이 전략의 핵심은 단기 동향을 파악하고 빈번한 포지션 플리핑을 통해 시장 변동에 적응하기 위해 KAMA 라인을 사용하는 것입니다. 1%의 수익 목표가 수익을 빠르게 고정시키고 보유 시간과 잠재적 위험을 줄이는 것을 보장합니다.

전략적 장점

  1. 높은 주파수 거래 특성: 전략은 단기 시장 변동성, 거래 주파수 증가 및 잠재적 인 수익 기회를 포착 할 수 있습니다.

  2. 위험 통제: 1%의 수익 목표를 설정함으로써 전략은 빠르게 작은 수익을 확보하여 거래 당 위험 노출을 줄일 수 있습니다.

  3. 높은 적응력: KAMA 지표는 적응력을 가지고 있으며, 다른 시장 조건에 감수성을 조정하여 전략의 적응력을 향상시킵니다.

  4. 높은 자본 효율성: 전략은 사용 가능한 자금을 완전히 활용하여 계좌 잔액의 90%를 위치 크기로 사용합니다.

  5. 유출 통제: 빈번한 작은 이윤은 최대 유출을 제어하는 데 도움이 되며, 전략이 더 안정적입니다.

  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. 시장 적응력: 다른 시장 조건 하에서 전략 매개 변수를 자동으로 조정하거나 거래를 중단할 수 있는 시장 상태 인식 메커니즘을 개발한다.

결론

고주파 리프 퍼센트리 추적 모멘텀 전략 (High-Frequency Flip Percentage Tracking Momentum Strategy) 은 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
// ----------------------------------------


관련

더 많은