Discussão do artigo "Arbitragem triangular" - página 4

 

Como a arbitragem está repleta de situações às vezes muito negativas, quase sempre é necessário ter uma condição de desligamento de emergência para uso em combate.

 
fxsaber:

Como a arbitragem está repleta de situações às vezes muito negativas, é quase sempre necessário ter uma condição de desligamento de emergência para uso em combate.


Ninguém discute isso. Mas isso é algo que cada um pode acrescentar por conta própria.

 

A interpretação matemática da arbitragem de moedas em termos gerais é bastante simples


Uma pesquisa mostrou que isso é exatamente o que foi sugerido aqui no fórum

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação.

Construção plana, mas como abrir com ela?

anônimo, 2014.09.23 22:30

1) Os vértices do gráfico são todas as moedas em uso.

2) Os pesos das arestas do gráfico são os logaritmos das taxas de câmbio correspondentes (os custos de transação também podem ser levados em conta).

3) A solução pode ser obtida usando o algoritmo de Bellman-Ford.

4) Se não houver um caminho com custo negativo, não há situação de arbitragem.

Rápido e sem força bruta.

Algumas imagens para você começar

Implementar a busca por um loop negativo (arbitragem) via Bellman-Ford não é difícil. Mas este artigo bastante recente diz que o ciclo negativo ideal - o ciclo mais curto (menor soma de bordas) - não é encontrado. Isso é verdade ou não?


É realmente necessário criar seu próprio ciclo em 2017 para determinar a arbitragem atual mais forte?

 

Bellman-Ford é bom para obter uma safra sintética de forma incremental

  1. Usando os preços atuais (bestprice) via BF, encontramos o melhor preço sintético. Coloque-o no melhor preço da xícara sintética. Calculamos o volume com base no fato de que todo o volume do bestprice do símbolo real, que está incluído na melhor combinação sintética, é consumido.
  2. O melhor preço do símbolo real da etapa 2 é então alterado para a próxima banda. Para os "novos preços", aplicamos o item 1.
No final, repetimos os dois pontos até que se verifique que não há nenhum símbolo (que possa participar da combinação sintética) com "liquidez" diferente de zero. Nesse ponto, o vidro sintético será formado.

 
fxsaber:

o ciclo negativo ideal - o ciclo mais curto (menor soma de bordas) - não é encontrado. Isso é verdade ou não?


https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%91%D0%B5%D0%BB%D0%BB%D0%BC%D0%B0%D0%BD%D0%B0_%E2%80%94_%D0%A4%D0%BE%D1%80%D0%B4%D0%B0: "O algoritmo de Bellman-Ford é um algoritmo para encontrar o caminho mais curto em um gráfico ponderado".

Se o caminho com esse comprimento não for o único - na ideia, há uma chance de escolher um caminho com o mesmo custo, mas que passe por mais vértices. Há duas maneiras de resolver o problema (supondo que seja preguiçoso verificar):

1) Em vez de N iterações pelo número de moedas e depois verificar se há loop negativo - faça N iterações, mas verifique se há loop negativo a partir da terceira.

2) Na recuperação do caminho mais curto, use a pesquisa com retorno. O pior caso é quando todos os caminhos são negativos e têm o mesmo custo. Não é realista para dados corretos + você pode se proteger facilmente contra isso adicionando um contador de segurança.

 
anonymous:

EURUSD e GBPUSD têm um spread negativo. Mas a arbitragem do GBPUSD é mais favorável. Entretanto, o BF pode mostrar um ciclo negativo EUR->USD->EUR, mas não GBP->USD->GBP. O custo do segundo ciclo é menor, mas o BF não tem a intenção de mostrar os "melhores" ciclos negativos.

O artigo mencionado sugere um método impreciso para encontrar o melhor ciclo negativo. Não foi estabelecido um ciclo claro até o momento?


ZY Embora o exemplo seja ruim, se o BF começar com o USD, ele deverá mostrar o GBPUSD. Mas o ponto ainda está claro.

 

Esta imagem mostra a arbitragem de quatro pares de moedas (número de setas azuis). É possível uma arbitragem ideal com mais participantes?

 

> E sua presença é determinada pelo cumprimento da condição de relaxamento na última iteração do BF.

Ainda assim, sugiro começar a verificar após cada iteração :)

> O custo do segundo ciclo é menor, mas o BF não tem a intenção de mostrar os "melhores" ciclos negativos

Isso significa que sua implementação simplesmente usa o primeiro ciclo com custo negativo. Não pegue o primeiro que aparecer...

  for (unsigned int i = 0; i < n; i++) {
    for (unsigned int j = 0; j < n; j++) {
      // insira três variáveis em 1) o melhor valor da diferença entre as partes esquerda e direita;
      // 2-3) índices i e j em que esse valor é atingido.
      if ((dis[i] + weights(i, j)) < dis[j]) { 
        // a recuperação do loop deve ser feita depois que as iterações i/j forem concluídas
        return extract_cycle(pre, j, n);
      }
    }
  }


 
anonymous:

> E sua presença é determinada pelo cumprimento da condição de relaxamento na última iteração do BF.

Ainda assim, sugiro começar a verificar após cada iteração :)

> O custo do segundo ciclo é menor, mas o BF não tem a intenção de mostrar os "melhores" ciclos negativos

Isso significa que sua implementação simplesmente usa o primeiro ciclo com custo negativo. Não pegue o primeiro...

Sim, surgiu a ideia de percorrer todos os ciclos de uma só vez. Mas não é nada óbvio que o menor ciclo possível esteja entre eles.

Falando francamente, as provas da correção do BF (tudo o que li) são vagas. E quando se trata de ciclos negativos, eles aparecem apenas como um bônus. E nada de concreto, exceto a determinação de sua presença, é garantido pelo BF.

Se houvesse uma solução simples de força bruta, o artigo provavelmente não apresentaria um algoritmo aproximado para encontrar o ciclo ideal. Eu mesmo ainda não comecei a trabalhar com o ciclo, mas até agora não consigo ver o que é tão intransponível. A pesquisa não produz nada, exceto algum raciocínio primitivo de HFT para recursos quânticos.

 

Não é mais fácil executar um robô e ver o que ele encontra e negocia?
Respeito os teóricos, não é possível ir a lugar algum sem eles, mas sou um praticante e essa ideia, pelo menos para negociar nos mercados, não exige uma preparação matemática tão séria, porque

a) todos os preços oferecidos a nós já têm sua margem de lucro

b) as contrapropostas já são agrupadas antes de chegarem até nós

c) na forma recebida, a arbitragem tem caráter probabilístico.


Eu gostaria de ouvir sua opinião sobre por que uma ideia tão simples precisa de uma solução tão complicada.