Commodity futures de la stratégie de CTA: Jeanne Martinel

Auteur:Z3192, Date: 2021-04-23 21:06:05 Le président du conseil d'administration
Les étiquettes:

Première partie:

La stratégie de Martingale est née en France au XVIIIe siècle, mais elle est devenue populaire en Europe peu de temps après. En théorie, c'est une stratégie à un taux de réussite proche de 100%, et elle existe encore aujourd'hui sur de nombreux marchés, tels que les devises, les contrats à terme et les marchés de devises numériques.

Deuxièmement, le principe de la stratégie de Martinel.

Martingale n'est ni une stratégie ni un mécanisme de négociation, mais une façon de gérer les fonds. Son principe est simple: chaque fois que le trader perd une certaine quantité, il double la quantité de l'ordre suivant jusqu'à ce qu'il retrouve sa valeur initiale au moment du gain. Ainsi, il suffit de gagner une seule fois pour récupérer non seulement les pertes précédentes, mais aussi les gains de la première fois.

Supposons maintenant qu'il y ait une pièce d'un poids égal sur les deux côtés, et que le lancer continu de la pièce ait une probabilité d'apparition positive et inverse d'environ 50%. Ensuite, nous parions sur le lancer de la pièce, le pari initial étant de 1 yuan, gagnant 1 yuan si la face positive apparaît et perdant 1 yuan si la face inverse apparaît.

Selon le principe de la stratégie de Martin, chaque fois que vous perdez de l'argent, vous ajustez le montant du pari à deux fois le montant du dernier pari, il suffit de gagner une fois pour récupérer toutes les pertes précédentes. Mais lorsque vous perdez en succession, vous perdrez tout. Si le capital est de seulement 10 dollars, le premier pari est de 1 dollar, il y a une perte inverse de 1 dollar, le solde du compte est de 9 dollars; le deuxième pari de 2 dollars, il y a une perte inverse de 2 dollars, le solde du compte est de 7 dollars; le troisième pari de 4 dollars, il y a une perte inverse de 4 dollars, le solde du compte est de 3 dollars; alors il n'y a pas assez de fonds déposés.

Troisièmement, le retour à la stratégie

  • Date de début du test: 2015-06-01
  • Date de fin de la révision: 2021-04-01
  • Variété de données: indice des plats
  • Cycles de données: ligne du jour
  • Points glissants: 2 sauts par position

Résolution de la configuration img Résultats des tests img La courbe de financement img Informations sur le journal img

Quatrièmement, la stratégie de Martin Gellar est en train de s'améliorer.

Le plus grand risque de la stratégie de Martinel est que le marché est toujours dans un marché unilatérale, si la direction de la position du trader est inversée par rapport à la direction du marché, la position accumulée est très terrible. Si le capital initial du trader est de 10 000 yuan et qu'il augmente son investissement à deux fois sa perte, il ne lui faut que 7 pertes consécutives pour exploser. Mais si le taux de rebond est modifié à 1,5, la situation s'améliore beaucoup et les pertes consécutives ne sont que 12 fois; si le taux de rebond est modifié à 1,1, il faut 49 pertes consécutives pour exploser.

img

Le graphique ci-dessus est un graphique du taux de dépôt et du ratio de l'investissement, de sorte que l'on peut voir que le taux de dépôt est inférieur, le capital occupé est très petit, la résistance au risque stratégique est plus forte. Pour assurer la sécurité des fonds, il est recommandé d'utiliser un taux de dépôt faible, il est recommandé de bien calculer le taux de dépôt avant le placement, de préférence le taux de dépôt pouvant générer une dizaine de pertes consécutives.

Cinquième résumé

La probabilité de transaction est la nature de la transaction et personne ne peut garantir un profit de 100% à chaque fois que vous passez une commande. On peut dire que le risque existe déjà lorsque vous passez une commande avec les meilleures raisons et le meilleur moment. La stratégie de Martingale s'applique particulièrement aux marchés tendance, où les traders obtiennent des rendements très solides à condition de pouvoir raisonnablement juger de la tendance, d'ouvrir des positions dans la direction de la tendance et de définir un bon rapport de risque-rendement.


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




Plus de