A estratégia é endereçada:https://www.fmz.com/strategy/345
Neste artigo, nós vamos praticar a prática de transferir uma política simples de JavaScript. Através da política de transferência, você se familiarizará mais com as chamadas dos inventores para quantificar as interfaces de plataformas de negociação e entenderá as pequenas diferenças entre as diferentes linguagens no desenvolvimento da política de plataforma.
A partir da descrição da versão JavaScript:
Isso requer que você armazene, por exemplo, uma conta com US $ 5.000 e uma moeda, se o valor da moeda for maior do que o saldo da conta com US $ 5.000 e a diferença for maior do que o valor da moeda, por exemplo, a moeda agora vale US $ 6.000, você vende (US $ 6.000 a US $ 5.000) / 6 / 2 moedas, o que significa que a moeda está em alta, você troca o dinheiro de volta, se a moeda está em baixa, por exemplo, US $ 4.000, você compra (US $ 5.000 a US $ 4.000) / 4 / 2 moedas, você compra mais quando a moeda desce, se a moeda desce, você vende novamente, como se fosse o mesmo, uma cobertura diferente em ambos os lados, então eu chamo isso de estratégia de equilíbrio
A estratégia é muito simples, o código da versão JavaScript também não é longo, apenas mais de 70 linhas. A estratégia da linguagem Python é mais simples em gramática, o código é mais curto, é muito adequado para aprendizagem de iniciantes, há um grande número de códigos compartilhados por desenvolvedores na plataforma de negociação quantitativa do inventor, suporte à linguagem.JavaScript
/C++
/Python
Por isso, ter mais conhecimento de uma linguagem de desenvolvimento é muito útil não só para a aprendizagem, pesquisa e estratégia de desenvolvimento, mas também para se familiarizar com as interfaces de APIs da plataforma.
'''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)
O código começa
'''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}]
'''
É a configuração de reversão, o que significa que a configuração de reversão (configuração) é salva em forma de código e é automaticamente configurada de acordo com essa configuração no momento do reversão. Esta parte pode ser removida, removida, quando o reversão é necessário configurar manualmente a informação de configuração de reversão na página de reversão. Referências:https://www.fmz.com/bbs-topic/859
Os parâmetros da política são perfeitamente consistentes com a versão do JavaScript, o código da política também é portado sentença a sentença, a estrutura do programa não mudou e pode ser comparada sentença a sentença, observando as diferenças entre as políticas escritas em diferentes idiomas.
Configuração de parâmetros
Estatísticas
O endereço da estratégia:https://www.fmz.com/strategy/183374
A estratégia é apenas para aprendizagem de referência, testes de retrospectiva, interessados em otimizar a atualização.
O céu e a terraBoa vaca.