# 图解正反马丁格尔策略

Author: Hukybo, Created: 2020-07-17 16:33:23, Updated: 2020-07-20 10:58:30

[TOC]

##### 用代码验证正向马丁格尔
``````/*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.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.update(chart)  // 画图
now++  // 随机次数加1
if (funds < 0) {  // 如果破产结束程序
return Log("初始资金：" + initialFunds + " 随机次数：" + now   + " 最大连续亏损次数：" + maxLost  + " 最大倍数：" + maxBet + " 最终资金：" + funds)
}
}
}
``````

##### 马丁格尔在期货市场上的应用

1、起始仓位 2、加仓倍数 3、加仓距离

Related

More