
Strategi peratusan pembalikan frekuensi tinggi yang mengesan momentum adalah strategi perdagangan frekuensi tinggi berdasarkan Kaufman Adaptive Moving Average (KAMA). Strategi ini menggunakan indikator KAMA sebagai rujukan utama pada jangka masa 1 jam dan berdagang pada jangka masa yang lebih pendek (seperti 15 minit). Gagasan utama strategi ini adalah untuk membalikkan kedudukan kosong dengan cepat apabila harga melintasi garis KAMA, sambil menetapkan sasaran keuntungan 1% untuk mengunci keuntungan yang kecil tetapi kerap.
Inti strategi ini adalah untuk menggunakan garis KAMA untuk menangkap trend jangka pendek dan menyesuaikan diri dengan turun naik pasaran dengan menukarkan kedudukan yang kerap. Sasaran keuntungan 1% memastikan keuntungan yang cepat dikunci, mengurangkan masa memegang kedudukan dan risiko yang berpotensi.
Ciri-ciri perdagangan frekuensi tinggi: Strategi ini dapat menangkap turun naik pasaran dalam jangka pendek, meningkatkan frekuensi perdagangan dan peluang keuntungan yang berpotensi.
Kawalan risiko: Dengan menetapkan sasaran keuntungan 1%, strategi ini dapat mengunci keuntungan kecil dengan cepat dan mengurangkan pendedahan risiko pada satu perdagangan.
KAMA mempunyai ciri-ciri penyesuaian diri, yang dapat menyesuaikan kepekaan dan meningkatkan penyesuaian strategi dalam keadaan pasaran yang berbeza.
Kecekapan dana yang tinggi: Strategi menggunakan 90% baki akaun sebagai saiz kedudukan, memanfaatkan sepenuhnya dana yang ada.
Kawalan penarikan balik: keuntungan kecil yang kerap membantu mengawal penarikan balik maksimum dan menjadikan strategi lebih stabil.
Potensi Leverage: Dengan drawdown yang lebih rendah, strategi ini berpotensi untuk menggunakan leverage yang lebih tinggi untuk meningkatkan keuntungan.
Automasi sepenuhnya: Logik strategi yang jelas, mudah untuk mencapai perdagangan sepenuhnya automatik, mengurangkan campur tangan manusia.
Overtrading: Flipping frekuensi tinggi boleh menyebabkan overtrading, meningkatkan kos transaksi dan kehilangan slippage.
Pasaran goyah tidak baik: Dalam pasaran goyah mendatar, sering berbalik-balik boleh menyebabkan kerugian kecil berturut-turut.
Melewatkan Trend: Sasaran keuntungan 1% boleh menyebabkan kerugian yang lebih besar dalam pasaran yang sedang berkembang pesat.
Risiko penembusan palsu: harga yang sering melintasi KAMA mungkin mencetuskan beberapa transaksi penembusan palsu.
Risiko pengurusan wang: Menggunakan baki akaun 90% sebagai kedudukan boleh mengikis wang dengan cepat dalam kerugian berturut-turut.
Sekatan kegunaan: Strategi mungkin hanya sesuai untuk pasaran yang lebih turun naik dan kurang berkesan dalam pasaran yang rendah turun naik.
Ketergantungan teknologi: Strategi ini sangat bergantung kepada KAMA, yang boleh menyebabkan kerugian besar jika indikator gagal.
Hentian dinamik: Pertimbangkan untuk menukar sasaran keuntungan 1% yang tetap kepada hentian dinamik berdasarkan ATR atau kadar turun naik untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
Penapisan masuk: memperkenalkan syarat penapisan tambahan (seperti RSI, jumlah transaksi) untuk mengurangkan perdagangan palsu.
Penilaian kekuatan trend: menilai kekuatan trend sebelum membuka kedudukan, berdagang hanya apabila trend jelas, dan mengelakkan perdagangan yang kerap di pasaran yang bergolak.
Pengurusan kedudukan yang dioptimumkan: menerapkan strategi pengurusan kedudukan yang lebih fleksibel, seperti menyesuaikan saiz kedudukan berdasarkan keuntungan atau kerugian akaun atau turun naik pasaran.
Analisis pelbagai kerangka masa: Analisis kerangka masa yang lebih lama untuk meningkatkan ketepatan arah perdagangan.
Mekanisme penangguhan kerugian: Memperkenalkan mekanisme penangguhan kerugian yang sesuai untuk mengelakkan kerugian yang berlebihan dalam satu transaksi.
Pengoptimuman parameter: Mengoptimumkan parameter KAMA untuk mencari kombinasi jangka masa garis laju yang terbaik.
Kebolehan beradaptasi pasaran: membangunkan mekanisme untuk mengenal pasti keadaan pasaran, menyesuaikan parameter strategi secara automatik atau menangguhkan perdagangan dalam keadaan pasaran yang berbeza.
Strategi pulsa frekuensi tinggi yang mengesan peratusan momentum adalah kaedah perdagangan frekuensi tinggi yang inovatif berdasarkan petunjuk KAMA. Strategi ini bertujuan untuk mencapai keuntungan kecil yang kerap dengan menangkap perubahan trend jangka pendek dengan cepat dan menetapkan sasaran keuntungan tetap. Kelebihannya adalah adaptasi yang tinggi, penarikan rendah dan potensi kecekapan dana yang tinggi, tetapi juga menghadapi cabaran seperti risiko perdagangan berlebihan dan pasaran yang bergolak.
Strategi ini mempunyai potensi untuk meningkatkan lagi prestasi dan kestabilan dengan cara mengoptimumkan syarat-syarat kemasukan, memperkenalkan hentian dinamik, dan meningkatkan pengurusan kedudukan. Walau bagaimanapun, pedagang harus mengetahui sepenuhnya risiko yang terlibat dalam menggunakan strategi ini, dan membuat penyesuaian yang sesuai mengikut keutamaan risiko peribadi dan keadaan pasaran.
/*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
// ----------------------------------------