圖解正反馬丁格爾策略


摘要

嚴格來說馬丁格爾是一種倉位管理方法,最早可以追溯到十八世紀,歷經幾百年經久不衰,直到現在還有很多馬丁格爾或者類似的策略。人們對此策略也是褒貶不一,本節利用發明者量化(fmz.cn)以圖表的方式進行論證。

什么是馬丁格爾

馬丁格爾起源於法國,英文直譯為:martegal,最初是指控制馬車的馬具。后來馬丁格爾代表一種賭博策略。最初應用在輪盤賭博中,逐漸延伸到金融交易中,直到今天在股票、期貨、外匯,還能看到馬丁格爾的影子。之所以經久不衰,是因為從理論上講,這是一種永不虧錢的策略。

正向馬丁格爾

這種永不虧錢的秘訣在於,在每次賠錢后,將賭注加倍,而在任何一次贏錢之后,將賭注回歸到初始單位。無論在贏錢之前輸了多少次,只要概率讓下注者贏一次,不但能贏回之前所有的損失,還外加一次賭注的收益。馬丁格爾在金融市場中,創造了很多盈利奇跡和滑鐵盧的虧損。

以拋硬幣為例,出現正反面的概率約等於 50%,連續出現正面或反面的次數,都是以 50%的概率開始遞減,也就是說在任何一次拋硬幣中,出現正面的概率是 50%,連續 2 次出現正面的概率是 25%,連續 3 次出現正面的概率是 12.5%等等以此類推。

如果最開始賭注是 1 元,連續輸錢的賭注以 2 的倍數增加,也就是:1、2、4、8、16、32、64、128、256、512 等等,直到贏錢為止,一個回合才結束,所以每個回合都能贏得 1 元。雖然在紙面上,馬丁格爾可以做到永不虧錢,但是隨着一連串的損失發生,賭注的規模會呈幾何倍的速度增加。為了避免資金雄厚的賭徒運用這個策略,幾乎所有的賭場對每一次賭局有最高的下注限制。

用代碼驗證正向馬丁格爾
/*backtest
start: 2020-01-01 00:00:00
end: 2020-01-02 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_CTP","currency":"FUTURES"}]
*/

var chart = {
    __isStock: true,
    tooltip: {
        xDateFormat: '%Y-%m-%d %H:%M:%S, %A'
    },
    title: {
        text: '資金曲線'
    },
    rangeSelector: {
        buttons: [{
            type: 'hour',
            count: 1,
            text: '1h'
        }, {
            type: 'hour',
            count: 2,
            text: '3h'
        }, {
            type: 'hour',
            count: 8,
            text: '8h'
        }, {
            type: 'all',
            text: 'All'
        }],
        selected: 0,
        inputEnabled: false
    },
    xAxis: {
        type: ''
    },
    yAxis: {
        title: {
            text: ''
        },
        opposite: false,
    },
    series: [{
        name: "",
        id: "",
        data: []
    }]
}; // 畫圖對象


// 策略入口函數
function main() {
    var ObjChart = Chart(chart);  // 繪圖對象
    ObjChart.reset();  // 啟動前先清空繪圖
    var now = 0  // 隨機次數
    var bet = 1
    var maxBet = 0  // 記錄最大倍數
    var lost = 0
    var maxLost = 0  // 最大連續虧損次數
    initialFunds = 10000  // 初始資金
    var funds = initialFunds  // 實時資金
    while (true) {
        if (Math.random() > 0.5) { // 勝率為50%
            funds = funds + bet  // 賺錢
            bet = 1 // 每次賺錢后,就把下注倍數重置為1
            lost = 0
        } else {
            funds = funds - bet // 賠錢
            bet = bet * 2 // 失敗就把下注倍數翻倍
            lost++
        }
        if (bet > maxBet) {
            maxBet = bet  // 計算最大倍數
        }
        if (lost > maxLost) {
            maxLost = lost  // 計算連續虧損次數
        }
        ObjChart.add([0, [now, funds]])  // 添加畫圖數據
        ObjChart.update(chart)  // 畫圖
        now++  // 隨機次數加1
        if (funds < 0) {  // 如果破產結束程序
            return Log("初始資金:" + initialFunds + " 隨機次數:" + now   + " 最大連續虧損次數:" + maxLost  + " 最大倍數:" + maxBet + " 最終資金:" + funds)
        }
    }
}

 

測試結果
反向馬丁格爾

與正向馬丁格爾相反,反向馬丁格爾則是每次贏的時候,將賭注加倍,直到出現賠錢的時候將賭注回歸到初始單位。這是馬丁格爾策略的延伸,理論上這種策略更適合用在趨勢行情中,因為順勢而為的操作有很高的成功率。成功率的提高伴隨的是逐步加倉獲取的超額收益。

用代碼驗證反向馬丁格爾
/*backtest
start: 2020-01-01 00:00:00
end: 2020-01-02 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_CTP","currency":"FUTURES"}]
*/

var chart = {
    __isStock: true,
    tooltip: {
        xDateFormat: '%Y-%m-%d %H:%M:%S, %A'
    },
    title: {
        text: '資金曲線'
    },
    rangeSelector: {
        buttons: [{
            type: 'hour',
            count: 1,
            text: '1h'
        }, {
            type: 'hour',
            count: 2,
            text: '3h'
        }, {
            type: 'hour',
            count: 8,
            text: '8h'
        }, {
            type: 'all',
            text: 'All'
        }],
        selected: 0,
        inputEnabled: false
    },
    xAxis: {
        type: ''
    },
    yAxis: {
        title: {
            text: ''
        },
        opposite: false,
    },
    series: [{
        name: "",
        id: "",
        data: []
    }]
}; // 畫圖對象


// 策略入口函數
function main() {
    var ObjChart = Chart(chart);  // 繪圖對象
    ObjChart.reset();  // 啟動前先清空繪圖
    var now = 0  // 隨機次數
    var bet = 1
    var maxBet = 0  // 記錄最大倍數
    var lost = 0
    var maxLost = 0  // 最大連續虧損次數
    initialFunds = 10000  // 初始資金
    var funds = initialFunds  // 實時資金
    while (true) {
        if (Math.random() > 0.5) { // 勝率為50%
            funds = funds + bet  // 賺錢
            bet = bet * 2 // 賺錢就把下注倍數翻倍
            lost = 0
        } else {
            funds = funds - bet // 賠錢
            bet = 1 // 每次賠錢后,就把下注倍數重置為1
            lost++
        }
        if (bet > maxBet) {
            maxBet = bet  // 計算最大倍數
        }
        if (lost > maxLost) {
            maxLost = lost  // 計算連續虧損次數
        }
        ObjChart.add([0, [now, funds]])  // 添加畫圖數據
        ObjChart.update(chart)  // 畫圖
        now++  // 隨機次數加1
        if (funds < 0) {  // 如果破產結束程序
            return Log("初始資金:" + initialFunds + " 隨機次數:" + now   + " 最大連續虧損次數:" + maxLost  + " 最大倍數:" + maxBet + " 最終資金:" + funds)
        }
    }
}

 

測試結果
馬丁格爾在期貨市場上的應用

雖然在期貨市場並沒有最高下單量的限制,但與賭場不同的是,期貨的漲跌並不是完全隨機賭大小,真實的金融交易市場要比賭場更加復雜。如果將馬丁格爾策略用在期貨交易中,一旦市場按照反方向趨勢行情運行,后面隨着行情的發展,頭寸翻倍增加會越來越大,風險也隨之加大。那么對於想要使用馬丁格爾策略用於期貨市場的交易者來說,至少需要解決 3 個問題:

1、起始倉位
2、加倉倍數
3、加倉距離

起始倉位需要根據你的資金量而定,也就是在交易之前計算好資金能承受的最大連續虧損次數。如果起始倉位過高,會導致每次翻倍加倉后投入過大的資金量。另外加倉倍數太高也會導致同樣的問題,馬丁格爾默認是雙倍加倉,如果設置成 3 倍加倉,破產的速度會更快,但如果設置成 1.5 倍加倉,就會出現另一種結果。最后需要考慮的是加倉的距離,比如在 5000 點開多單,價格下跌 15 點加倉,和價格下跌 30 點加倉,也是不一樣的。這點完全取決於交易者的風險承受能力和交易習慣偏好。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM