基礎から学ぶシステムトレード
シストレブログ人気ランキング  

シストレ徹底攻略シストレマスターへの道ワールド・トレーディング・エッジ基礎から学ぶシステムトレードシストレニュースシストレツールシストレナビTOPへ

 

2012年08月27日(月)

MT5で両建てシステム(6)〜オーダー送信関数 [MQL5]



前回説明したように、MQL5でオーダーの送信をプログラムする際、10行以上も記述しなくてはいけない場合があります。

こういう場合、設定の必要なパラメータのみを関数に渡して、共通のパラメータは関数内に直接記述した方がすっきりします。

ここでは成行オーダーに限定した関数を考えてみます。

関数を呼び出すときに最低限、パラメータとして渡す必要があるものは

symbol 通貨ペア・ティッカーシンボル
volume 売買ロット数
type 注文の種類

でしょうか。成行なので、売りか買いかがわかれば売買価格は決まってきます。何を何ロット売買するかという情報がわかれば十分ということです。

では、この3つをパラメータとした関数を定義してみます。

// 成行オーダー
bool OrderSendMarket(string symbol, ENUM_ORDER_TYPE type, double volume)
{
MqlTradeRequest request={0};
MqlTradeResult result={0};

MqlTick tick;
SymbolInfoTick(symbol, tick);

if(type == ORDER_TYPE_BUY)
{
request.magic = MAGIC_B;
request.price = tick.ask;
}
else if(type == ORDER_TYPE_SELL)
{
request.magic = MAGIC_S;
request.price = tick.bid;
}
else return(false);

request.action = TRADE_ACTION_DEAL;
request.symbol = symbol;
request.volume = volume;
request.deviation = Slippage;
request.type = type;
request.type_filling = ORDER_FILLING_FOK;

OrderSend(request,result);
return(true);
}

この関数中で、MAGIC_B、MAGIC_S、Slippageが定義されていませんが、これらは予め

input ulong MAGIC_B = 1000; // 買いポジションのマジックナンバー
input ulong MAGIC_S = 1001; // 売りポジションのマジックナンバー
input ulong Slippage = 20; // スリッページ

のように宣言しておきます。

関数の中身を簡単に説明しておきます。

最初に request,resultに{0}という値を代入しているところは、それぞれの変数のメンバーをすべて0で初期化するという意味です。こうすることで、slやtpなど関数中で指定しないメンバーも0を指定したことになります。

SymbolInfoTick()関数は、MqlTick型の構造体にBidやAskなどの現在の売買価格を返す関数です。MQL5ではBid,Askが予約変数になっていないので、このように別途求める必要があります。

あとはif文のところで、売買のタイプが買い(ORDER_TYPE_BUY)の場合か、売り(ORDER_TYPE_SELL)の場合かで場合分けします。買いの場合には、価格に買値(tick.ask)、マジックナンバーに買いポジション用のMAGIC_Bを代入します。売りの場合には、価格に売値(tick.bid)、マジックナンバーに売りポジション用のMAGIC_Sを代入します。

関数の使い方としては、例えば、プログラムを挿入するチャート上の通貨ペアを0.1ロット買う場合、

OrderSendMarket(_Symbol, ORDER_TYPE_BUY, 0.1);

と記述します。また0.1ロット売る場合、

OrderSendMarket(_Symbol, ORDER_TYPE_SELL, 0.1);

と記述するだけです。

これで、オーダー送信の際に、買いと売りとで異なるマジックナンバー付加することができました。

次回は仮想ポジションを管理するためのプログラムについて説明します。


>>“基礎から学ぶシステムトレード”全記事バックナンバーはこちらから




Posted at 15時36分


ページのトップへ ページのトップへ

Sponsor AD

2012/8

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

プロフィール

豊嶋久道

2003年よりFX取引を始め、システムトレードの道へ。最近ではFXオプション取引も含めたトレーディングシステムの研究を行っている。システムトレードを基礎から正しく理解するための情報を発信する予定。

PHOTO

相場はランダムウォーク?

相場はランダムウォーク?

カテゴリーリスト

最近の記事

検索


当サイトコメントについて

当コメントは情報提供のみを目的として作成されたものであり、投資に関してはご自身でご判断くださいますようお願い致します。また、当資料は著作物であり著作権法により保護されております。無断で全文または一部を転載することはできません。

RSS1.0

[Login]


powered by a-blog
Copyright (C) 2008 PhiConcept,Inc. All rights reserved.