
고주파 역전율 트래킹 운동 전략은 카우프만 적응 이동 평균 (KAMA) 에 기반한 고주파 거래 전략이다. 이 전략은 1시간 시간 프레임에서 KAMA 지표를 주요 참조로 사용하고, 더 짧은 시간 프레임 (예: 15분) 에서 거래한다. 전략의 핵심 아이디어는 가격이 KAMA 라인을 통과할 때 빈 자리를 빠르게 역전하는 것이며, 1%의 수익 목표를 설정하여 소규모이지만 빈번한 수익을 잠금하는 것이다. 이 방법은 시장의 단기 변동을 활용하는 동시에 빠른 스톱을 통해 위험을 통제하는 것을 목표로 한다.
이 전략의 핵심은 KAMA 라인을 사용하여 단기 트렌드를 포착하고, 빈번한 포지션 반전으로 시장의 변동에 적응하는 것이다. 1%의 수익률 목표가 빠른 수익을 확보하고, 포지션 보유 시간과 잠재적인 위험을 줄인다.
높은 주파수 거래 특성: 전략은 단기 시장의 변동성을 포착하여 거래 주파수와 잠재적인 수익 기회를 향상시킵니다.
위험 제어: 1%의 수익률을 목표로 설정함으로써, 전략은 단 한 거래의 위험 노출을 줄여서 작은 수익을 빠르게 고정 할 수 있습니다.
적응성: KAMA 지표는 다양한 시장 조건에 민감성을 조정하여 전략의 적응성을 향상시킬 수 있는 자기 적응성을 가지고 있습니다.
자금 효율성: 90%의 계정 잔액을 포지션 크기로 사용하는 전략으로, 사용 가능한 자금을 최대한 활용한다.
drawdown 제어: 자주 작은 이윤을 얻는 것은 최대 인출을 제어하는 데 도움이 되며, 전략이 더 안정된다.
레버리지 잠재력: 드라우다운이 낮기 때문에, 전략은 더 높은 레버리지를 사용하여 수익을 증대시킬 잠재력이 있다.
완전 자동화: 전략 논리가 명확하고, 완전한 자동화 거래가 가능하며, 인간의 개입이 줄어들었습니다.
과도한 거래: 높은 주파수 반전이 과도한 거래, 거래 비용 증가 및 슬라이드 손실을 초래할 수 있습니다.
흔들리는 시장은 좋지 않다: 가로 수평 흔들리는 시장에서, 빈번한 공중 뒤집이는 연속으로 작은 손실이 축적될 수 있다.
트렌드를 놓치는 것: 1%의 수익 목표가 강한 트렌드 시장에서 조기 청산되어 더 큰 수익 기회를 놓치게 할 수 있습니다.
가짜 브레이크 위험: KAMA 라인 근처에서 가격이 자주 통과하면 여러 개의 가짜 브레이크 거래가 발생할 수 있습니다.
자금 관리 위험: 90%의 계정 잔액을 포지션으로 사용하는 것은 연속적인 손실에 자금을 빠르게 훼손할 수 있다.
적용 제한: 전략은 높은 변동성이 있는 시장에서만 적용될 수 있으며, 낮은 변동성이 있는 시장에서는 효과가 좋지 않다.
기술 의존성: 전략은 KAMA 지표에 크게 의존하고, 지표의 실패는 심각한 손실을 초래할 수 있다.
동적 스톱: 고정 1% 수익 목표가 ATR 또는 변동성에 기반한 동적 스톱으로 변경되는 것을 고려하여 다른 시장 조건에 적응하십시오.
입시 필터: 가짜 브레이크 트레이드를 줄이기 위해 추가 필터 조건을 도입합니다.
트렌드 강도 평가: 포지션을 개시하기 전에 트렌드 강도를 평가하고, 트렌드가 분명할 때만 거래하고, 흔들리는 시장에서 자주 거래하는 것을 피한다.
포지션 관리 최적화: 더 유연한 포지션 관리 전략을 시행하여, 계좌의 이익과 손실이나 시장의 변동에 따라 포지션 크기를 조정한다.
다중 시간 프레임 분석: 더 긴 시간 프레임 분석과 결합하여 거래 방향의 정확성을 향상시킵니다.
손해 방지 장치: 단일 거래의 과도한 손실을 방지하기 위해 적절한 손해 방지 장치를 도입하십시오.
매개 변수 최적화: KAMA의 매개 변수를 최적화하여 최적의 빠른 느린 선 주기 조합을 찾는다.
시장 적응성: 시장 상태를 인식하는 메커니즘을 개발하여 다양한 시장 조건에 따라 전략 매개 변수를 자동으로 조정하거나 거래를 중지합니다.
고주파 역전율 트래킹 동전 전략은 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
// ----------------------------------------