分割決済の方法

MT4には分割決済の仕組みはないが、代替手段はある

ブログを読んでいただいた方から分割決済の方法を質問されました。

パートナーのDo.さんからも分割決済の機能を搭載してほしいと言われていたので、ニーズがあると思って記事にすることにしました。

1ポジションのロットを分割して決済する機能は、MT4には残念ながらありません。

ただ、同等のことなら実現可能です。

まず、2つの異なるマジックナンバー(仮に100と200)を用意します。

次に、その2つのマジックナンバーで仕掛け注文をそれぞれ同じタイミングで行います。つまり、2個のポジションを同時に持たせます。

最後に、Aという手仕舞い条件が成立したらマジックナンバー100のポジションを手仕舞いし、Bという手仕舞い条件が成立したらマジックナンバー200のポジションを手仕舞いします。

これで事実上の分割決済が完成です。

サンプルEA

イメージを掴んでいただくためにサンプルEAを載せておきます。

ただ、仕掛け条件、手仕舞い条件ともにチョー適当なので、実際に活用される際には必ず変更するようお願いします。

//+------------------------------------------------------------------+
//|                                                       Sample.mq4 |
//|                                     Copyright (c) 2018, りゅーき |
//|                                           https://autofx100.com/ |
//+------------------------------------------------------------------+
#property copyright "Copyright (c) 2018, りゅーき"
#property link      "https://autofx100.com/"
#property version   "1.0"
#property strict

//+------------------------------------------------------------------+
//| ライブラリ                                                       |
//+------------------------------------------------------------------+
#include <stderror.mqh>
#include <stdlib.mqh>
#include <WinUser32.mqh>
#include <Original/Application.mqh>
#include <Original/Basic.mqh>
#include <Original/DateAndTime.mqh>
#include <Original/LotSizing.mqh>
#include <Original/OrderHandle.mqh>
#include <Original/OrderReliable.mqh>

//+------------------------------------------------------------------+
//| 定数                                                             |
//+------------------------------------------------------------------+
//#define

//+------------------------------------------------------------------+
//| EAパラメータ定義                                                 |
//+------------------------------------------------------------------+
extern int MagicNumberA = 100; // マジックナンバーA
extern int MagicNumberB = 200; // マジックナンバーB
extern int SlippagePips = 3;   // 許容スリッページ(pips)

//+------------------------------------------------------------------+
//| グローバル変数                                                   |
//+------------------------------------------------------------------+
double gPipsPoint     = 0.0;
int    gSlippage      = 0;
color  gArrowColor[6] = {Blue, Red, Blue, Red, Blue, Red}; // BUY系:青、SELL系:赤

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
  // -----------------------------------------------------------------
  // 初期設定
  // -----------------------------------------------------------------
  gPipsPoint = currencyUnitPerPips(Symbol());
  gSlippage  = getSlippage(Symbol(), SlippagePips);

  return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
  // マジックナンバーAの手仕舞い条件:分割決済
  if(Ask >= 110.0){
    allOrderClose(MagicNumberA, gSlippage, clrYellow);
  }

  // マジックナンバーBの手仕舞い条件:分割決済
  if(Ask >= 105.0){
    allOrderClose(MagicNumberB, gSlippage, clrYellow);
  }

  // 仕掛け条件
  if(Ask <= 100.0){
    // マジックナンバーの異なる2つの仕掛け注文を同時に行う
    int ticketA = orderSendReliable(Symbol(), OP_BUY, 0.01, Ask, gSlippage, 0.0, 0.0, "", MagicNumberA, 0, gArrowColor[OP_BUY]);
    int ticketB = orderSendReliable(Symbol(), OP_BUY, 0.01, Ask, gSlippage, 0.0, 0.0, "", MagicNumberB, 0, gArrowColor[OP_BUY]);
  }
}

MT4の無料プログラミング講座

LINE公式アカウントを友だち追加して、MT4のプログラミング講座を無料で受けちゃおう!

超豪華プレゼントも盛りだくさん♪

MT4プログラミングを習得すると、オリジナルEA運用、作成代行、商品販売等、複数の収入源を手に入れられるよ。副業に最適だね!

↓↓↓ 詳細はこちら ↓↓↓

アイキャッチ

>

エターナル・パートナーPRO ~MT4裁量トレード支援ツール~ 「MT4は裁量トレーダーに優しくない」そう思ったことありませんか?もっと快適にトレードするための強力な売買ツールが必要だと考え、開発したのが「エターナル・パートナーPRO」です。元々は自分自身のために開発したツールですので、手抜き無しのガチものです。既に200名近い方に手に取っていただき、喜びの声が続々と届いております。ぜひご覧ください!

CTR IMG