L'adresse de la stratégie:https://www.fmz.com/strategy/345
Dans cet article, nous allons nous entraîner à transférer une simple stratégie JavaScript. Grâce à la stratégie de transférer, les inventeurs sont plus familiarisés avec les appels à l'interface de plate-forme de négociation quantifiée et comprennent les légères différences entre les différentes langues lors du développement de la stratégie de plate-forme.
C'est le cas de l'exemple de la version JavaScript:
Si la valeur de la pièce est supérieure au solde de la pièce est supérieure à 5000 et la différence est supérieure à la dépréciation, par exemple, si la pièce est maintenant de 6000 dollars, on vend 6 000/2 pièces, c'est-à-dire si la pièce est en hausse, on change l'argent, si la pièce est dépréciée, par exemple 4000, on achète 5 000-4 000/4 000/2 pièces, on en achète de nouveau quand la pièce est en baisse, et si elle est en baisse, on la vend de nouveau, comme si c'était un équilibre, une couverture différente des deux côtés, donc je l'appelle une stratégie d'équilibre
La stratégie est très simple, la version JavaScript du code n'est pas aussi longue, seulement plus de 70 lignes. Transporter en syntaxe est une stratégie de la langue Python plus simple, le code est plus court, très adapté à l'apprentissage des débutants, sur la plate-forme de négociation quantitative des inventeurs, il y a beaucoup de code partagé par les développeurs.JavaScript
/C++
/Python
La maîtrise d'un langage de développement est donc utile non seulement pour l'apprentissage, la recherche et la stratégie de développement, mais aussi pour mieux connaître les différentes interfaces API de la plateforme.
'''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)
C'est le début du code.
'''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}]
'''
Il s'agit d'une configuration de retouche, c'est-à-dire que la configuration de retouche est enregistrée sous forme de code, qui est automatiquement configurée en fonction de cette configuration lors du retouche. Cette partie peut être supprimée, supprimée, il est nécessaire de définir manuellement les informations de configuration de retouche sur la page de retouche. Pour référence:https://www.fmz.com/bbs-topic/859
Les paramètres de cette stratégie sont parfaitement conformes à la version JavaScript, le code de la stratégie est également porté par phrase, la structure du programme est inchangée et peut être comparée par phrase, en regardant les différences entre les stratégies écrites dans différentes langues.
Configuration des paramètres
Les statistiques
L'adresse de la stratégie:https://www.fmz.com/strategy/183374
Les stratégies sont uniquement destinées à l'apprentissage de référence, aux tests de retouche et à l'optimisation des mises à niveau.
Les trésors du cielC'est une bonne vache.