Графическая стратегия торговли мартингейлом

Автор:Доброта, Создано: 2020-07-23 10:13:42, Обновлено: 2023-10-26 20:06:48

img

Резюме

Строго говоря, Мартингейл - это метод управления позициями. Его можно проследить до восемнадцатого века и он существует уже сотни лет. До сих пор существует много мартингейлов или аналогичных стратегий. Люди смешивают похвалы и критику этой стратегии.

Что такое мартингейл?

Мартингейл возник во Франции, буквально переведенный на английский язык: martegal, первоначально обозначал ремень, управляющий колесницей. Мартингейл позже представлял собой стратегию азартных игр. Первоначально он использовался в азартных играх в рулетке и постепенно распространялся на финансовые транзакции.

Мартингейл форвардный

Секрет никогда не терять деньги заключается в том, чтобы удвоить ставку каждый раз, когда вы теряете деньги, и вернуть ставку в исходную единицу после любой победы. Независимо от того, сколько раз вы проигрываете до победы, до тех пор, пока вероятность позволяет игроку выиграть один раз, он не только сможет выиграть все предыдущие потери, но и прибыль от одной ставки.

Например, если бросить монету, вероятность того, что она выйдет вперёд и вспять, составляет около 50%. Количество последовательных бросков начинает уменьшаться с вероятностью 50%, что означает, что в любом броске монеты вероятность выхода вперёд составляет 50%, вероятность двух положительных бросков вспять - 25%, вероятность трех положительных бросков вспять - 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: 'Money curve'
    },
    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: []
    }]
}; // Drawing object


// Strategy entry function
function main() {
    var ObjChart = Chart(chart);  // Drawing object
    ObjChart.reset();  // Clear the drawing before starting
    var now = 0  // Random times
    var bet = 1
    var maxBet = 0  // Record maximum multiple
    var lost = 0
    var maxLost = 0  // Maximum consecutive losses
    initialFunds = 10000  // Initial fund
    var funds = initialFunds  // Real-time fund
    while (true) {
        if (Math.random() > 0.5) { // 50% win rate
            funds = funds + bet  // Make money
            bet = 1 // Every time you make money, reset the bet multiple to 1
            lost = 0
        } else {
            funds = funds - bet // Lose money
            bet = bet * 2 // Double the bet multiple if it fails
            lost++
        }
        if (bet > maxBet) {
            maxBet = bet  // Calculate the maximum multiple
        }
        if (lost > maxLost) {
            maxLost = lost  // Calculate the number of consecutive losses
        }
        ObjChart.add([0, [now, funds]])  // Add drawing data
        ObjChart.update(chart)  // Drawing
        now++  // Random times plus 1
        if (funds < 0) {  // If bankruptcy ends the proceedings
            return Log("Initial fund:" + initialFunds + "Random times:" + now   + "Maximum consecutive losses:" + maxLost  + "Maximum multiples:" + maxBet + "Final fund:" + funds)
        }
    }
}

Результаты испытаний

img

Мартингейл с обратной стороны

В отличие от форвардного мартингеля, обратный мартингель заключается в том, чтобы удвоить ставку каждый раз, когда вы выигрываете, и вернуть ставку на исходную единицу, когда вы теряете деньги. Это расширение стратегии Мартингейла. Теоретически эта стратегия более подходит для использования на трендовых рынках, потому что операция с трендом имеет высокий уровень успеха. Увеличение уровня успеха сопровождается избыточными доходами, получаемыми путем постепенного увеличения позиций.

Проверьте обратный мартингейл с кодом

/*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: 'Money curve'
    },
    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: []
    }]
}; // Drawing object


// Strategy entry function
function main() {
    var ObjChart = Chart(chart);  // Drawing object
    ObjChart.reset();  // Clear the drawing before starting
    var now = 0  // Random times
    var bet = 1
    var maxBet = 0  // Record maximum multiple
    var lost = 0
    var maxLost = 0  // Maximum consecutive losses
    initialFunds = 10000  // Initial fund
    var funds = initialFunds  // Real-time fund
    while (true) {
        if (Math.random() > 0.5) { // 50% win rate
            funds = funds + bet  // make money
            bet = bet * 2 // Double the bet multiple if you make money
            lost = 0
        } else {
            funds = funds - bet // loss money
            bet = 1 // Every time you lose money, reset the bet multiple to 1
            lost++
        }
        if (bet > maxBet) {
            maxBet = bet  // Calculate the maximum multiple
        }
        if (lost > maxLost) {
            maxLost = lost  // Calculate the number of consecutive losses
        }
        ObjChart.add([0, [now, funds]])  // Add drawing data
        ObjChart.update(chart)  // Drawing
        now++  // Random times plus 1
        if (funds < 0) {  // If bankruptcy ends the proceedings
            return Log("Initial fund:" + initialFunds + "Random times:" + now   + "Maximum consecutive losses:" + maxLost  + "Maximum multiples:" + maxBet + "Final fund:" + funds)
        }
    }
}

Результаты испытаний

img

Применение мартингейла на фьючерсном рынке

Несмотря на то, что на рынке фьючерсов нет ограничения на максимальный объем ордеров, в отличие от казино, рост и падение фьючерсов не является полностью случайной ставкой. Реальный финансовый рынок торговли более сложен, чем казино. Если в торговле фьючерсами используется стратегия Мартингейла, как только рынок движется в противоположном направлении от рынка тренда, по мере развития рынка удвоится позиция и увеличится риск. Затем для трейдеров, которые хотят использовать стратегию Мартингейла для рынка фьючерсов, необходимо решить по крайней мере три проблемы:

  1. Начальное положение
  2. Добавление кратных позиций
  3. Добавление расстояния от позиции

Начальная позиция должна быть определена в соответствии с суммой вашего капитала, то есть рассчитать максимальное количество последовательных потерь, которые капитал может выдержать перед торговлей. Если начальная позиция слишком высока, это приведет к чрезмерному количеству средств, которые должны быть инвестированы после каждого удвоения позиции. Кроме того, слишком высокое увеличение позиции множитель будет вызывать ту же проблему. Мартингейл по умолчанию удваивает увеличение позиции. Если он установлен на 3 раза увеличить позицию, скорость банкротства будет быстрее, но если он установлен на 1,5 раза увеличить позицию, он появится Другой результат. Последнее, что следует рассмотреть, - это расстояние для увеличения позиции. Например, открытие длинной позиции по цене 5000, добавление позиции, когда цена падает на 15 пипсов, и добавление позиции, когда цена падает на 30 пипсов, также отличается. Это полностью зависит от привычек трейдера и толерантности к риску.


Связанные

Больше