O recurso está a ser carregado... Carregamento...

Trinta linhas de código levam-nos ao mundo do investimento quantitativo.

Autora:Inventor quantificado - sonho pequeno, Criado: 2016-04-06 10:17:26, Atualizado: 2020-01-13 15:17:11

A estratégia de linha média ultra-simplificada 30 linhas para criar um sistema de ganhos positivos

Isso mesmo! Isso mesmo é 30 linhas de código! São apenas 30 linhas de texto que eu costumo ler antes de ler.

Os parâmetros da estratégia são:

Parâmetros Descrição Tipo Valor padrão
Período rápido Ciclo de lançamento Tipo numérico (number) 3
SlowPeriodo Ciclo de lançamento lento Tipo numérico (number) 7
IntroduçãoPeriodo Período de observação Tipo numérico (number) 3
ExitPeriodo rápido Ciclo da linha rápida Tipo numérico (number) 3
ExitPeriodo lento Ciclo de baixa Tipo numérico (number) 7
Período de saída Período de observação Tipo numérico (number) 1
PosiçãoRatio Proporção de posições Tipo numérico (number) 0.8
Intervalo Período de consulta ((segundos) Tipo numérico (number) 10

img

  • Importação交易类库A estratégia é fácil de escrever, sem ter que se preocupar em comprar ou vender.
  • Quando você está lendo o código e está confuso com as variáveis não declaradas, vá ao grupo e responda.
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 (), sem outros módulos de funções.
  • Eu compartilhei uma versão de código-fonte para esta estratégia no QQ Group, para que os alunos iniciais possam ver a descrição e aprender mais facilmente.
  • Se você não está no grupo oficial de QQ, junte-se: 309368835 Inventores de interação quantitativa da EA (BotVS original); a estratégia é simples, apenas algumas dezenas de linhas de código!
  • Para os alunos que não têm conhecimentos básicos de JavaScript, a gramática é simples para que os alunos não entendam o código.

Declaração de variáveis

Usar palavras-chavevar+ nome da variável, por exemplovar name = “小明”

Ciclos

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

Se a condição de ciclo for verdadeira, o código dentro do {} será executado repetidamente. Se a condição de ciclo for falsa, salta o ciclo.

Termos de filiação

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

A tradução é muito simples: se (true) {executar este código}

Atribuição

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

name = “张三”;

O que é mais fácil é confundir a atribuição com a comparação, mas o que é mais fácil é confundir a atribuição com a comparação. Por exemplo:==Dois números iguais. Exemplos“张三”==“李四”O que é claro é que o Zhang não é o Li.“张三”==“李四”Por falsidade.

APIs relacionados

Antes de demonstrar a política, analisamos a API e a função de exportação do modelo usada na política, e há uma documentação detalhada da API e uma instrução de código fonte do modelo no inventor quantified.

  • Função $.GetAccount: função de exportação de modelo para obter informações sobre contas de exchanges
  • Função de log: API para exportar informações para o log, exibir valores, etc.
  • Função $.Cross: função de exportação de modelo usada para detectar o cruzamento de indicadores uniformes
  • Função $.Buy: função de exportação de modelo para operações de compra
  • Função $.Sell: função de exportação de modelo para venda de operações
  • Função LogProfit: API, usada para exportar ganhos, função que pode adicionar outras informações a partir do segundo parâmetro
  • Função de sono: API, para que o programa pare por um momento, unidade de parâmetro é milissegundo.

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

  • Função Math.abs ((): Retorna o valor absoluto do parâmetro
  • A função toFixed ((() do objeto Number: por parâmetro, mantém os dígitos menores em quadrados e quintos.
  • A função global parseFloat: Retorna o número de pontos flutuantes de um parâmetro de string.

Informações sobre o JavaScript acima podem ser obtidas em: JavaScript Number Objecthttp://www.w3school.com.cn/jsref/jsref_obj_number.aspAprenda mais

O processo é desenhado à mão, sem ferramentas, amador.

img

A estratégia foi construída passo a passo.

Todos os procedimentos estratégicos são executados na entrada.main()Funções, isto é, políticas que começam a ser executadas a partir da função principal.

img

img

img

img

img

Disco real

A estratégia de 30 linhas simples é concluída! A estratégia Running! começou a funcionar, com a operação de compra.

img

Graças a Inventor Quantify, que fornece um código tão simples, há uma abundância de estratégias de código aberto para aprender e melhorar em Inventor Quantify, juntamente com muitos outros profissionais de quantificação.

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

Acompanhamento de vídeo

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

Referências


Relacionados

Mais.

FMZ_JHA função $.GetAccount na API foi atualizada para exchange.GetAccount (?).

WojiushizhemedeshuaiqidemeinanziEu entendo o código, mas não sei o que essa estratégia realmente faz.

:)Obrigado Little Dream, o seu artigo é muito bom.

Não, não.O tutorial do proprietário é muito bem escrito, obrigado!

bincoinObrigado, senhor, vou aprender muito bem.

A estratégia de venda de preços elevadosAfinal, o que eu quero dizer é que, se você não for capaz de fazer isso, você não pode fazer isso.

Inventor quantificado - sonho pequeno$.GetAccount é a função de exportação do modelo FMZ (o modelo é código reutilizável, veja a descrição do modelo no documento API). $.GetAccount é a função de exportação do modelo: https://www.fmz.com/strategy/10989). A estratégia acima é apenas uma parte do código, sem configuração de parâmetros de estratégia, e a estratégia completa pode ser pesquisada em 30 linhas de estratégia em linha reta no quadrado da estratégia.

WojiushizhemedeshuaiqidemeinanziE foi isso que aconteceu.

Inventor quantificado - sonho pequenoA linha rápida passa pela linha lenta, geralmente é um sinal de compra, com maior probabilidade de alta. A linha rápida passa pela linha lenta, geralmente, é um sinal de venda, com maior probabilidade de queda.

Inventor quantificado - sonho pequenoNão é bom para mim, vou fazer mais material de aprendizagem mais tarde, obrigado pelo apoio!

Inventor quantificado - sonho pequenoContinuem a fazer o seu trabalho!