Type/to search
8
Follow
1361
Followers
Versão Python da estratégia de perseguir e vender para baixo
Discussions
Created 2020-01-11 14:49:08  Updated 2024-12-12 20:57:43
 6
 7376

img

Versão Python da estratégia de perseguir e vender para baixo

As estratégias de tendência geralmente usam vários indicadores para determinar a direção do mercado e usam os resultados da comparação numérica de vários indicadores como sinais de negociação. Isso levará inevitavelmente ao uso de parâmetros e ao cálculo de indicadores. Como parâmetros são usados, haverá ajuste. A estratégia tem um desempenho muito bom em certas condições de mercado, mas se você não tiver sorte e a tendência do mercado for muito desfavorável aos parâmetros atuais, a estratégia pode ter um desempenho muito ruim. Portanto, na minha opinião, o desenho da estratégia deve ser o mais simples possível, e tal estratégia será mais robusta. Hoje compartilharemos uma estratégia de tendências que não usa indicadores. O código da estratégia é muito simples, apenas 40 linhas.

Código de estratégia:

pine
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, "\n", "账户信息:", acc) Sleep(500)

Análise simples da estratégia

O princípio da estratégia é muito simples. Ela não usa nenhum indicador, mas usa apenas o preço atual como base para gatilhos de negociação, e há apenas um parâmetro principalratioControla o acionamento da abertura de uma posição.

Gatilho longo:

pine
if ticker.Last - basePrice > 0 and (ticker.Last - basePrice) / basePrice > ratio

Use o preço atual para comparar com o preço base. Quando o preço atual é maior que o preço base, e o preço excederatio * 100 %, a ordem pendente é acionada e uma ordem longa é colocada.
Após fazer um pedido, o preço base é atualizado para o preço atual.

Gatilho de ordem curta:

pine
if ticker.Last - basePrice < 0 and (basePrice - ticker.Last) / basePrice > ratio

O princípio da venda a descoberto é o mesmo. Use o preço atual para comparar com o preço base. Quando o preço atual é menor que o preço base e o preço excederatio * 100 %, a ordem pendente é acionada e uma ordem curta é colocada.
Após fazer um pedido, o preço base é atualizado para o preço atual.

O volume de cada pedido é o valor dos fundos disponíveis.ratio * 100 %
A menos que o volume do pedido calculado seja menor que o volume mínimo de transação definido nos parâmetrosminStocks, caso contrário, faça um pedido.

Isso permite que a estratégia acompanhe as mudanças de preço, busque máximas e venda mínimas.

Testes retrospectivos

O período de backtesting é de aproximadamente um ano.
img

Resultados da operação:
img

img

Recentemente, alguns usuários disseram que há relativamente poucas estratégias em Python. Compartilharei mais estratégias escritas em Python no futuro. O código de estratégia também é muito simples, o que é muito adequado para iniciantes aprenderem.
Endereço estratégico: https://www.fmz.com/strategy/181185

A estratégia é apenas para referência, backtesting e teste. Se você estiver interessado, pode otimizá-la e atualizá-la.

Related Recommendations
Comment
All comments (0)
No data
No data
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)