CTA-Strategie für Kommoditäts-Futures von Janey Martinegger

Schriftsteller:Zer3192, Datum: 21.04.2021
Tags:

Erstens: Zusammenfassung

Die Martingale-Strategie entstand im 18. Jahrhundert in Frankreich, wurde jedoch damals vor allem an den Tisch verwendet und wurde bald in Europa bekannt. In der Theorie ist es eine Strategie mit einer Gewinnrate von fast 100%, die bis heute in vielen Handelsmärkten wie den Forex-, Futures- und Digitalwährungsmärkten vertreten ist.

Zweitens: Die Strategie von Martin Gelder

Martingale ist weder eine Handelsstrategie noch ein Handelsmechanismus, sondern eine Art der Geldverwaltung. Der Grundsatz ist einfach: Jedes Mal, wenn ein Händler einen gewissen Verlust erleidet, verdoppelt er das nächste Auftragsvolumen, bis es zum Gewinn zurückkehrt.

Angenommen, wir haben eine Münze mit gleichem Gewicht auf beiden Seiten, wir werfen die Münze immer wieder und die Wahrscheinlichkeit, dass eine positive und eine umgekehrte Münze erscheint, beträgt ungefähr 50 Prozent. Dann setzen wir mit dieser Münze, und der ursprüngliche Einsatz beträgt 1 US-Dollar, wenn eine positive Münze erscheint, gewinnen wir 1 US-Dollar, wenn eine umgekehrte Münze erscheint, verlieren wir 1 US-Dollar.

Nach dem Prinzip der Martin-Strategie wird bei jedem Verlust der Einsatzbetrag auf das Doppelte des letzten Einsatzes angepasst, nur einmal zu gewinnen, um alle vorherigen Verluste zurückzugewinnen. Aber wenn Sie in Folge verlieren, werden Sie auch nichts verlieren. Wenn das Kapital nur 10 USD ist, setzen Sie zum ersten Mal 1 USD, ein Rückverlust von 1 USD, der Kontobilanz beträgt 9 USD; beim zweiten Einsatz von 2 USD, ein Rückverlust von 2 USD, der Kontobilanz beträgt 7 USD; beim dritten Einsatz von 4 USD, ein Rückverlust von 4 USD, der Kontobilanz beträgt 3 USD; dann ist nicht genug Geld gesetzt.

3. Strategische Rückprüfung

  • Startdatum der Nachforschungen: 2015-06-01
  • Enddatum des Tests: 04.01.2021
  • Datenarten: Speisenindex
  • Datenzyklus: Tageszeile
  • Schiebepunkt: 2 Sprünge in die Position

Wiederholung der Konfiguration img Wiederholung der Ergebnisse img Die Kapitalkurve img Tagebericht img

Viertens: Martin Gelder hat seine Strategie verbessert.

Die größte Gefahr der Martinger-Strategie ist, dass der Markt immer einseitig ist, und wenn die Position des Traders entgegengesetzt ist, ist die angesammelte Position sehr schrecklich. Wenn der Trader mit einem Anfangskapital von 10.000 Yuan einen Verlust erleidet, muss er nur 7 Mal in Folge verlieren.

img

Die obige Abbildung ist ein Diagramm des Verdichter- und Einsatzverhältnisses, aus dem hervorgeht, dass eine niedrigere Verdichterzahl verwendet wird. Das besetzte Kapital ist sehr klein und die strategische Risikobereitschaft ist stärker. Um die Sicherheit der Gelder zu gewährleisten, empfiehlt sich, eine niedrige Verdichterzahl zu verwenden. Es wird empfohlen, die Verdichterzahl vor der Realisierung zu berechnen.

5. Zusammenfassung

Die Handelswahrscheinlichkeit ist das Wesen des Handels, und niemand kann garantieren, dass jeder Auftrag zu 100% profitabel ist. Man kann sagen, dass das Risiko bereits vorhanden ist, wenn man mit den besten Gründen und zum richtigen Zeitpunkt den Auftrag aufgibt. Die Martingale-Strategie ist besonders für Trendmärkte geeignet.


/*backtest
start: 2015-06-01 00:00:00
end: 2022-04-01 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_usdt"}]
*/

MarginLevel =20//合约杠杆 
unit =0.015//初始下单量
profits =1//盈亏间距
bei =1//倍率



function main() {
    exchange.SetContractType("swap")
    exchange.SetMarginLevel(MarginLevel)
    while (true) {
        let depth = exchange.GetDepth();
        if (!depth) return;
        let ask = depth.Asks[0].Price==-1;
        let bid = depth.Bids[0].Price==-1;
        let position = exchange.GetPosition()
        if (position.length == 0) {
            let redom = Math.random()
            unit =0.015
            if (redom > 0.5) {
                exchange.SetDirection("sell")
                exchange.Sell(-1, unit, "开空")
            }
            if (redom < 0.5 ) {
                exchange.SetDirection("buy")
                exchange.Buy(-1, unit, "开多")
            }
        }
        if (position.length > 0) {
            let type = position[0].Type;
            let profit = position[0].Profit;
            let amount = position[0].Amount;
            if (type == 0) {
                if (profit > profits) {
                    exchange.SetDirection("closebuy")
                    exchange.Sell(-1, amount, "多头止盈,当前盈利:" + profit)
                      unit = 0.015
                }       
            
                if (profit <-profits ) {
                    unit = unit * bei
                    exchange.SetDirection("buy")
                    exchange.Buy(-1, unit, "多头加仓,当前盈利:" + profit)
                }
            }
        
        
            if (type == 1) {
                if (profit > profits) {
                    exchange.SetDirection("closesell")
                    exchange.Buy(-1, amount, "空头止盈,当前盈利:" + profit)
                    unit = 0.015
            }
                    
                
                if (profit < -profits) {
                    unit = unit * bei
                    exchange.SetDirection("sell")
                    exchange.Sell(-1, unit, "空头加仓,当前盈利:" + profit)
                }
            
              }
          } 

        Sleep(1000 )
    }
}




Mehr