60 linhas de código realizando uma ideia - uma estratégia de contractuação.

Autora:Sonhos pequenos, Criado: 2022-03-19 14:37:08, Atualizado: 2023-09-20 09:03:57

img

网格策略、马丁策略这种喜欢震荡行情的策略有其固有弊端,在ETH合约市场上也测试了一段时间的类似策略。也经常和FMZ.COM上的新老玩家们聊天分享经验。对于此类策略,有一点是非常赞同一位朋友的说法的。那就是币圈中做合约,做多相对于做空风险小了那么一丢丢。或者简单说就是下跌最惨就是归零,上涨是无限的。

Então, Martin, as estratégias como fazer mais, não fazer nada, tirar um transcrição distribuída de longa distância é mais arriscado do que fazer duas vezes? Essa ideia soa bem, mas ninguém sabe se vai durar na vida real. Mas pelo menos podemos testar essa ideia com um simples retest.

基于FMZ.COM迅捷开发

O código para implementar essa idéia é muito simples, graças à flexibilidade da plataforma, ao envelope da interface, ao poderoso sistema de retrospecção e muito mais. O código inteiro é de apenas 60 linhas (muito do que pode ser resumido não é resumido para especificar o código).

O projeto da estratégia é simples: segundo o preço inicial no início da lógica, o intervalo é pendurado para baixo, o preço continua a descer e continua a pendurar, continuando a copiar. Em seguida, pendure a ordem de liquidação após um certo diferencial de lucro baseado no preço da detenção, e aguarde o equilíbrio. Se o equilíbrio ocorrer, repita o preço inicial no preço atual.

O código da estratégia:

function cancelAll() {
    while (true) {
        var orders = _C(exchange.GetOrders)
        if (orders.length == 0) { 
            break 
        }
        for (var i = 0 ; i < orders.length ; i++) {
            exchange.CancelOrder(orders[i].Id, orders[i])
            Sleep(interval)
        }
    }
}

function getLong(arr, kind) {
    var ret = null 
    for (var i = 0 ; i < arr.length ; i++) {
        if (arr[i].Type == (kind == "pos" ? PD_LONG : ORDER_TYPE_BUY)) {
            ret = arr[i]
        }
    }
    return ret
}

function pendingBidOrders(firstPrice) {
    var index = 0
    var amount = baseAmount
    while (true) {
        var pos = _C(exchange.GetPosition)
        var price = firstPrice - index * baseSpacing
        amount *= ratio
        index++
        exchange.SetDirection("buy")
        exchange.Buy(price, amount)        
        if (pos.length != 0) {
            var longPos = getLong(pos, "pos")
            if (longPos) {
                exchange.SetDirection("closebuy")
                exchange.Sell(longPos.Price + profitTarget, longPos.Amount)
            }
        }
        while (true) {
            Sleep(interval)
            if (!getLong(_C(exchange.GetOrders), "orders")) {
                cancelAll()
                break
            }
            if (!getLong(_C(exchange.GetPosition), "pos")) {
                cancelAll()
                return 
            }
        }
    }
}

function main() {
    exchange.SetContractType(symbol)
    while (true) {
        pendingBidOrders(_C(exchange.GetTicker).Last)
    }
}

O design dos parâmetros é simples:

img

A partir daí, a questão é se o que você está fazendo é errado.

Vejam o que acontece com estas dezenas de linhas de código.

A partir de agora, o número de casos confirmados de doenças cardiovasculares aumentará.

img

Re-teste em execução:

img

img

Parece muito grátis, o sabor de estratégias do tipo Martin. Os novos alunos que começam a estudar não têm medo dessas estratégias longas e são facilmente dissuadidos. Estratégias curtas e refinadas são mais adequadas para a introdução, são mais fáceis de digerir ideias estratégicas, aprendendo design lógico.

O código estratégico é usado apenas para aprendizagem e pesquisa.


Relacionados

Mais.

Alegria/upload/asset/1dd6dcfd4579dc0b239a6.jpeg Depois de executado, o erro é relatado e depois pendurado, desinstalado e em ciclo infinito, como resolver?

Sonhos custam oito dígitosA estratégia só funciona no Binance?

Sonhos custam oito dígitosO que significa o coeficiente de crescimento do posicionamento?

Sonhos custam oito dígitosComo é que não há um endereço de política?

Sonhos pequenosSe o servidor tiver dois discos, a freqüência será duplicada, etc.;

Alegria/upload/asset/1dd36e54848c3bdf8c759.jpeg E, logicamente, eu acho que o parâmetro de dois rounds é 120 vezes por minuto no máximo, não é mais do que o limite de 1200 visitas por minuto.

Sonhos pequenosOlá, isso não tem nada a ver com a estratégia, você pode definir o intervalo de consultas nos parâmetros do modelo da língua Mac e definir um pouco maior. Se você estiver executando vários discos físicos em um servidor e todos acessarem a interface de uma bolsa, a frequência será duplicada e é fácil ultrapassar o limite de frequência.

Alegria/upload/asset/1dce38677beaf3c7ca065.jpeg Agora que o Binance não suporta a política da linguagem MAC, será indicado como usar a web para atualizar em tempo real e evitar o bloqueio do API?

Sonhos pequenosNão é cortês, só escrevi para apoiar a quantificação do FMZ.

AlegriaMuito bem, obrigada.

Sonhos pequenosOlá, esta é uma estratégia de ensino, principalmente para explicar a idéia de que você pode executar um contrato permanente em Binance, executar OK precisa de uma modificação na estratégia.

Sonhos pequenosA partir de agora, o sistema pode ser executado, ou seja, os parâmetros podem ser ajustados e executados.

Sonhos pequenosEsta estratégia é apenas uma estratégia de ensino, não seja realista, a pesquisa de retrospectiva pode ser aprendida. Copie o código fonte da estratégia e adicione parâmetros da estratégia, como o screenshot do artigo.

Sonhos pequenosA opção 2 é 2 vezes o valor de um armazém.