Type/to search
8
Follow
1364
Followers
Versi Python strategi keseimbangan platform tunggal
Discussions
Created 2020-02-05 10:02:03  Updated 2023-10-12 21:20:47
 1
 2965

img

Versi Python strategi keseimbangan platform tunggal

versi JavaScript

Alamat strategi: https://www.fmz.com/strategy/345

Dalam artikel ini, mari kita berlatih mengalihkan strategi JavaScript yang mudah. Dengan memindahkan strategi, anda akan menjadi lebih biasa dengan panggilan antara muka Platform Dagangan Kuantitatif Pencipta dan memahami sedikit perbezaan antara bahasa yang berbeza apabila membangunkan strategi pada platform Sebenarnya, perbezaan antara strategi versi JavaScript dan versi Python strategi adalah sangat kecil kerana panggilan antara muka pada asasnya adalah sama.

Huraian Strategi

Memetik daripada versi JavaScript arahan:

Ini memerlukan pembukaan kedudukan Contohnya, jika akaun mempunyai 5,000 yuan dan 1 syiling, jika nilai syiling lebih besar daripada baki akaun 5,000 dan perbezaan harga melebihi ambang, contohnya, syiling kini bernilai 6,000. yuan, kemudian jual (6,000-5,000)/6,000 /2 syiling, bermakna syiling telah dihargai, tukarkan kembali wang itu, jika syiling susut nilai, sebagai contoh, kepada 4000 yuan, beli (5000-4000)/4000/2. syiling, beli balik apabila syiling jatuh, jika jika ia naik lagi, saya akan menjualnya semula, sama seperti baki, dengan lindung nilai yang berbeza pada kedua-dua belah, jadi saya namakannya sebagai strategi seimbang.

Prinsip strategi adalah sangat mudah, dan versi JavaScript kod tidak panjang, hanya lebih daripada 70 baris. Dipindahkan ke strategi bahasa Python dengan sintaks yang lebih ringkas, kod ini lebih pendek dan sangat sesuai untuk dipelajari oleh pemula Terdapat banyak kod yang dikongsi oleh pembangun pada Platform Dagangan Kuantitatif Pencipta, dan bahasa itu menyokong.JavaScript/C++/PythonDsb., jadi menguasai satu lagi bahasa pembangunan bukan sahaja membantu untuk pembelajaran, penyelidikan dan strategi pembangunan, tetapi juga membolehkan anda menjadi lebih biasa dengan pelbagai antara muka API platform.

Kod Strategi

'''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 ujian belakang, yang bermaksud konfigurasi ujian belakang (tetapan) disimpan dalam bentuk kod, dan ujian belakang dikonfigurasikan secara automatik mengikut tetapan ini. Bahagian ini boleh dipadamkan jika dipadamkan, anda perlu menetapkan maklumat konfigurasi ujian belakang secara manual pada halaman ujian belakang semasa ujian belakang.
Rujukan: https://www.fmz.com/bbs-topic/859

Parameter strategi ini betul-betul sama dengan versi JavaScript Kod strategi juga dipindahkan ayat demi ayat, dan struktur program tidak berubah Anda boleh membandingkannya ayat demi ayat untuk melihat perbezaan antara strategi yang ditulis dalam berbeza bahasa.

Ujian belakang

Konfigurasi parameter
img

Perangkaan
img

img

Alamat strategi: https://www.fmz.com/strategy/183374

Strategi ini adalah untuk rujukan sahaja, ujian belakang dan ujian Jika anda berminat, anda boleh mengoptimumkan dan menaik tarafnya.

Related Recommendations
Comment
All comments (1)

    好牛啊

    4 years ago
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)