고주파 리프 퍼센트 트래킹 모멘텀 전략 (High-Frequency Flip Percentage Tracking Momentum Strategy) 은 카프만 적응형 이동 평균 (KAMA) 을 기반으로 한 고주파 거래 접근법이다. 이 전략은 15 분과 같은 짧은 시간 프레임에서 거래를 실행하는 동안 1 시간 시간 프레임에서 KAMA 지표를 주요 참조로 사용합니다. 핵심 개념은 가격이 KAMA 라인을 넘을 때 장기 및 단위 포지션 사이에서 빠르게 전환하는 것을 포함하며 1%의 수익 목표를 가지고 작지만 빈번한 이익을 확보합니다. 이 방법은 빠른 수익을 통해 위험을 제어하면서 단기 시장 변동에 대한 자본을 목표로합니다.
이 전략의 핵심은 단기 동향을 파악하고 빈번한 포지션 플리핑을 통해 시장 변동에 적응하기 위해 KAMA 라인을 사용하는 것입니다. 1%의 수익 목표가 수익을 빠르게 고정시키고 보유 시간과 잠재적 위험을 줄이는 것을 보장합니다.
높은 주파수 거래 특성: 전략은 단기 시장 변동성, 거래 주파수 증가 및 잠재적 인 수익 기회를 포착 할 수 있습니다.
위험 통제: 1%의 수익 목표를 설정함으로써 전략은 빠르게 작은 수익을 확보하여 거래 당 위험 노출을 줄일 수 있습니다.
높은 적응력: KAMA 지표는 적응력을 가지고 있으며, 다른 시장 조건에 감수성을 조정하여 전략의 적응력을 향상시킵니다.
높은 자본 효율성: 전략은 사용 가능한 자금을 완전히 활용하여 계좌 잔액의 90%를 위치 크기로 사용합니다.
유출 통제: 빈번한 작은 이윤은 최대 유출을 제어하는 데 도움이 되며, 전략이 더 안정적입니다.
레버리지 잠재력: 적어지는 수익으로 인해 전략은 수익을 증폭시키기 위해 더 높은 레버리지를 사용할 가능성이 있습니다.
완전 자동화: 전략 논리는 인간의 개입을 줄이는 완전히 자동화된 거래를 위해 명확하고 쉽게 구현됩니다.
과도한 거래: 높은 빈도의 플리핑은 과도한 거래, 거래 비용 증가 및 미끄러짐 손실로 이어질 수 있습니다.
불안한 시장에서 불리: 옆으로, 불안한 시장에서, 빈번한 긴 짧은 플립은 축적된 작은 손실로 이어질 수 있습니다.
트렌드 부족: 1%의 수익 목표가 강한 트렌드 시장에서 조기 퇴출을 유발하여 더 큰 수익 기회를 놓칠 수 있습니다.
가짜 브레이크 위험: KAMA 라인 주변에서 빈번하게 가격 교차가 발생하면 여러 개의 가짜 브레이크 거래가 발생할 수 있습니다.
자금 관리 위험: 계좌 잔액의 90%를 위치 크기로 사용하면 연속 손실 중 자본이 빠르게 침식 될 수 있습니다.
제한된 적용 가능성: 전략은 매우 변동성이 높은 시장에서만 적합할 수 있으며, 낮은 변동성 환경에서 성과가 낮을 수 있습니다.
기술적인 의존성: 전략은 KAMA 지표에 크게 의존합니다. 지표가 실패하면 상당한 손실이 발생할 수 있습니다.
동적 영업이익: 고정된 1%의 영업이익 목표를 ATR 또는 변동성에 기반한 동적 영업이익으로 변경하여 다른 시장 조건에 적응하는 것을 고려하십시오.
엔트리 필터링: 가짜 브레이크아웃 거래를 줄이기 위해 추가 필터링 조건 (RSI, 볼륨 등) 을 도입합니다.
트렌드 강도 평가: 진입하기 전에 트렌드 강도를 평가하고, 트렌드가 명확할 때만 거래하여 불안한 시장에서 빈번한 거래를 피합니다.
포지션 관리 최적화: 보다 유연한 포지션 크기 전략을 적용하여 계좌 성과 또는 시장 변동성에 따라 포지션 크기를 조정합니다.
멀티 타임프레임 분석: 무역 방향의 정확성을 향상시키기 위해 더 긴 시간 프레임에서 분석을 통합합니다.
스톱 로스 메커니즘: 개별 거래에서 과도한 손실을 방지하기 위해 적절한 스톱 로스 메커니즘을 도입하십시오.
매개 변수 최적화: 빠른 기간과 느린 기간의 최상의 조합을 찾기 위해 KAMA 매개 변수를 최적화합니다.
시장 적응력: 다른 시장 조건 하에서 전략 매개 변수를 자동으로 조정하거나 거래를 중단할 수 있는 시장 상태 인식 메커니즘을 개발한다.
고주파 리프 퍼센트리 추적 모멘텀 전략 (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 // ----------------------------------------