マティンゲル戦略は18世紀のフランスで最初に生まれたが,その頃はゲームテーブルで用いられていたが,その後すぐにヨーロッパで広く知られるようになった.理論上は100%に近い確率で,現在まで多くの取引市場,例えば外為,先物,デジタル通貨市場で存在している.しかし,それは本当に信頼できるのか?それは本当に伝説の戦いの無敵なのか?この記事では,商品先物を作って簡単にマティンゲル戦略を証明する.
マッティンゲルは取引戦略でも取引メカニズムでもなく,資金管理の方法である.その原理は単純である.トレーダーは,ある程度の損失を伴うたびに,次の注文量を倍にします.利益になるまで,次の注文量を元の値に戻します.そうすることで,一度だけ利益を得ることができ,前回の損失を回収するだけでなく,最初の注文量の利益を得ることができます.これは明らかに逆転倍増の資金管理の方法です.
現在,正面と逆面が同じ重さのコインがあり,繰り返しコインを投げると,正面と逆面が出る確率は約50%です. 次に,このコインを投げると,最初の賭け金額は1元で,正面が出ると1元,逆面が出ると1元です.理論的には,コインが正面と逆面が出る確率は同じです.
マルチンの戦略原理によれば,負けたときの賭け額を前回の賭け金額の2倍に調整し,一度勝っただけで以前の損失をすべて取り戻す.しかし,連続した損失の場合,何も失うこともない.本金が10元で,最初の賭け金は1元で,逆負荷は1元で,口座残高は9元;第二賭け金は2元で,逆負荷は2元で,口座残高は7元;第三賭け金は4元で,逆負荷は4元で,口座残高は3元です.このとき,十分な資金が押金されていません.
復元配置 テスト結果 資金の曲線 日記情報
マティンゲルの戦略最大のリスクは,市場が常に片方的に動いていることであり,トレーダーの持股方向が市場方向に逆らっている場合,累積したポジションは非常に恐ろしくなる.トレーダーの初期資金が1万元で,損失を2倍に増やす場合,連続損失を7回しか持たない.しかし,倍投を1.5に変更すると,状況はかなり良くなり,連続損失を12回しか持たない.倍投を1.1に変更すると,連続損失を49回必要とする.占有資金が比較的小さいため,操作するリスクは比較的小さい.
上図は倍投数と資金投入比率の図である.したがって,低倍投数を使用すると,占拠する資金が非常に小さく,戦略的リスク抵抗力が強いことがわかります. そのため,資金の安全性を確保するために,実盤は低倍投数を使用することをお勧めします.実盤の前に計算する倍投数を推奨します.
取引の概率は取引の本質であり,誰も1回の注文で百パーセントの利益を保証する気はない.良い理由とタイミングで注文すると,リスクは既に存在していると言える.マルティンゲルの戦略は,特にトレンド市場に適用される.トレーダーは,トレンドを合理的に判断し,トレンドの方向に沿って取引を開始し,良いリスク・リターン比を設定する限り,非常に安定したリターンを得ることができます.
/*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 ) } }