0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【mt4/mql4】スプレッド(askとbidの差)が一定値以下のみ動かす

Posted at

はじめに

システムトレードプログラマのmt4/mql4のメモノートです。
初心者向けの簡単なトピックから公開していきます。
.noteでEAそのものも公開していますので良ければそちらも見てください。

目次

  1. 処理内容
  2. mql4ソースコード

処理内容

スプレッド開いていてる場合には~~~したくない!といったニーズがあると思います。
スプレッド開いてる時にオーダーしたくない、決済したくない、ログ出力したくない、、、などなど
この場合のコード記述の仕方を説明します。

そもそもなんですが、取引会社によって多少差はありますが
スプレッドって基本的に可変です。
普段は0.1pipsしか離れていなくても、オーストラリア市場とか
FOMC発表直前とかに開いたりします。
この、スプレッドが開くタイミングは特殊な値動きなので
特定の動作(エントリーとか)をしたくない!ってのにつながるんですね。

mql4ソースコード

こちらが関数側のソースです。呼び出し側の前に記述されている必要があります。
グローバル変数にスプレッドの固定数値をpipsで設定します。
ソースのどこのイベント内でも無い一番上に記述してください。この場合、5pipsに設定しています。

test.mq4
//+------------------------------------------------------------------+
//グローバル領域に任意のスプレッドpips値を設定

int maxspread=5;

//+------------------------------------------------------------------+

こちらは呼び出し側の例
呼び出したいタイミングに合わせてOnTick()、OnInit()とかOnTimer()の中で記述してみてください。何らかの条件(if文とかで特定時間になったらとか)内に記述するのが一般的でしょう。

test.mq4
if( ((Ask-Bid)/AdjustPoint(Symbol())) < maxspread )
{

//spredが一定値以下の時に動かしたい挙動をここに記述

}

皆様の手助けになりますように。
間違いなどあればご指摘いただけると助かります。
以上です

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?