Strategi tren umumnya menggunakan berbagai indikator untuk menilai arah pasar, dan menggunakan hasil perbandingan berbagai indikator sebagai sinyal perdagangan. Dengan cara ini, tidak dapat dihindari untuk menggunakan parameter dan menghitung indikator. Sekarang bahwa parameter digunakan, akan ada situasi yang cocok. Di beberapa pasar, strategi berkinerja sangat baik, tetapi jika Anda tidak beruntung dan tren pasar sangat tidak ramah terhadap parameter saat ini, strategi dapat berkinerja sangat buruk. Oleh karena itu, saya menganggap bahwa desain strategi yang lebih sederhana, semakin baik. Strategi ini akan lebih kuat. Hari ini kita akan berbagi strategi tren tanpa indikator.
Kode strategi:
import time
basePrice = -1
ratio = 0.05
acc = _C(exchange.GetAccount)
lastCancelAll = 0
minStocks = 0.01
def CancelAll():
while True :
orders = _C(exchange.GetOrders)
for i in range(len(orders)) :
exchange.CancelOrder(orders[i]["Id"], orders[i])
if len(orders) == 0 :
break
Sleep(1000)
def main():
global basePrice, acc, lastCancelAll
exchange.SetPrecision(2, 3)
while True:
ticker = _C(exchange.GetTicker)
if basePrice == -1 :
basePrice = ticker.Last
if ticker.Last - basePrice > 0 and (ticker.Last - basePrice) / basePrice > ratio :
acc = _C(exchange.GetAccount)
if acc.Balance * ratio / ticker.Last > minStocks :
exchange.Buy(ticker.Last, acc.Balance * ratio / ticker.Last)
basePrice = ticker.Last
if ticker.Last - basePrice < 0 and (basePrice - ticker.Last) / basePrice > ratio :
acc = _C(exchange.GetAccount)
if acc.Stocks * ratio > minStocks :
exchange.Sell(ticker.Last, acc.Stocks * ratio)
basePrice = ticker.Last
ts = time.time()
if ts - lastCancelAll > 60 * 5 :
CancelAll()
lastCancelAll = ts
LogStatus(_D(), "\n", "Ticker:", ticker, "\n", "Account information:", acc)
Sleep(500)
Prinsip strategi sangat sederhana. tidak menggunakan indikator apapun, hanya menggunakan harga saat ini sebagai dasar pemicu transaksi. hanya ada satu parameter utamaratio
untuk mengontrol pemicu posisi pembukaan.
Memulai pemicu panjang:
if ticker.Last - basePrice > 0 and (ticker.Last - basePrice) / basePrice > ratio
Gunakan harga saat ini untuk membandingkan dengan harga dasar.ratio * 100%
, memicu perintah dan menunggu perintah panjang.
Setelah pesanan ditempatkan, harga dasar diperbarui ke harga saat ini.
Pemicu pesanan pendek:
if ticker.Last - basePrice < 0 and (basePrice - ticker.Last) / basePrice > ratio
Prinsip arah pergi pendek adalah sama. harga saat ini digunakan untuk membandingkan harga dasar. ketika harga saat ini kurang dari harga dasar dan harga melebihi ratio * 100%'
Jumlah pesanan dari setiap pesanan adalahratio * 100%
dari nilai dana yang tersedia.
Menempatkan pesanan kecuali jumlah pesanan yang dihitung lebih kecil dari jumlah perdagangan minimumminStocks
diatur oleh parameter.
Dengan cara ini, strategi mengikuti perubahan harga untuk membeli pemenang.
Jangka waktu backtesting adalah sekitar satu tahun.
Hasil pelaksanaan:
Baru-baru ini, beberapa pengguna mengatakan bahwa ada beberapa strategi Python. Kemudian, saya akan berbagi lebih banyak strategi yang ditulis dalam Python. Kode strategi juga sangat sederhana, yang sangat cocok untuk pemula kuantitatif untuk belajar. Alamat strategi:https://www.fmz.com/strategy/181185
Strategi ini hanya untuk referensi, pembelajaran dan backtesting. Jika Anda tertarik, Anda dapat mengoptimalkan dan meningkatkannya.