CTA Strategy Commodity Futures: Jenni Martinegel

Penulis:Zer3192, Tarikh: 2021-04-23 21:06:05
Tag:

Satu, ringkasan

Strategi Martingale bermula pada abad ke-18 di Perancis, tetapi ia digunakan di atas meja permainan, dan tidak lama kemudian menjadi popular di Eropah. Secara teori, ia adalah strategi yang mempunyai peluang kemenangan yang hampir 100%, sehingga kini terdapat di banyak pasaran dagangan, seperti pasaran mata wang asing, niaga hadapan dan mata wang digital. Namun, adakah ia benar-benar boleh dipercayai?

Kedua, asas strategi Martinel.

Martingale bukanlah strategi perdagangan atau mekanisme perdagangan, tetapi merupakan kaedah pengurusan wang. Prinsipnya sangat mudah: setiap kali pedagang kehilangan jumlah tertentu, mereka menggandakan jumlah pesanan berikutnya sehingga keuntungan kembali ke nilai awal. Dengan cara ini, hanya perlu mendapat keuntungan sekali, tidak hanya dapat memulihkan kerugian sebelumnya, tetapi juga mendapat keuntungan dari pesanan pertama. Jelasnya, ini adalah kaedah pengurusan wang yang menggandakan kenaikan harga.

Katakanlah bahawa anda mempunyai duit syiling yang beratnya sama dengan kedua-dua sisi, dan anda terus melemparkan duit syiling, dan kemungkinan munculnya positif dan sebaliknya adalah kira-kira 50%, kemudian anda bertaruh dengan membuang duit syiling ini, jumlah pertaruhan awal adalah 1 yuan, jika muncul positif, menang 1 yuan, jika muncul sebaliknya, kehilangan 1 yuan. Secara teori, kemungkinan munculnya duit syiling adalah sama, kerana setiap kali muncul tidak mempengaruhi satu sama lain secara bebas, iaitu 50%.

Mengikut prinsip strategi Martin, setiap kali kehilangan wang anda akan menyesuaikan jumlah pertaruhan anda menjadi dua kali ganda daripada jumlah pertaruhan terakhir anda, hanya perlu menang sekali untuk memulihkan semua kerugian anda sebelumnya. Tetapi apabila kerugian berturut-turut, anda juga akan kehilangan apa-apa. Jika modal hanya 10 yuan, pertaruhan pertama 1 yuan, terdapat kerugian terbalik 1 yuan, baki akaun adalah 9 yuan; pertaruhan kedua 2 yuan, terdapat kerugian terbalik 2 yuan, baki akaun adalah 7 yuan; pertaruhan ketiga 4 yuan, terdapat kerugian terbalik 4 yuan, baki akaun adalah 3 yuan; maka tidak ada dana yang cukup yang disimpan.

3. Ujian semula strategi

  • Tarikh permulaan ujian semula: 2015-06-01
  • Tarikh akhir kajian: 2021-04-01
  • Jenis data: Indeks hidangan
  • Siklus data: garis hari
  • Titik licin: 2 lompatan untuk membuka kedudukan

Pengukuran semula konfigurasi img Uji semula prestasi img Curve Kewangan img Maklumat log img

Empat, Martinel meningkatkan strategi

Risiko terbesar dalam strategi Martinger adalah bahawa pasaran sentiasa berada di pasaran satu sisi, dan jika arah pegangan pedagang bertentangan dengan arah pasaran, maka kedudukan yang terkumpul adalah sangat dahsyat. Jika modal awal peniaga adalah 10,000 yuan, apabila kerugian meningkat dua kali ganda, maka hanya memerlukan kerugian berturut-turut 7 kali, maka ia akan meledak. Tetapi jika perbelanjaan diubah menjadi 1.5, keadaan akan menjadi lebih baik, kerugian berturut-turut 12 kali akan meledak; jika perbelanjaan diubah menjadi 1.1, ia memerlukan kerugian berturut-turut 49 kali untuk meledak. Oleh kerana jumlah dana yang dipegang agak kecil, risiko operasi agak kecil.

img

Gambar di atas adalah grafik perbandingan perkalian dan pelaburan dana, yang dapat dilihat dengan menggunakan perkalian yang lebih rendah, dana yang diduduki sangat kecil, kemampuan strategi untuk melawan risiko semakin kuat, jadi untuk memastikan keselamatan dana, pasaran sebenar disyorkan untuk menggunakan perkalian yang rendah, disyorkan untuk mengira perkalian sebelum pasaran sebenar, yang terbaik adalah jumlah perkalian yang dapat menang kerugian berturut-turut sepuluh kali lebih banyak.

5. Ringkasan

Probabiliti dagangan adalah sifat dagangan, tidak ada yang berani menjamin keuntungan seratus peratus setiap kali anda membuat pesanan. Anda boleh mengatakan bahawa risiko sebenarnya sudah wujud apabila anda membuat pesanan dengan alasan dan waktu yang terbaik. Strategi Martingale sangat sesuai untuk pasaran tren, selagi peniaga dapat menilai tren dengan tepat, membuka dagangan mengikut arah trend, dan menetapkan nisbah pulangan risiko yang baik, mereka juga dapat memperoleh pulangan yang sangat mantap.


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




Lebih lanjut