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

A estratégia de Martin para o mercado de futuros de moeda digital

Autora:Inventor quantificado - sonho pequeno, Criado: 2022-02-07 09:12:36, Atualizado: 2023-09-20 10:11:23

img

A estratégia de Martin para o mercado de futuros de moeda digital

作为一个教学策略,兼顾一定的实战性能当然是最好的。「数字货币期货类马丁策略」在FMZ.COM围观板块也已经展示了小半年了。经历了好几拨风吹雨打,马丁、网格策略有其风险硬伤,参数保守一点也不是不能用。

  • O mercado real de futuros do Binance

    img

  • Disco real dYdX

    img

A Dream Total garante que não há nenhuma curva de lucro para a fabricação de alumínio de recheio (cabeça de cão manual).

No entanto, a primeira versão do projeto estratégico é relativamente simples, a interface tem apenas uma participação, a saída de dados de benefícios gerais, a curva de ganhos e perdas é apenas impressa para alcançar ganhos e perdas, sem contar os ganhos e perdas.

O artigo é uma forma de melhorar esta estratégia de seis meses de guerra real e estável.

Plano de atualização

  • A barra de status de atualização mostra informações sobre a sua posse atual, em vez de um conjunto de dados impressos. Mostra o lucro total atual, ganhos e perdas flutuantes, ganhos e perdas reais (ganhos e perdas totais já incluídos em ganhos e perdas flutuantes)
  • O gráfico mostra a posição atual do aplicativo.

A versão da política antes da atualização está registrada na página "Notas" da política.

img

这个也是我的个人开发习惯,在FMZ.COM上很方便记录策略开发、迭代的点点滴滴。

Começa a escalada! Primeiro, vamos otimizar o "status bar" para mostrar que os alunos que estão familiarizados com a documentação de desenvolvimento do FMZ sabem que mostrar dados do status bar no FMZ é uma boa maneira de fazer isso.LogStatusFunções. Então nós descobrimos este ponto de entrada e começamos a desenhar o código.

img

A seguir, adicione aqui um grande código:

                    var tblPos = {
                        "type" : "table",
                        "title" : "持仓",
                        "cols" : ["持仓数量", "持仓方向", "持仓均价", "持仓盈亏", "合约代码", "自定义字段 / " + SpecifyPosField],
                        "rows" : []
                    }
                    var descType = ["多头仓位", "空头仓位"]
                    for (var posIndex = 0 ; posIndex < pos.length ; posIndex++) {
                        tblPos.rows.push([pos[posIndex].Amount, descType[pos[posIndex].Type], pos[posIndex].Price, pos[posIndex].Profit, pos[posIndex].ContractType, SpecifyPosField == "" ? "--" : pos[posIndex].Info[SpecifyPosField]])
                    }
                    
                    var tbl = {
                        "type" : "table",
                        "title" : "数据",
                        "cols" : ["当前总权益", "实际盈亏", "当前价格", "买单价格/数量", "卖单价格/数量"],
                        "rows" : []
                    }
                    var buyOrder = null 
                    var sellOrder = null 
                    for (var orderIndex = 0 ; orderIndex < orders.length ; orderIndex++) {
                        if (orders[orderIndex].Type == ORDER_TYPE_BUY) {
                            buyOrder = orders[orderIndex]
                        } else {
                            sellOrder = orders[orderIndex]
                        }
                    }
                    var realProfit = currTotalEq - totalEq
                    if (exchange.GetName() == "Futures_Binance") {
                        _.each(pos, function(p) {
                            realProfit += parseFloat(p.Info.unRealizedProfit)
                        })                        
                    }
                    var t = exchange.GetTicker()
                    tbl.rows.push([currTotalEq, realProfit, t ? t.Last : "--", (buyOrder.Price + "/" + buyOrder.Amount), (sellOrder.Price + "/" + sellOrder.Amount)])
                    
                    // 更新图表数据             
                    if (t && showLine) {
                        _.each(pos, function(p) {
                            $.PlotLine(descType[p.Type] + "持仓价格", p.Price)
                        })
                        $.PlotLine("买单挂单价格", buyOrder.Price)
                        $.PlotLine("卖单挂单价格", sellOrder.Price)
                        $.PlotLine("当前价格", t.Last)
                    }
                    
                    // 更新状态栏数据
                    LogStatus("时间:" + _D() + "\n" + "`" + JSON.stringify(tblPos) + "`" + "\n" + "`" + JSON.stringify(tbl) + "`")

Substitua o que antes era simplesLogStatusExportação

LogStatus(_D(), "当前总权益:", currTotalEq, "持仓:", pos)

A estratégia adiciona dois parâmetros:

img

  • Parâmetros showLine A opção de seleção permite que você use o galpão de classes de linha de desenho na página do disco real para desenhar o preço do estoque, o preço do pedido pendurado, a curva de preços atual.

  • SpecifyPosField Parâmetros Usado para configurar os campos primários de informações de armazenamento que precisam ser exibidos, pois os nomes dos campos primários de dados de armazenamento de cada bolsa são diferentes. Portanto, um parâmetro personalizado foi projetado para especificar os nomes dos campos a serem exibidos. Por exemplo, o meu disco Binance:

    img

    Eu quero mostrar os dados de informações sobre o estoque no campo Info (dados originais da interface da bolsa)unRealizedProfitA propriedade de que o estoque não alcançou lucro ou prejuízo. Pode ser definido como unRealizedProfit pelo parâmetro SpecifyPosField.

    Um design semelhante permite que as políticas se adaptem à saída de dados não uniformes, dando aos usuários opções para personalizar o conteúdo da saída.

Reinicie o disco rígido do Binance, dYdX após a política de atualização

img

img

Os dados que precisam ser exibidos podem ser vistos de imediato. Observar o progresso da estratégia de negociação, o preço atual do estoque, os ganhos e perdas e os preços de pendência é muito mais fácil. A estratégia tem um certo risco, o disco real define parâmetros específicos de controle com base em seus próprios riscos, ganhos e perdas auto-responsáveis.


Relacionados

Mais.

AAA386Afinal, parece que n = 1 no código fonte não faz sentido?

EremitaEu acho que o ouro é bom para fazer XAUUSD em relação a queda e queda em relação a qualquer outro círculo monetário tão forte

Não, não.A primeira coisa que você precisa fazer é mudar a variável de lucro para que você possa executar várias moedas ao mesmo tempo.

Inventor quantificado - sonho pequenoAfinal, o que eu quero dizer é que, se você não é capaz de fazer isso, então você não pode fazer isso.

Inventor quantificado - sonho pequenoSim, porque os diferentes pares de transações, os preços são muito diferentes, não podem ser representados de forma intuitiva, e precisam ser projetados em percentagem. Se continuarmos a representar os preços, precisamos definir um parâmetro de conjunto para definir separadamente os preços dessas diferentes variedades.