*

第13回:コードに汎用性を持たせる~”USDJPY”よりSymbol()~

公開日: : FX自動売買開発 , , , ,

MT4で設定を変更ができるような記述をする

これまでに様々なコードを扱いましたが、
これまでの書き方では毎回設定や数値を変更するたびに
ソースコードを編集しなければなりません。

今回はなるべくコードを編集せずに、
MT4側で設定を変更できるような記述を取り扱います。
※パラメータ化は今回は行いません。

例えば、
通貨ペアを指定する場面で”USDJPY”と指定してしまうと、
“USDJPYmajor”、”USDJPYminor”等のようになっている特殊なMT4ブローカーの場合、
正しく処理されません。

上記のようにSymbol()
(現在MT4で選択されている通貨ペア)を使うことにより、
MT4側の変更がEAに反映されるようになります。

また、
時間足についてもPERIOD_M5などを使うと、
たとえチャートが1時間足になっていたとしてもEAでは5分足で計算してしまいます。

のように「Period()」もしくは「0」と入力することにより汎用性が増します。

どの通貨ペアでも使えるpips単位を作る

pips単位について困ったことはありませんか。

現在多くのMT4業者ではドル円の最小単位が0.001となっています。
一昔前までは0.01だったこともありここに様々な問題が発生しています。

トレードでの話では1pips = 1銭 = 0.01 を表しますが、
MT4の最小桁は0.01か0.001の場合があります。

そのため、どちらの場合にも対応できるよな記述が必要になります。

EA起動時に一回だけ処理されるOnInit()内でpipsという変数を作ります。
下記がその記述ですが今までに扱っていない記述方法がでてくるので「
よくわからないけど、これでpipsという単位が使える」くらいの感覚で十分です。

for文を勉強したらまたここに戻ってきてください。

MarketInfo(Symbol(),MODE_DIGITS)というのは現在セットされている通貨ペアで、
小数第何位まで扱えるかという数値を返します。

2桁、4桁(EURUSD)の業者の場合はそのまま、
3桁、5桁の業者の場合は、10倍することにより、0.01 0.0001がpips単位になります。

ここで作ったpipsを使うことにより、
「ドル円がシグナル発生から5pips上がったら」という条件を

ではなく

と書くことができます。

0.05と書いてしまうとユーロドルの際におかしなことになりますが、
5*pipsと書くことにより、ドル円でもユーロドルでも使えるEAになります。

※3桁、5桁の場合に10倍するという記述だけで済まそうとすると、
CFDに対応できなくなります。

このコメントはWEBに公開されるので、問い合わせ等はメールでお願いします。

関連記事

MQLxPHP サーバを経由するコピートレードツールを作る3

今回はトレードを受信する方のEAを作ります。 トレードデータを送信するEAと比較すると、 ト

記事を読む

【MQL4】外部ソフトなしで稼働するコピートレードツールを作る。その⑧ラスト

意外と長い記事になってしまいましたが、今回でコピーツールの開発は終了です。 最後のソフトだけ欲しい

記事を読む

MQL4とMQL5の違い(更新中)

・OrdersTotalの扱い MQL4でのOrdersTotalはMQL5ではPositions

記事を読む

ティック更新よりも早い頻度で演算させる

EAというやつうは基本的にティックレートを受信する度に一回、演算する仕組みになっています。 U

記事を読む

EAにかける制限のあれこれ

良いEAができると、クレクレ厨がよってきますが、身内の人にこっそりと配布したい場合もあります。 し

記事を読む

 
  • ブログ管理人の横瀬兼元(ペンネーム)です。

    "FX"の自動売買システムに興味がある方はinfo@aiforex.infoにご連絡ください。
    担当の方が対応します

    トレード成績はこのブログに掲載しています。


    株、仮想通貨、それ以外の私に対するご連絡は
    infoあっとfxantenna.com
    まで

ライトコインLTCのアービトラージ取引結果 binance vs poloniex

今回はライトコインのアービトラージ結果です。 最初はレート差1USD

仮想通貨アービトラージに取引所間の送金は必ずしも必要ではない

ここまで話を進めてきていまさら~な感じもするのですが、そもそものところ

BCH(ビットコインキャッシュ)のアービトラージの取引結果(Binance vs Poloniex)

今回はビットコインキャッシュのアービトラージの取引結果です。

ETH(イーサリアム)のアービトラージの取引結果(Binance vs Poloniex)

前回まででアルトコインのアービトラージの作り方や背景について説明しまし

APIを使ったアルトコインの自動アービトラージ

国内の取引所ではAPI取引でビットコイン以外をトレードできないため、ア

→もっと見る

PAGE TOP ↑