Strategi trend biasanya menggunakan pelbagai penunjuk untuk menilai arah pasaran, dan menggunakan hasil perbandingan pelbagai penunjuk sebagai isyarat perdagangan. Dengan cara ini, tidak dapat dielakkan untuk menggunakan parameter dan mengira indikator. Sekarang apabila parameter digunakan, akan ada situasi yang sesuai. Di beberapa pasaran, strategi berfungsi dengan sangat baik, tetapi jika anda tidak bernasib baik dan trend pasaran sangat tidak mesra dengan parameter semasa, strategi mungkin berfungsi dengan sangat buruk. Oleh itu, saya menganggap bahawa reka bentuk strategi yang lebih mudah, semakin baik. Strategi ini akan lebih mantap. Hari ini kita akan berkongsi strategi trend tanpa indikator. Kod strategi sangat mudah, hanya 40 baris.
Kod 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 adalah sangat mudah. ia tidak menggunakan sebarang penunjuk, ia hanya menggunakan harga semasa sebagai asas pencetus urus niaga.ratio
untuk mengawal pencetus kedudukan pembukaan.
Memulakan pencetus panjang:
if ticker.Last - basePrice > 0 and (ticker.Last - basePrice) / basePrice > ratio
Gunakan harga semasa untuk membandingkan dengan harga asas. Apabila harga semasa lebih besar daripada harga asas dan harga melebihiratio * 100%
, mencetuskan perintah dan menunggu perintah panjang.
Selepas pesanan diletakkan, harga asas dikemas kini kepada harga semasa.
Pemicu pesanan pendek:
if ticker.Last - basePrice < 0 and (basePrice - ticker.Last) / basePrice > ratio
Prinsip arah pergi pendek adalah sama. Harga semasa digunakan untuk membandingkan harga asas. Apabila harga semasa kurang daripada harga asas dan harga melebihi ratio * 100%'
Jumlah pesanan setiap pesanan adalahratio * 100%
daripada nilai dana yang tersedia.
Melakukan pesanan kecuali kuantiti pesanan yang dikira kurang daripada kuantiti dagangan minimumminStocks
ditetapkan oleh parameter.
Dengan cara ini, strategi mengikuti perubahan harga untuk membeli pemenang.
Jangka masa pengujian belakang adalah kira-kira satu tahun.
Hasil berjalan:
Baru-baru ini, sesetengah pengguna mengatakan bahawa terdapat beberapa strategi Python. Kemudian, saya akan berkongsi lebih banyak strategi yang ditulis dalam Python. Kod strategi juga sangat mudah, yang sangat sesuai untuk pemula kuantitatif untuk dipelajari. Alamat strategi:https://www.fmz.com/strategy/181185
Strategi ini adalah untuk rujukan, pembelajaran dan backtesting sahaja.