60 Zeilen Code realisieren eine Idee - die Strategie der Vertragskopierung.

Schriftsteller:Kleine Träume, Erstellt: 2022-03-19 14:37:08, Aktualisiert: 2023-09-20 09:03:57

img

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

Martin, ist eine Strategie, wie z.B. mehr zu tun, nichts zu tun, einen langen Bereich zu verteilen, besser als eine doppelte Strategie? Das klingt gut, aber wer weiß, ob es in der Praxis funktioniert. Aber zumindest können wir eine einfache Nachprüfung machen.

基于FMZ.COM迅捷开发

Der Code, um diese Idee umzusetzen, ist sehr einfach, dank der Flexibilität der Plattform, der Schnittstellenverpackung, des starken Rückrufsystems usw. Der gesamte Code ist nur mit 60 Zeilen (für die Code-Schreib-Spezifikationen gibt es viele, die nicht abgekürzt werden können).

Die Strategie ist sehr einfach: Sie hängen den Startpreis an, die Abstandslänge nach unten, und der Preis geht weiter nach unten. Dann hängen Sie die Auflösungsanweisung auf, nachdem der Haltpreis einen gewissen Gewinndifferenz erhöht hat, und warten Sie auf die Auflösung. Wenn Sie auflösen, wiederholen Sie den Anfangspreis zum aktuellen Preis.

Die Strategie ist hier:

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)
    }
}

Das Design der Parameter ist einfach:

img

Das ist nur ein paar Parameter.

Schauen Sie sich diese Dutzende von Codezeilen an.

Sie können die Zeitspanne für die Wiederholung einfach so einstellen:

img

Die Wiederholung läuft:

img

img

Es sieht aus wie ein Netzwerk, ein Geruch von Martin-Typ-Strategien. Die Neulingen, die anfangen zu lernen, haben keine Angst vor langen Strategien und werden leicht abgeschreckt. Kurze und verfeinerte Strategien sind besser geeignet, um strategische Ideen zu verdauen und Logik zu lernen.

Strategiecode ist ausschließlich für das Lernen und die Forschung bestimmt.


Verwandt

Mehr

Ich weiß./upload/asset/1dd6dcfd4579dc0b239a6.jpeg Wenn Sie ein Problem haben, das Fehlermeldungen nach dem Laufen hat, und dann immer aufgehängt und unbegrenzt abgelehnt wird, wie löst man das?

Der Traum ist achtstellig.Kann diese Strategie nur auf Binance ausgeführt werden?

Der Traum ist achtstellig.Was bedeutet ein Positionswachstumskoeffizient?

Der Traum ist achtstellig.Wie kommt es, dass es keine Policy-Adresse gibt?

Kleine TräumeIst mehrere Festplatten ausgeführt, wenn zwei Festplatten auf einem Server ausgeführt werden, wird die Frequenz verdoppelt, und so weiter.

Ich weiß./upload/asset/1dd36e54848c3bdf8c759.jpeg Also, logischerweise bin ich der Parameter, der zwei Schaltungen maximal 120 Mal pro Minute anbietet und nicht über die 1200 Zugriffe pro Minute Grenze hinausgeht.

Kleine TräumeHallo, das hat nichts mit der Strategie zu tun, Sie können die Abfragebegrenzung in den Parametern der Mac-Sprach-Modelle einstellen und etwas größer einstellen. Wenn Sie mehrere Festplatten auf einem Server laufen und alle auf die Schnittstelle einer Börse zugreifen, dann wird die Frequenz verdoppelt und es ist leicht, die Frequenz zu überschreiten.

Ich weiß./upload/asset/1dce38677beaf3c7ca065.jpeg Binance unterstützt die Verwendung von My Language Policy nicht, aber es wird angezeigt, wie man mit dem Web in Echtzeit aktualisiert und die API verhindert.

Kleine TräumeIch bin unhöflich, ich habe gerade geschrieben, dass ich für FMZ Quantifizierung bin.

Ich weiß.Gut, danke. Ich weiß.

Kleine TräumeHallo, dies ist eine Lehrstrategie, die hauptsächlich die Idee darstellt, dass man in Binance-Platformen laufen kann, und dass man die Strategie ändern muss.

Kleine TräumeSie können alle laufen, wenn Sie die Parameter anpassen.

Kleine TräumeDiese Strategie ist nur eine Lehrstrategie, nicht eine echte, rücktestbare Studie. Die Lernmethode kann man kopieren.

Kleine TräumeWenn man 2 setzt, dann ist das 2 mal mehr.