Alamat strategi:https://www.fmz.com/strategy/345
Dalam artikel ini, kita akan berlatih untuk memindahkan dasar JavaScript yang mudah. Dengan memindahkan dasar, pencipta akan lebih mengenali panggilan antarmuka platform perdagangan kuantitatif dan memahami perbezaan kecil antara bahasa yang berbeza ketika membangunkan dasar platform, sebenarnya dasar versi JavaScript sangat sedikit berbeza dengan dasar versi Python kerana panggilan antarmuka pada dasarnya sama.
Mengutip keterangan dari versi JavaScript:
Ini memerlukan pembinaan simpanan, contohnya, jika akaun anda mempunyai $ 5,000, dan 1 sen, jika nilai sen lebih besar daripada baki akaun $ 5,000, dan perbezaan melebihi nilai margin, contohnya, sen kini bernilai $ 6,000, maka juallah $ 6,000-5000 / 6000 / 2 sen, ini menunjukkan bahawa sen meningkat, tukar semula wang itu, jika sen menurun, contohnya $ 4,000, beli $ 5,000-4000 / 4000 / 2 sen, beli kembali beberapa ketika mata wang jatuh, jika ia jatuh, jual semula, seperti pada mata wang biasa, peruntukan yang berbeza di kedua-dua belah pihak, jadi saya menamakannya strategi keseimbangan.
Kaedahnya sangat mudah, kod versi JavaScript juga tidak panjang, hanya lebih daripada 70 baris. Kaedah bahasa Python yang lebih ringkas, kodnya lebih pendek, sangat sesuai untuk pembelajaran pemula, terdapat banyak kod yang dikongsi oleh pemaju di platform perdagangan kuantiti pencipta, sokongan bahasa.JavaScript
/C++
/Python
Oleh itu, lebih banyak pengetahuan mengenai bahasa pengembang tidak hanya berguna untuk strategi pembelajaran, penyelidikan dan pembangunan, tetapi juga dapat menjadi lebih biasa dengan pelbagai antara muka API platform.
'''backtest
start: 2019-12-01 00:00:00
end: 2020-02-01 11:00:00
period: 1m
exchanges: [{"eid":"OKEX","currency":"BTC_USDT","stocks":1}]
'''
InitAccount = None
def CancelPendingOrders():
ret = False
while True:
orders = _C(exchange.GetOrders)
if len(orders) == 0 :
return ret
for j in range(len(orders)):
exchange.CancelOrder(orders[j].Id)
ret = True
if j < len(orders) - 1:
Sleep(Interval)
return ret
def onTick():
acc = _C(exchange.GetAccount)
ticker = _C(exchange.GetTicker)
spread = ticker.Sell - ticker.Buy
diffAsset = (acc.Balance - (acc.Stocks * ticker.Sell)) / 2
ratio = diffAsset / acc.Balance
LogStatus("ratio:", ratio, _D())
if abs(ratio) < threshold:
return False
if ratio > 0 :
buyPrice = _N(ticker.Sell + spread, ZPrecision)
buyAmount = _N(diffAsset / buyPrice, XPrecision)
if buyAmount < MinStock:
return False
exchange.Buy(buyPrice, buyAmount, diffAsset, ratio)
else :
sellPrice = _N(ticker.Buy - spread, ZPrecision)
sellAmount = _N(-diffAsset / sellPrice, XPrecision)
if sellAmount < MinStock:
return False
exchange.Sell(sellPrice, sellAmount, diffAsset, ratio)
return True
def main():
global InitAccount, LoopInterval
InitAccount = _C(exchange.GetAccount)
LoopInterval = max(LoopInterval, 1)
while True:
if onTick():
Sleep(1000)
CancelPendingOrders()
Log(_C(exchange.GetAccount))
Sleep(LoopInterval * 1000)
Kod bermula dengan
'''backtest
start: 2019-12-01 00:00:00
end: 2020-02-01 11:00:00
period: 1m
exchanges: [{"eid":"OKEX","currency":"BTC_USDT","stocks":1}]
'''
Ia adalah konfigurasi retargeting, yang bermaksud bahawa konfigurasi retargeting (setelan) disimpan dalam bentuk kod, dan apabila retargeting secara automatik mengikut konfigurasi setelan ini. Bahagian ini boleh dipadamkan, dipadamkan, apabila retargeting, anda perlu menetapkan maklumat konfigurasi retargeting secara manual di halaman retargeting. Sumber:https://www.fmz.com/bbs-topic/859
Parameter strategi ini adalah sama dengan versi JavaScript, kod strategi juga dipindahkan setiap ayat, struktur program tidak berubah, dan boleh dibandingkan setiap ayat, melihat perbezaan antara strategi yang ditulis dalam bahasa yang berbeza.
Pengaturan parameter
Statistik
Alamat strategi:https://www.fmz.com/strategy/183374
Strategi ini hanya untuk rujukan pembelajaran, ujian ulangan, dan berminat untuk mengoptimumkan peningkatan.
Harta yang turun dari langitSapi yang baik.