解決済み

逆マーチンゲール手法

2021/09/17 09:37
270

逆マーチンゲール手法を
可能にはできないものでしょうか?

コメント

GogoJungle
2021/09/17 10:23

マーチンゲールオプションを有効にした際に出力される
下記コードの一部を変更することで可能でございます。

double Martingale(double base_lots, double lots_mult, double max_lots, int magic)
{
   int lose = 0;
   double lots = base_lots;

   for(int i = OrdersHistoryTotal() - 1; i >= 0; i--) {
      if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) == false) continue;
      if(OrderSymbol() != Symbol() || OrderMagicNumber() != magic) continue;

      if(OrderProfit() < 0) {
         lose++;
      }
      else {
         break;
      }
   }

   lots *= MathPow(lots_mult, lose);

   if(lots > max_lots) lots = max_lots;

   return(lots);
}

変更前

      if(OrderProfit() < 0) {

変更後

      if(OrderProfit() > 0) {

バックテスト結果

逆マーチンゲール手法.png

ご参考いただけますと幸いです。何卒よろしくお願い申し上げます。

Ruby2018
2021/09/17 12:55

ご回答感謝です。

なるほど
ですが

まだコードを触るには
私には、敷居が高く感じます。

将来的に
EAつくーるで実現していただきたいと
希望しておきます。

よろしくお願いいたします。

ありがとうございました。

GogoJungle
2021/09/17 12:59

ご要望ありがとうございます。

検討事項に追加いたしました。

実装可能な場合は改めてご報告いたします。

Ruby2018
2021/09/17 13:06

マーチンゲールの説明に
「倍率に1未満の数値を設定することで、
負けが続くごとにロット数を小さくしていくことも可能です。
例4:ロット数0.1、倍率0.5倍で前回の取引が損失だった場合
ロット数 : 0.1 × 0.5 = 0.05」
とありますが

この場合との違いは、あるでしょうか?

Ruby2018
2021/09/17 13:07

この場合は
連勝したときに変化はどうなるのでしょうか?

GogoJungle
2021/09/17 19:54

倍率に1未満の数値を設定した場合は下記のようになります。
なお、0.01未満の場合は、0.01となります。(0.01が最小単位の場合)

ロット数を小さく.png

ご参考いただけますと幸いです。何卒よろしくお願い申し上げます。

関連トピックス

検索結果がありません。

ノーコードで誰でも簡単EA開発!MQL言語学習にも使える! | GogoJungle

注目トピックス

検索結果がありません。