Strategi perdagangan momentum menganalisis perbandingan kekuatan posisi panjang dan pendek melalui hubungan antara harga pembukaan, harga tertinggi, dan harga terendah selama periode waktu tertentu, yang secara tidak langsung memungkinkan kita untuk memahami distribusi saat ini kekuatan panjang dan pendek di pasar.
Analisis momentum harga telah banyak digunakan dalam pesanan spekulatif manual tradisional, terutama dalam menentukan tren sepihak pada hari itu. Klisé lama, apa yang harus dimanfaatkan dari situasi. Kuantifikasi terbaik dari situasi adalah kuantifikasi perbandingan kekuatan antara sisi posisi panjang dan pendek. Analisis momentum harga adalah salah satu indikator terbaik.
Makalah ini akan menggunakan strategi ini untuk mengembangkan program perdagangan spot otomatis untuk mata uang digital padaHuobi.
AR = [Jumlah dari semua (High-Open) untuk N hari / Jumlah dari semua (Open-Low) untuk N hari] * 100
Di antaranya:
N: Jendela statistik dari siklus waktu harian umumnya 30 hari secara default, karena hari perdagangan efektif dalam sebulan adalah sekitar 30 hari (transaksi mata uang digital 24/7, yang mungkin konservatif)
Tinggi: harga tertinggi dalam satu hari
Terbuka: harga pembukaan untuk satu hari
Low: harga terendah dalam satu hari
Momentum harga mencerminkan posisi harga pembukaan antara harga tertinggi dan harga terendah untuk jangka waktu tertentu. Posisi ini adalah dasar bagi kita untuk menilai kekuatan kedua pihak yang menarik bersama.
Catatan: Angka di atas adalah semua nilai default dan bukan rumus kebenaran. Dalam proses perdagangan nyata, kita harus menyesuaikan kisaran ini untuk menyesuaikan dengan keadaan pasar saat ini karena perubahan pasar.
Seperti biasa, kami membukaFMZ.COM, masuk ke akun kami, klik pada Dashboard, dan menyebarkan docker dan robot.
Silakan lihat artikel saya sebelumnya tentang cara mengimplementasikan docker dan robot:https://www.fmz.com/bbs-topic/9864.
Pembaca yang ingin membeli server komputasi awan mereka sendiri untuk menyebarkan dockers dapat merujuk pada artikel ini:https://www.fmz.com/digest-topic/5711.
Selanjutnya, kita klik pada pustaka Strategi di kolom kiri dan klik pada Tambahkan strategi.
Ingatlah untuk memilih bahasa pemrograman sebagai Python di sudut kanan atas halaman pengeditan strategi, seperti yang ditunjukkan pada gambar:
Selanjutnya, kami akan menulis kode Python ke dalam halaman pengeditan kode. Kode berikut memiliki komentar baris demi baris yang sangat rinci, Anda pembaca dapat meluangkan waktu untuk memahami. Yang lebih penting, meskipun strategi ini ditulis berdasarkan perdagangan spot, ekstensibilitas kode berikut juga memperhitungkan perdagangan futures. Pembaca yang tertarik dapat mencoba menulis ulang kode berikut ke dalam perdagangan futures. Logika strategi itu sendiri adalah universal. Di platform FMZ Quant, kami telah menyiapkan antarmuka API futures spot dan bursa utama untuk Anda, sehingga penulisan ulang akan sangat mudah dan nyaman.
Kami akan menggunakan Bitcoin spot Huobi sebagai target perdagangan dan mulai menerapkan strategi ini:
import types # Import the Types module library, which is designed to handle the various data types that will be used in the code.
def main(): # The main function, where the strategy logic begins.
IDLE = 0 # It is used to mark the position status, which can be understood as 0, that is, idle status, i.e. short position status.
LONG = 1 # Long positions
SHORT = 2 # Short position. Note that this strategy is applied to the spot market, so there is no short opening or position. This is written here to facilitate understanding of the strategy and future expansion (such as extending to the futures market).
state = IDLE # Variables that mark the status of a position
while True: # Enter the loop
r = exchange.GetRecords() # GetRecords is the official API of the FMZ Quant Platform, for detailed usage please refer to: https://www.fmz.com/api.
if len(r) <= 1: # Judge whether the K-line is larger than one, that is, whether it is currently in the open state, or it may enter an endless loop. Here, it is also convenient for readers to expand, and the trend state of a larger K-line period is more stable.
Log("The number of bars is not enough, wait for the next bar...") # Output logs
continue # Python loop control statement, continuing with the next part of the loop.
# Begin quantitative analysis of price momentum
ar = sum(r.High - r.Open) / sum(r.Open - r.Low) * 100 # Calculation formula
account = _C(exchange.GetAccount) # Get account information, _C is also the official API of the FMZ Quant platform, for usage, please refer to: https://www.fmz.com/api.
if ar < 95 and (state == IDLE or state == SHORT) : # If the AR value is less than the oversold line and the account has funds, then buy all positions.
if account["Balance"] > 50:
exchange.Buy(-1, account["Balance"] * 0.9) # Buy all positions of the market order
state = LONG # Change the position status to LONG
elif ar > 80 and (state == IDLE or state == LONG): # If the AR value is greater than the overbought line and the account has a position, sell the whole position.
if account["Stocks"] > 0.01:
exchange.Sell(-1, account["Stocks"] * 0.9) # Sell all positions market order
state = SHORT # Change the position status to SHORT
LogStatus(_D(), exchange.GetAccount() , state) # Update log information
Setelah menulis strategi, hal pertama yang perlu kita lakukan adalah mengujinya untuk melihat bagaimana perilakunya dalam data historis. Tetapi harap dicatat bahwa hasil backtest tidak sama dengan prediksi masa depan. Backtest hanya dapat digunakan sebagai referensi untuk mempertimbangkan efektivitas strategi kita. Setelah pasar berubah dan strategi mulai memiliki kerugian besar, kita harus menemukan masalah tepat waktu, dan kemudian mengubah strategi untuk beradaptasi dengan lingkungan pasar baru, seperti ambang batas yang disebutkan di atas. Jika strategi memiliki kerugian lebih dari 10%, kita harus menghentikan operasi strategi segera, dan kemudian menemukan masalah. Kita dapat mulai dengan menyesuaikan ambang batas.
Klik backtest di halaman editing strategi. Pada halaman backtest, penyesuaian parameter dapat dilakukan dengan mudah dan cepat sesuai dengan kebutuhan yang berbeda. Terutama untuk strategi dengan logika yang kompleks dan banyak parameter, tidak perlu kembali ke halaman kode sumber dan memodifikasinya satu per satu.
Waktu backtest adalah bulan terakhir. Klik untuk menambahkan bursa spot Huobi dan target perdagangan BTC.
Hasil tes balik:
Kita bisa melihat bahwa strategi berkinerja baik dalam backtest bulan ini.
Keuntungan Dibandingkan dengan beberapa indikator teknis tradisional lainnya, keuntungan momentum harga adalah bahwa ia tidak menggunakan harga pembukaan atau harga penutupan tunggal, tetapi memperkenalkan harga tertinggi dan terendah. Mereka dibandingkan secara dinamis, membuat informasi pasar lebih komprehensif, responsif dan makro melalui fluktuasi harga intraday.
Kelemahan Menggunakan nilai momentum harga secara independen untuk menilai apakah harga terlalu tinggi atau terlalu rendah, untuk menilai panjang / pendek, kemungkinan untuk keluar awal dalam gelombang tren utama, atau untuk memancing dasar awal dalam gelombang down utama pasar.
Peraturan ambang batas strategi juga perlu ditentukan sesuai dengan karakteristik objek perdagangan. Fluktuasi harga pasar mata uang digital relatif besar, dan volume perdagangan sangat besar, terutama pada mata uang arus utama seperti Bitcoin, dan tidak ada batas untuk naik dan turun, sehingga nilai ambang batas lebih tinggi daripada pasar saham tradisional. Garis oversold 80 biasanya sulit disentuh, dan ada sedikit sinyal beli; Sementara garis overbought 170 sering di bawah ambang batas, sinyal jual sering dipicu. Hal ini akan menyebabkan strategi berada dalam posisi pendek untuk sebagian besar waktu, dan pemanfaatan dana menjadi sangat rendah. Misalnya, sejak Januari tahun ini, harga Bitcoin telah naik dari 3500 menjadi hampir 13000 dalam gelombang pasar bull. Nilai ambang batas telah melintasi garis 170 sejak awal dan kami tidak memiliki sinyal yang sangat tinggi. Jika kita menjual di atas garis 170 tradisional, maka hanya akan ada sebagian kecil sinyal yang akan menghasilkan keuntungan di pasar bull, setelah gelombang pembukaan, dan setelah itu kita tidak akan mendapatkan sinyal yang sangat tinggi.
Oleh karena itu, tidak pernah ada strategi trading Holy Grail di pasar. Anda tidak selalu bisa menghasilkan keuntungan tanpa backtesting dan debugging. Seperti trader subjektif, kita trader kuantitatif berakhir dengan tujuan yang sama dengan cara yang berbeda. Kita perlu beradaptasi dengan kondisi lokal sesuai dengan perubahan pasar dan menanggapi perubahan pasar. Ketika strategi tidak efektif, kita perlu menyesuaikannya tepat waktu.
Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan dihttps://www.fmz.com/bbs, apakah itu tentang strategi atau teknologi platform, platform FMZ Quant memiliki para profesional siap menjawab pertanyaan Anda.