A moeda de ouro de um estudante de graduação de 1998 e o caminho para a quantificação

Autora:A máquina de colheita do pequeno gênio, Criado: 2020-03-07 18:11:51, Atualizado: 2023-10-11 19:52:46

img

A moeda de ouro de um estudante de graduação de 1998 e o caminho para a quantificação

1.入币圈

Eu sou de 98 anos e estou estudando um curso de informática de bacharelado em 985, e vou continuar no curso seguinte.

O contato com o círculo monetário foi no dia 1 de setembro de 2017, sim, esse dia eu me lembro muito bem, porque três dias depois foi o incidente do P94, o que abalou o círculo monetário, o Banco Central e outros cinco comitês que fizeram uma declaração conjunta para prevenir o risco de ICO, o cinturão de preços da moeda.

No dia 1o de setembro, eu vi um vídeo sobre o Bitcoin em um site do WeChat (como se fosse um vídeo do próprio Wang) e fiquei muito curioso sobre isso, então baixei o token, enchi 100 dólares, olhei para o preço do bitcoin, 3W de mais de um yuan, eu fiquei assustado, então comprei um pouco de LTC, então parecia ser cerca de 120 yuan, e na noite seguinte, olhei para o fluxo de alguns centavos na conta, e conversando com o grupo de pessoas em vários círculos de moeda.

No dia 4 de setembro, um comunicado do Banco Central, o preço da moeda saltou, assustou-me e me despejei, e depois olhei lentamente para a queda do preço da moeda, quando as bolsas domésticas, como o Bitcoin, etc., não podiam ser registradas, a diferença de divisas domésticas era enorme e uma onda de pessoas engordaram.

Mais tarde, voltei para a escola, e não voltei a escrever (a nova lentilha só sabe perseguir e matar), mas ainda estava atento ao movimento do círculo de moedas, de vez em quando, para ver o que todos estavam falando em alguns grupos de QQ. De repente, em dezembro, o mês mais louco do mercado de touros, o Binance subiu centenas de vezes, outras moedas também dobraram, abaixo de 50% não podem ser contadas.

No dia 18 de janeiro, quando o mercado de boleia começou a cair, eu registrei o okcoin e comecei a jogar em contratos, e tenho que dizer que é realmente excitante, 20 vezes a alavancagem, o dobro, o estoque, repetidamente, olhando para a linha k, sem dormir à noite.

Como quase todos os apostadores de contrato, eu acabei sendo um grande vencedor. Mas tenho que dizer que essa experiência me ensinou um monte de conhecimento financeiro que eu nunca teria reconhecido antes.

2.搞量化

Depois de muitas noites sem dormir, como um homem que aprendeu computadores, comecei a pensar se havia uma maneira de deixar o programa negociar por mim, para que eu pudesse dormir melhor.

Na verdade, eu encontrei o fmz (que era chamado de botvs), mas eu estava muito ansioso e não sabia como usar a plataforma, então eu desisti.

Depois comecei a escrever o meu próprio robô com o API do Github:https://github.com/ccyanxyz/okexA partir de então, ele começou a escrever estratégias como linhas duplas, grades, etc. Apesar de não ganhar muito dinheiro, ele entrou na porta da quantificação, conheceu vários indicadores técnicos e aprendeu a usar o talib. Mais tarde, porque a escola também tinha muitas coisas, ele não continuou, o robô também parou e voltou ao modo de operação manual, mas a frequência já era muito baixa, operando uma ou duas vezes.

3.用FMZ

Depois de dar uma volta, eu voltei para o fmz, mas como já tinha experiência com a minha estratégia de escrita, o fmz foi muito rápido. Eu descobri que o fmz ligava quase todas as principais exchanges, unificava transações, contas e outras operações, e era conveniente e útil, escrever um código e correr para todos os lugares.

Eu encontrei o repositório de estratégias abertas da fmz no GitHub.https://github.com/fmzquant/strategiesEu passei uma ou duas noites lendo todas as estratégias, copiando e revisando, lendo a lógica da estratégia, tentando melhorar, mas tive que dizer que ainda sou um vegetariano, olhei para a estratégia e não escrevi um bloco de papelão.

Depois, eu também me calmei e pensei, agora o círculo de moedas não é mais um círculo de moedas de 17 anos, não haverá mais histórias mitológicas de 2000 blocos a 2000w, sobre o meu estudante pobre, o custo do dinheiro, querer que o moeda volte já foi uma noite do céu, então eu desisti de olhar para o preço da moeda em busca de uma queda, e também desisti de tentar escrever estratégias de moedas de papelão, e comecei a escrever estratégias de compra de anúncios na fmz, honestamente ganhando muito dinheiro.

Até agora, eu também escrevi muitas estratégias para as pessoas, o processo é bastante tortuoso, muitas vezes alguém vem até mim com ideias imaturas ou estratégias que não ganham dinheiro, muitas pessoas não descrevem bem as necessidades, e as estratégias que acabam sendo feitas são medidas para medir se não ganham dinheiro ou são grosseiras, então eu mudei meu anúncio para abaixo, para definir regras e padrões de receita e me preocupar um pouco menos.

A freqüência de minhas ligações era cada vez menor, porque eu tinha muito trabalho na escola e muitas pessoas que eu rejeitava, mas em fevereiro, fcoin correu e roubou a maior parte dos meus ativos (mas eu não tinha muito dinheiro), então recentemente tive que recusar os iniciantes e ganhar dinheiro com a ligação.

O meu acervo estratégico:

Hoje, no fmz, descobri uma coisa um pouco silenciosa: um vendedor de links de amigos copiou o meu anúncio de links, que é o seu anúncio:

O que eu fiz foi transformar o meu molho familiar em um molho sofisticado, e depois baixar o preço inicial (cheira a um pouco de competição maligna).

Por que eu não disse que eu sou fluente em FMZ, não sei se vocês já ouviram uma frase que diz que ninguém pode ser fluente em C++, ha ha ha, então meu currículo, etc. são usados para descrever as habilidades relacionadas.

4.一个套利思路

Recentemente, estudei algumas estratégias de arbitragem, como hedge, futures, spread, triangular, etc., e nos últimos dois dias vi uma estratégia que nunca vi antes (talvez eu seja um solitário).

Suponhamos que agora haja várias transações no mercado de câmbio para os seguintes preços:

USDollar/BritishPound 0.5
BritishPound/FrenchFranc 10.0
FrenchFranc/USDollar 0.21

Nesse caso, sem considerar os custos, se eu tivesse um dólar, eu poderia trocá-lo pela libra britânica, depois pelo franco francês, e depois pelo dólar americano, de 1 dólar para 1x0.5x10.0x0.21 = 1.05 dólar, ganhando 0.05 dólar.

O exemplo acima é um exemplo de uma oportunidade de arbitragem, o seguinte não é:

USDollar/BritishPound 0.5
USDollar/FrenchFranc 4.9
BritishPound/FrenchFranc 10.0
BritishPound/USDollar 1.99
FrenchFranc/BritishPound 0.09
FrenchFranc/USDollar 0.19

Como podemos determinar se existe uma oportunidade de aproveitamento em um mercado tão grande?

O problema pode ser abstraído como um problema do caminho mais curto de um gráfico orientado, com cada moeda como um topo, com o preço de troca como um peso de lado, formando um gráfico orientado e, partindo de um topo (por exemplo, USD), procurando um caminho circular que possa ser utilizado no gráfico.

O exemplo acima é de um artigo da OJ.http://poj.org/problem?id=2240A ideia de como resolver o problema pode ser encontrada aqui:http://hehejun.blogspot.com/2018/10/poj2240-arbitrage.html

Recentemente, eu estava pensando se poderia fazer uma estratégia para capturar oportunidades e aproveitá-las, e a primeira busca no GitHub já foi feita:https://github.com/wardbradt/peregrineEste projeto consiste em abstrair este problema como um problema do caminho mais curto do gráfico linear do lado negativo. Diferente da ideia do problema do OJ acima, o caminho mais curto do gráfico linear do lado negativo do lado direito é o algoritmo Bellman-ford.

Eu também fiz uma simples implementação no fmz, referindo-se à idéia de solução do problema correspondente ao OJ, que ainda não foi escrito e não pode ser garantido a correção.

var coins = {
    EMPTY: 0,
};
var price = {};

function get_coins() {
    for(var i = 0; i < exchanges.length; ++i) {
        var base = _C(exchanges[i].GetCurrency);
        var quote = _C(exchanges[i].GetQuoteCurrency);
        var len = Object.keys(coins).length;
        if(!coins.hasOwnProperty(quote)) {
            coins[quote] = len;
            len += 1;
        }
        if(!coins.hasOwnProperty(base)) {
            coins[base] = len;
            len += 1;
        }
    }
}

function get_graph() {
    var graph = [];
    for(var i = 0; i < exchanges.length; ++i) {
        var ticker = _C(exchanges[i].GetTicker);
        var base = _C(exchanges[i].GetCurrency);
        var quote = _C(exchanges[i].GetQuoteCurrency);
        graph.push({
            from: coins[base],
            to: coins[quote],
            weight: ticker.Buy
        });
        price[base + quote] = ticker.Buy;
        graph.push({
            from: coins[quote],
            to: coins[base],
            weight: 1 / ticker.Sell
        });
        price[quote + base] = 1 / ticker.Sell;
    }
    return graph;
}

function bfm(graph, initAmount, feeRate) {
    var dist = [];
    var pre = [];
    var i;
    var j;
    var fee = 0;
    for(i = 0; i < Object.keys(coins).length; ++i) {
        dist.push(0);
        pre.push(-1);
    }
    dist[1] = initAmount;
    for(i = 0; i < Object.keys(coins).length - 1; ++i) {
        for(j = 0; j < graph.length; ++j) {
            var from = graph[j].from;
            var to = graph[j].to;
            var rate = graph[j].weight;
            if(dist[from] * rate > dist[to]) {
                dist[to] = dist[from] * rate;
                pre[to] = from;
            }
        }
    }
    if(dist[1] <= initAmount) {
        return false;
    }
    var path = [];
    var top = pre[1];
    var coin_keys = Object.keys(coins);
    path.push({
        from: coin_keys[top],
        to: coin_keys[1],
        rate: price[coin_keys[top] + coin_keys[1]]
    });
    while(top != 1) {
        var temp = top;
        top = pre[top];
        path.push({
            from: coin_keys[top],
            to: coin_keys[temp],
            rate: price[coin_keys[top] + coin_keys[temp]],
        });
    }
    path.reverse();
    
    fee = path.length * feeRate * initAmount;
    if(dist[1] - initAmount <= fee || path.length == 0) {
        return false;
    }
    return path;
}

function onTick() {
    var graph = get_graph();
    var account = _C(exchanges[0].GetAccount);
    var balance = account.Balance;
    
    var path = bfm(graph, balance, 0);
    if(!path) {
        return;
    }
    Log(path);
    
    // buy & sell follow the path 
    ...
}

function main() {
    get_coins();
    
    while(1) {
        onTick();
    }
}

5.总结

Em resumo, a FMZ é uma boa plataforma, boa e confiável, a voz é forte, espero que a FMZ seja cada vez melhor, eu vou continuar a estudar (também na direção da blockchain) e continuar a mudar-me para a FMZ sem gastar dinheiro.

(Escrito na tarde de 7 de março de 2020, depois de escrever uma estratégia para ajudar as pessoas a verem que o seu saldo da fmz não é suficiente, eles vieram enganar a gente)

O Facebook também divulgou uma mensagem de Twitter.


Relacionados

Mais.

LiuyuxuanO micro-sinal está errado, como é que eu posso ligar?

Superzhang2021Erro de micro-sinal

JuntamentoObrigado por compartilhar. O link do Github do Strategy Repository foi muito útil!

OlndooOlá, proprietário, é bom ver você, eu acabei de publicar uma solicitação estratégica. Agora, o proprietário ainda não pagou.

Sonhos pequenosCompartilhar com o resto do mundo, prazer!

Ervas daninhasObrigado por partilhar.

b6712O uso de divisas em círculos monetários pode ser usado, mas os juros de câmbio em finanças internacionais são trabalhos de estudantes de graduação, e é possível ver que não há juros.

CzgcoolO produto está cheio, obrigado por compartilhar, aprender financeiro através da quantificação é o caminho mais fácil para os geeks.

John.O que você está fazendo é errado.

A máquina de colheita do pequeno gênioO que é isso?