avatar of 发明者量化-小小梦 发明者量化-小小梦
focar em Mensagem privada
4
focar em
1271
Seguidores

30 linhas de código levam você ao mundo do investimento quantitativo

Criado em: 2016-04-06 10:17:26, atualizado em: 2020-01-13 15:17:11
comments   13
hits   7394

Estratégia de linha média de 30 linhas para criar um sistema de ganhos positivos

Isso é verdade! Você ouviu bem, são 30 linhas de código! Eu costumo ler o código em 30 linhas para ter uma visão geral!

Os parâmetros da política são os seguintes:

parâmetro descrever tipo Valores por defeito
FastPeriod Ciclo de entrada rápida Tipo de número 3
SlowPeriod Ciclo de entrada em mercado Tipo de número 7
EnterPeriod Período de observação Tipo de número 3
ExitFastPeriod Ciclo de linha rápida Tipo de número 3
ExitSlowPeriod Ciclo de saída da cidade Tipo de número 7
ExitPeriod Período de observação Tipo de número 1
PositionRatio Proporção de posições Tipo de número 0.8
Interval Período de sondagem (s) Tipo de número 10

30 linhas de código levam você ao mundo do investimento quantitativo

  • Importação.交易类库É fácil de escrever uma estratégia, sem ter que se preocupar em comprar ou vender.
  • Ao ler o código, se você se sentir confuso com uma variável não declarada, responda em grupo.
function main() {
    var STATE_IDLE  = -1;
    var state = STATE_IDLE;
    var opAmount = 0;
    var initAccount = $.GetAccount();
    Log(initAccount);
    while (true) {
        if (state === STATE_IDLE) {
            var n = $.Cross(FastPeriod, SlowPeriod);
            if (Math.abs(n) >= EnterPeriod) {
                opAmount = parseFloat((initAccount.Stocks * PositionRatio).toFixed(3));
                var obj = n > 0 ? $.Buy(opAmount) : $.Sell(opAmount);
                if (obj) {
                    opAmount = obj.amount;
                    state = n > 0 ? PD_LONG : PD_SHORT;
                    Log("开仓详情", obj, "交叉周期", n);
                }
            }
        } else {
            var n = $.Cross(ExitFastPeriod, ExitSlowPeriod);
            if (Math.abs(n) >= ExitPeriod && ((state === PD_LONG && n < 0) || (state === PD_SHORT && n > 0))) {
                var obj = state === PD_LONG ? $.Sell(opAmount) : $.Buy(opAmount);
                state = STATE_IDLE;
                var nowAccount = $.GetAccount();
                LogProfit(nowAccount.Balance - initAccount.Balance, '钱:', nowAccount.Balance, '币:', nowAccount.Stocks, '平仓详情:', obj, "交叉周期", n);
            }
        }
        Sleep(Interval*1000);
    }
}
  • Esta estratégia tem apenas uma função principal (main) e não há outros módulos de função. Há apenas um ciclo dentro da função principal.
  • Eu coloquei uma versão com comentários do código desta estratégia no grupo QQ, para que os alunos que estão aprendendo pela primeira vez possam ver os comentários para facilitar a aprendizagem.
  • Não há nenhum QQ oficial aqui, por favor, junte-se: 309368835 Inventor Quantitative EA Communication (original BotVS). A estratégia é simples, com apenas algumas dezenas de linhas de código!
  • Para os alunos que não têm conhecimento básico de Javascript, vamos simplificar a gramática para que eles não tenham dificuldade em entender o código.

Declaração de variáveis

Palavras-chavevar+ Nome de variável, por exemplovar name = “小明”

Circulação

while(循环条件){
    // 将会重复执行的代码
}

O código dentro de {} é executado repetidamente se a condição de ciclo for verdadeira. Se a condição de ciclo for falsa, o código sairá do ciclo.

Subdivisão condicional

if (判断条件){
    // 执行代码
} else {
    // 执行代码
}

É muito simples, a tradução é que se (verdade) (executar este código) (executar este código)

Valorização

Um.=O número é atribuição, por exemplo.

name = “张三”;

É fácil confundir atribuição de valor com equivalência. Comparação==Dois números iguais. Exemplo.“张三”==“李四”É óbvio que Zhang Shui não é Li Jie.“张三”==“李四”Não é verdade.

APIs relacionados

Antes de demonstrar e escrever a estratégia, examinamos as APIs e as funções de exportação de modelos usadas na estratégia. A quantificação do inventor inclui a documentação detalhada da API e o código fonte do modelo.

  • $.GetAccount Função: função de exportação de modelo para obter informações sobre contas de exchanges
  • Função Log: API, usada para expor informações ao log, exibir valores, etc.
  • $.Cross Função: função de exportação do modelo para detectar o cruzamento de indicadores de linha média
  • $.Buy Função: função de exportação do modelo para operações de compra
  • $.Sell Função: função de exportação do modelo para operações de venda
  • Função LogProfit: API, usada para a saída de lucro, a função pode adicionar outras informações a partir do segundo parâmetro
  • Função Sleep: API, que faz o programa parar por um momento, com parâmetros em milissegundos.

O código da estratégia também usa funções de biblioteca e métodos de objetos do Javascript.

  • Função Math.abs ((): retorna o valor absoluto do argumento
  • A função toFixed () do objeto Number: mantém os dígitos menores em quadrados e em quintos. Observe que a função retorna uma string
  • parseFloat global: retorna um número de float.

Para obter mais informações sobre o JavaScript, acesse: JavaScript Number Object http://www.w3school.com.cn/jsref/jsref_obj_number.asp

O diagrama do programa é desenhado à mão, sem usar ferramentas, é muito amador.

30 linhas de código levam você ao mundo do investimento quantitativo

Construir a nossa estratégia passo a passo

Todas as entradas de programas de estratégia são:main()Funções, ou seja, as estratégias começam a ser executadas pela função main.

30 linhas de código levam você ao mundo do investimento quantitativo

30 linhas de código levam você ao mundo do investimento quantitativo

30 linhas de código levam você ao mundo do investimento quantitativo

30 linhas de código levam você ao mundo do investimento quantitativo

30 linhas de código levam você ao mundo do investimento quantitativo

Oferta Firme

A partir daí, uma estratégia simples de 30 linhas é feita! A estratégia do Running! está em andamento, compra e operação.

30 linhas de código levam você ao mundo do investimento quantitativo

Graças ao InventorQuant, que fornece um código tão simples, há uma grande quantidade de estratégias de código aberto disponíveis para aprender e melhorar no InventorQuant, e avançar junto com muitos outros especialistas em quantificação.

官方QQ群定期更新学习资源,为量化学习者铺平道路,登堂入室。

Acompanhamento de vídeo

http://v.youku.com/v_show/id_XMTUyNDY1NjQ2NA==.html

Referências