MT4やFX用語に関するリファレンスです。
本ページ内であれば「Ctrl + f」で検索、サイト内の検索であれば下の検索フォームでの検索をおすすめします。
- ASCII (ANSI)
- CPU
- DD と NDD
- EA(Expert Advisor)
- include file
- Linux
- MetaEditor
- MQL言語
- MT4 / MT5
- Pips
- Point(取引単位)
- RGB
- SSD
- Tick
- Ubuntu
- Unicode
- VPS
- Wi-Fi
- 4G・5G
- イフダン注文
- インジケータ
- エンコード と デコード
- オーバーボート/オーバーセル
- 追証 と ゼロカットシステム
- オペランド
- 基軸通貨と決済通貨
- キャスト
- クレジット
- グローバル変数
- コピートレード
- コンテキスト
- コンパイル
- サマータイム
- シグナル
- 順張りと逆張り
- 証拠金
- 進数
- シンボルコード
- スキャルピング
- スクリプト(Script)
- スタック
- ストップレベル
- スプレッド
- スリッページ
- スレッド
- スワップ
- チケット番号(注文番号)
- 通信速度
- テザリング
- デバッグ
- トラリピ
- 取引最小値
- トレール
- ドローダウン
- ニーモニック
- バイナリファイル (BINファイル)
- ハンドル
- ファイルポインタ
- フィボナッチ
- 浮動小数点
- ポジション と オーダー
- マクロ
- ライブラリ
- ラジアン
- 乱数
- リテラル文字
- 両建て
- レジスタンス・サポートライン
- レバレッジ
- ローソク足
- ロスカット
- ロスカット狩り
ASCII (ANSI)
ASCII(American Standard Code for Information Interchange)は、1963年に ANSI(American National Standards Institute [米国国家規格協会]) が制定した 7ビット文字の集合体(シンボルコード)です。33の制御文字と 95の半角英数文字を定義しています。
文字で表示する時は、リテラル文字としてシングルクォーテーション(‘)で文字を囲むことで使用できます。この時のデータ型は整数型になります。
10進数で表示する時は、0行 0列が 0、0行 1列が 1、0行 2列が 2、…、1行 0列が 16 というように上の行から右に計数した整数になります。
16進数で表示する時は、0~9と A~Fの英数字を使うことになります。英字は小文字でも問題ありません。上の表では、行番号と列番号の組み合わせで 16進数にすることができます。
文字と値の対応
(例)
A (大文字) = 65 (10進数) = 41 (16進数)
z (小文字) = 122 (10進数) = 7A (16進数)
ANSIシンボルコードを16進数で表示する時は
\x の後ろにANSIコード表に対応する行と列の番号を記載してください。
\x①②
①:行の番号 ②:列の番号
(例)
\x31 = 1, \x32 = 2, \x33 = 3
\x41 = A, \x42 = B, \x43 = C
\x61 = a, \x62 = b, \x63 = c
文字と10進数コード、16進数コードの相互変換については次のコードで確認ができます。
// 文字と10進数、16進数の相互変換
#property strict
void OnInit() {
// リテラル文字を10進数コードと16進数コードに変換
ushort str = 'A'; // ①1文字だけ設定★★★
ushort c = StringGetCharacter(ShortToString(str), 0);
Print("文字「", str, "」の 10進数コード:", c, " 16進数コード:", StringFormat("%.X", c));
// 10進数コードを文字と16進数コードに変換
c = 65; // ②10進数の正数を設定★★★
Print("10進数コード「", c, "」の 文字:", ShortToString(c), " 16進数コード:", StringFormat("%.X", c));
// 16進数コードを文字と10進数コードに変換
c = '\x41'; // ③16進数を'\x〇〇'で設定★★★
Print("16進数コード「", StringFormat("%.X", c), "」の 文字:", ShortToString(c), " 10進数コード:", StringFormat("%.u", c));
}
CPU
CPU (Central Processing Unit)は、日本語で「中央処理装置」と言います。パソコンの頭脳とも呼ばれており、パソコンのすべての動作を制御しています。CPUは、数十億個のトランジスタで構成されており、演算や制御などの処理を行っています。
CPUの性能は、CPUの種類やクロック周波数、コア数によって決まります。クロック周波数は、CPUが1秒間に処理できる命令の数を表し、コア数は、CPUに搭載されている処理ユニットの数を表しています。同じ種類のCPUであれば、クロック周波数が高く、コア数が多いCPUほど、処理能力が高くなります。
CPUの処理能力は、パソコンの性能を大きく左右します。CPUの処理能力が高いと、パソコンの動作が速くなり、処理が軽くなります。
CPUの種類の処理能力ランキング※
Intel社のCPU
1 | Core i9 | 超ハイエンド |
2 | Core i7 | ハイエンド |
3 | Core i5 | ミドルレンジ |
4 | Core i3 | エントリー |
5 | Pentium | ベーシック |
6 | Celelon | ローエンド |
7 | Atom | 超低消費電力 |
AMD社のCPU
1 | Ryzen 9 | 超ハイエンド |
2 | Ryzen 7 | ハイエンド |
3 | Ryzen 5 | ミドルレンジ |
4 | Ryzen 3 | エントリー |
5 | A12 | ローハイエンド |
6 | A10 | ローミドルレンジ |
7 | A8 | ローエントリー |
8 | A6 | ローエンド |
9 | Athlon | 超低消費電力 |
※このランキングは、各CPUの一般的な性能を示すものであり、具体的なモデル(世代、発売時期)や使用目的によって変動します。詳しくはこちらから確認してください。
DD と NDD
DD (Dealing Desk) と NDD (No Dealing Desk) は FXの取引方式のことです。
DD方式
トレーダーと為替市場の間にFX会社が入って取引を行なう方法です。
メリットは、スプレッドが狭いです。スプレッドを原則固定して狭いスプレッドを提供しているFX会社もあります。
デメリットは、取引にFX会社が介入するため取引価格が不透明であると言えます。このためトレーダーに不利なスリッページの発生などが考えられます。またスキャルピングを禁止する傾向にあります。
NDD方式
トレーダーの注文を為替市場で直性取引させる方法です。
メリットは、為替市場で直接取引を行なうので透明性が高く素早い取引をすることができます。またスキャルピングが可能である傾向にあります。
デメリットは、DD方式と比べてスプレッドが広くなりやすいです。またスプレッドは固定ではなく変動制になります。変動制は、ある一定幅でスプレッドの広さが常時変化します。
EA(Expert Advisor)
EAとは「Expert Advisor」の略で、主にMT4で開発された自動売買システムのことを言います。この EAをネットなどを通じて自分の MT4/MT5にダウンロードすると、他人が開発した自動売買プログラムを使って自動取引を行なうことができます。また、MQL言語を使って自分自身で自動売買システムを作ることもできます。
MT4/MT5は、自由度の高さと自動売買システムの EAを使えることから全世界のFX取引ソフトシェアでNo1になっています。
作成したEAは、使用しているMT4のメニューから、ファイル → データフォルダ で対象フォルダが開くので、そのフォルダ中の MQL4 → Experts フォルダの中に保存されます。また、外部から入手した EAはこのフォルダの中に入れてMT4を再起動することで使えるようになります。
include file
includeファイルは、カスタムプログラムで最も使用頻度が高いブロック型のソースコードです。このインクルードファイルはコンパイル段階で EA、スクリプト、カスタムインジケータ、ライブラリのソースコードに含めることができます。ライブラリ関数は呼び出す際に追加の負荷が発生するので、ライブラリを使用するよりもインクルードファイルを使用する方が良いです。
インクルードファイルは、ソースファイルと同じフォルダに保存できます。この場合、二重引用符で囲まれた#includeディレクティブが使用されます。
MT4では、他から入手したものを使用したり、MQL4を使って作成することができます。includeファイルの使用例はこちらを参考にしてください。
作成したインクルードファイルは、使用しているMT4のメニューから、ファイル → データフォルダ で対象フォルダが開くので、そのフォルダ中の MQL4 → Include フォルダの中に保存されます。また、外部から入手したインクルードファイルはこのフォルダの中に入れることで使えるようになります。
Linux
Linux とは、Linux OS のことで、コンピューターの基本的な動作を制御するソフトウェアのことです。Windows や macOS などの OS と同じように、Linux OS もコンピューターの起動、ファイルシステムの管理、アプリケーションの実行などを行います。
Linux OS は、オープンソースソフトウェアとして開発されています。オープンソースソフトウェアとは、ソースコードが公開されていて、誰でも自由に利用や改変ができるソフトウェアです。そのため、Linux OS は、無料で利用することができます。
Linux OS は、コミュニティによって継続的に開発されています。
MetaEditor
MetaEditorとは、メタクォーツ社が開発したMT4/MT5上で動くインジケータやEAを作成するためのツールになります。プログラミング言語はMQL言語になります。
MQL言語
MQL言語は、MT4/MT5に備わっている取引戦略をプログラミングするための言語です。「MQL」は「MetaQuotes Language」の略で、MetaQuotes Software 社によって開発された言語になります。 MQL言語は、MT4/MT5で取引を自動化し、独自の取引戦略を組み込んだ EA(Expert Advisor)を作ることができます。また、同様に独自のテクニカルインジケータ(カスタムインジケータ)、スクリプト、及びライブラリが作成できます。
MT4で使われる言語がMQL4言語、MT5で使われる言語がMQL5言語になります。同じソフトですが、バージョンが違うため相互に対応していないのでそれぞれの言語を使ってEAを作る必要があります。
この言語はC言語に類似した特徴を持っています。
MT4 / MT5
MT4/MT5は、MetaQuotes社(ロシア)が開発したFX取引ソフトのことです。多くのFX会社で作用されており、全世界で最も多く使われているFX取引ソフトになります。
MT4は、MetaTrader4の略で、MT4はエムティフォー又はメタフォーと読まれています。MT5も MT4同様 MetaTrader5のことです。MT4の後継がMT5になります。
発注、チャート、プログラミング、検証、最適化など多機能・高機能であること、動作が軽いので低スペックのPCでも取り扱うことができます。また、スマホ用のアプリも用意されています。
そして本ソフトで何よりも秀逸なのが自動取引システム(EA)が使えるということです。このお陰で通常、人のスピードでは対応できない取引や仕事中、睡眠中でもMT4/MT5が相場を見張ってトレードをしてくれます。
自動取引システム(EA)は販売サイトで購入したり、プログラミング(MQL言語)に自信がある人はMetaEditorを使って自分で作ることもできます。
MT5の方が新しいソフトなのですが、もし、どちらも使ったことがないのであればMT4を使った方が良いです。
理由は、MT5を使っている人が少ないためMT4で使える自動取引システム(EA)の方が圧倒的に多いからです。MT4とMT5の自動取引システム(EA)はプログラムの互換性がないため、それぞれのプラットフォームで自動取引システム(EA)を用意する必要があります。
FX取引ソフトは他にもありますが、世界中で使われていること、多機能・高機能で自分自身でカスタマイズできること、自動取引が可能なのはこのMT4/MT5だけですので、FX取引操作を覚えるのであれば、このMT4のマスターをおすすめします。
Pips
「Pips」は「Percentage in point」の略で、通貨の最小単位である1%を表します。
FXでは、決済通貨の最小単位の1%を表すことになります。
例えば、日本・円の場合、円の最小単位である1円の1%である0.01円が1Pipsになります。
アメリカ・ドルの場合は、ドルの最小単位である1セントの1%である0.01セントが1Pipsになります。つまり、0.0001ドルが1Pipsになります。
FXで「Pips」が使われる理由は、決済通貨が円やドル、ユーロ、様々な通貨単位がある中、%単位であるPipsを使うことで通貨変動の大きさを一律に表すことができるようになるからです。
Point(取引単位)
「Point」は、取引する通貨ペアの最小取引単位を表します。最小取引単位とは、FX会社が表示している各通貨ペアの小数点以下の表示になります。
小数点以下が2桁又は4桁の通貨ペアでは、
1Pips = 1Point となり
小数点以下が3桁又は5桁の通貨ペアでは、
1Pips = 10Point になります。
RGB
RGBは「Red (赤)」「Green (緑)」「Blue (青)」の3つの色を表す頭文字を取って名付けられています。これは、光の3原色※と言われるもので、この3色を混ぜ合わせることで人が認識できるほぼすべての色を表現することができます。
RGBは、色を数値で表すための便利な方法と言えます。
具体的には、テレビやスマートフォン、パソコンのモニターなど、光を使って色を表示するデバイスでは、赤・緑・青の3つの色の光を異なる強度で放出することで、さまざまな色を作り出しています。
RGBの値は、10進数で表示する場合、それぞれの色の強度を 0~255の範囲で示します。
「R:255, G:0, B:0」は純粋な赤
「R:0, G:255, B:0」は純粋な緑
「R:0, G:0, B:255」は純粋な青
16進数で表示する場合は、それぞれの色の強度を 00~FFの範囲で示します。
「R:FF, G:00, B:00」は純粋な赤
「R:00, G:FF, B:00」は純粋な緑
「R:00, G:00, B:FF」は純粋な青
これらの基本色を組み合わせることで、たとえば「R:255, G:255, B:0」または「R:FF, G:FF, B:00」は赤と緑の組み合わせとなり、黄色が表示されます。
RGBは3つの色の強度を調整して、さまざまな色を作り出す方法のことです。そして、この RGBの組み合わせによって、ディスプレイ上で豊富な色のバリエーション(16,777,216種類)を再現することができます。
※ 色の3原色は「Cyan (青緑)」「Magenta (赤紫)」「Yellow (黄)」なので、光の3原色と間違わないように注意してください。
SSD
SSDとは、Solid State Drive の略です。従来のHDD(ハードディスクドライブ)に比べて、読み取りや書き込みが速く、静音性、省電力で優れています。また、振動や衝撃に強く、故障のリスクが低いため、データの保存に適しています。
HDDは、磁気ディスクにデータを保存しますが、SSDは、フラッシュメモリにデータを保存しています。フラッシュメモリは、電気でデータを記憶する半導体メモリです。
SSDは、HDDに比べて価格が高いですが性能が高く、省電力であることから、ノートパソコンやタブレットなどのバッテリー駆動時間の延長にも役立ちます。
Tick
Tickとは、FX市場で通貨価格、取引に変動が起きた時に配信される「通貨ペアの変動した価格」のことを言います。市場が活況な通貨ペアでは1分間に100回以上通貨ペアの変動(Tick)があります。
Ubuntu
Ubuntu は Linux OS の種類の一つで、その中でも初心者が使いやすいよう操作方法が Windows OS に近い形で設計されています。インストールや操作方法もわかりやすく、日本語にも対応しています。また、Ubuntu は、安定性とセキュリティが高いことでも知られています。
Unicode
世界中の言語の文字が集められた文字の集合体(シンボルコード)になります。これだけであらゆる言語の文字を表すことができます。10進数 または 16進数で表示します。
(参考) Unicode一覧 (16進数)、Unicode一覧 (10進数)
文字で表示する時は、リテラル文字としてシングルクォーテーション(‘)で文字を囲むことで使用できます。この時のデータ型は整数型になります。
10進数で表示する時は、上記リンク先の一覧では、0000行 0列が 0、0000行 1列が 1、0000行 2列が 2、…、0010行 0列が 16 というように上の行から右に計数した整数になります。
16進数で表示する時は、0~9と A~Fの英数字を使うことになります。英字は小文字でも問題ありません。上記リンク先の一覧では、行番号と列番号の組み合わせで 16進数にすることができます。
文字と値の対応
(例)
A (大文字) = 65 (10進数) = 0041 (16進数)
z (小文字) = 122 (10進数) = 007A (16進数)
Unicodeシンボルコードを16進数で表示する時は
\x の後ろにUnicodeコード表に対応する行と列の番号を記載してください。
\x①②
①:行の番号 ②:列の番号
(例)
\x31 = 1, \x32 = 2, \x33 = 3
\x41 = A, \x42 = B, \x43 = C
\x61 = a, \x62 = b, \x63 = c
文字と10進数コード、16進数コードの相互変換については次のコードで確認ができます。
// 文字と10進数、16進数の相互変換
#property strict
void OnInit() {
// リテラル文字を10進数コードと16進数コードに変換
ushort str = 'A'; // ①1文字だけ設定★★★
ushort c = StringGetCharacter(ShortToString(str), 0);
Print("文字「", str, "」の 10進数コード:", c, " 16進数コード:", StringFormat("%.X", c));
// 10進数コードを文字と16進数コードに変換
c = 65; // ②10進数の正数を設定★★★
Print("10進数コード「", c, "」の 文字:", ShortToString(c), " 16進数コード:", StringFormat("%.X", c));
// 16進数コードを文字と10進数コードに変換
c = '\x41'; // ③16進数を'\x〇〇'で設定★★★
Print("16進数コード「", StringFormat("%.X", c), "」の 文字:", ShortToString(c), " 10進数コード:", StringFormat("%.u", c));
}
VPS
VPSとは、Virtual Private Server の略で、仮想専用サーバーのことを指します。VPSは、1台の物理サーバーの中に、複数の仮想サーバーを作ることができる技術です。FXの自動売買では、VPSを利用することで、ネットワーク上に個人専用のパソコンを持つことができ、MT4などの自動取引ソフトを使うことで24時間365日、自動で取引をすることができます。
VPSを利用するには、VPS業者からVPSをレンタルする必要があります。VPS業者は、インターネット上にたくさん存在しており、VPSを選ぶ際には、スペックや料金、サポート体制などを比較して選ぶようにしましょう。
VPSを使わず、自分のパソコンでMT4を動かす場合、停電や通信障害などがあった時、取引が中断される可能性があります。
VPSの使用は、業者が常時VPSを管理しているので、それらのトラブルを大幅に低減することができます。
Wi-Fi
Wi-Fi (Wireless Fidelit) とは、無線LANの種類のひとつです。無線なのでケーブル無しで電波を使ってインターネットや他の機器と繋げることができます。
Wi-Fiの電波が届く範囲は、設置するWi-Fi機器、設置場所、環境などによって異なります。一般的に家の中、施設などで使われている無線はWi-Fiです。
Wi-Fiはどこの施設のWi-Fiか分かるように、使用するWi-Fi名に施設の名称が含まれていることが一般的です。これらを総称してフリーWi-Fiと呼ばれていますが、フリーWi-Fiで提供者が不明のものはデータが盗まれるなどセキュリティ的なリスクもありますので、知らない名称のフリーWi-Fiには注意してください。
また、偽名を使ったフリーWi-Fiもあります。施設の中に居て、その施設に合わない名称のフリーWi-Fi名があれば偽名の可能性がありますので接続には注意してください。
4G・5G
4G (LTE=Long Term Evolution) と 5G (5th Generation) は、携帯電話の通信規格です。5Gは4Gの次世代通信規格で上位の規格となります。
4G と 5Gの違いは次のようになります。
項目 | 4G | 5G |
---|---|---|
最大通信速度 | 約1Gbps | 約20Gbps |
カバー範囲 | 広い | 比較的狭い |
カバー範囲は圧倒的に4Gの方が広いので地方では4Gが主になりますが、都市部から徐々に5Gが広がりつつあります。
5Gを使うにはカバー範囲に居ることと、5Gを使える機種が必要になります。
イフダン注文
イフダン注文(IFD注文)は、新規注文とその注文の決済注文を同時に行なう注文方法のことです。例えば、現在110円/米ドルの時、「100円で指値注文、注文が成立したら120円で決済注文する」という注文方法になります。
新規注文から決済注文まで自動で行ってくれるので、注文後は取引画面を開いていなくても取引を完了させてくれます。
インジケータ
FX取引に使われるインジケータとは、為替レートのデータを様々な計算で加工して、買い時、売り時の判定に使うものになります。
有名なインジケータとしては、2つの移動平均線を用いた「ゴールデンクロス」というものがあります。
これは短期線と長期線の2つの移動平均線を用いて、短期線が長期線を下から上に抜けると、買いサインと判断され、これがゴールデンクロスと呼ばれています。
インジケータは大きく3つに分類されます。
①トレンド系:相場の方向性や強弱を判断するのに使われます。
移動平均線、一目均衡表、アリゲーター、エンベロープ、フラクタル、モメンタム、SAR、標準偏差 等
②オシレータ系:相場の過熱や転換を判断するのに使われます。
RSI、ストキャスティク、AC、AO、ATR、ベアーズパワー、ブルズパワー、デマーカー、Force Index、ゲーターオシレータ、OsMA、RVI、WPR 等
③ボリューム系:取引量や売買意欲を判断するのに使われます。通常①②と組み合わせて使われます。
BWMFI、累積・分散、OBA 等
インジケータの使い方によっては 2つの特性を持つものもあります。
④トレンド・オシレータ系
ADX、ボリンジャーバンド、CCI、MACD 等
⑤オシレータ・ボリューム系
MFI 等
通常は、これらを組み合わせて売買判断の指標に使われます。
自動取引とは違いますが、自動取引にこれらの指標を取り入れて売買判断させるEAもあります。
カスタムインジケータ
カスタムインジケータは、クライアント端末に既に組み込まれているものに加えて、MQL4で独自に作成したテクニカルインジケータです。組み込みインジケータと同様、そのままでは自動的に取引することはできませんが、インジケータから出力される値を使ってEAを組めば自動取引は可能です。こちらを参考にしてください。
作成したカスタムインジケータは、使用しているMT4のメニューから、ファイル → データフォルダ で対象フォルダが開くので、そのフォルダ中の MQL4 → Indicators フォルダの中に保存されます。また、外部から入手したカスタムインジケータはこのフォルダの中に入れることで使えるようになります。
インジケータを MT4にセット
インジケータを MT4に表示させるには、次のようにナビゲーターから表示したいインジケータを選んでチャート上へドラッグ&ドロップしてください。
必要なパラメーター値をセットして「OK」ボタンを押してください。
選択したインジケータが次のように表示されます。
MT4に用意されているインジケータ
MT4(Version:4.00 build 1355 16 Mar 2022)には計51個(トレンド 7個、オシレーター 13個、ボリューム 4個、ビル・ウィリアムス 6個、Examples 1個、その他 20個)のインジケータが用意されています。
エンコード と デコード
エンコード(encode)は、データを決められた方法で変換することです。「暗号化」「符号化」「記号化」とも言われます。
これに対してエンコードされたデータを復元することをデコード(decode)と言います。
オーバーボート/オーバーセル
オーバーボートとは、価格が上昇しすぎている状態を指します。
オーバーセルは価格が下落しすぎている状態を指します。
どちらの状態も、価格が過剰に反応しているということを示しています。これらの状態は、一時的な反発や調整が起こる可能性があるため、トレーダーにとって重要なポイントになります。
追証 と ゼロカットシステム
通常、FX取引を行う時は証拠金をFX会社に預けて取引を行いますが、この証拠金が取引損失等により一定以上減ってしまうとFX会社から証拠金の追加入金を求められます。 これが追証です。
FX会社には証拠維持金率から計算されるロスカット(証拠金不足による強制決済)が必ず設定されており、通常であれば入金したお金以上支払う必要はないのですが、相場の急な変動によりロスカットができず損失が膨らんだ場合、足りない分のお金は個人が支払わなければなりません。支払う金額もその時の変動によって決まってくるのでレバレッジを大きくしすぎていると追証だけで入金額と同等以上求められることもあり得ます。これが追証の怖いところです。
100万円入金していた口座があったとして、追証が発生すると100万円も無くなり、更に追加でお金も取られてしまいます。
そして、この追証が発生しない取引をゼロカットシステムと言います。もし相場で急な変動が発生してロスカットになったとしてもゼロカットシステムにより口座に入れているお金以上無くなることはありません。この時に発生する負担は全てFX会社側が負うことになっています。
このゼロカットシステムは日本の国内FX会社では規制のため使うことはできません。一部の海外FX会社で採用されているシステムになっています。
オペランド
オペランドとは、数式を構成する要素の内、演算の対象になる値や変数、定数などのことを言います。プログラミングの分野では、これらに加えてプログラム中の個々の命令、処理の対象になるデータやその所在情報なども含まれます。
基軸通貨と決済通貨
MT4の「気配値表示」にある通貨ペア名は、国際基準に基づいた通貨記号が使われています。この通貨コードはローマ字 3文字で各国を表します。
例えば「USDJPY」の場合、前半の「USD」がアメリカ、後半の「JPY」が日本を指します。ですので、これはアメリカ・ドルと日本・円の通貨ペアを表すことになります。
「EURGBP」では、ヨーロッパ・ユーロとイギリス・ポンドの通貨ペアを表しています。
この時、前半部分が「基軸通貨」、後半部分が「決済通貨」になります。FX取引では基軸通貨を決済通貨で取引をすることになります。
日本の場合、ほとんどが円で取引をするようになりますが「EURGBP」のようにポンドを持っていなくても円でポンドを取引してユーロを取引することになるので円のままで取引が可能です。
通貨ペアとして 2つの通貨を並べる順番は慣例で決まっています。
EUR → GBP → AUD → NZD → USD → CAD → CHF → JPY の順番になっています。
この順に左側の通貨(基軸通貨)と右側の通貨(決済通貨)が決まります。
主要な国の通貨コード
各国の通貨コードはISO4217で定められています。ドルなどは数ヵ国で同じ単位が使われているため単位の前に国名を付けて区別することがあります。表中の国名のカッコ内は単位の前に付ける国名の略称です。
通貨コード (ISO) | 通貨名 (国名・単位) |
---|---|
AUD | オーストラリア(豪)・ドル |
CAD | カナダ(加)・ドル |
CHF | スイス・フラン |
CNH | 中国・元 |
DKK | デンマーク・クローネ |
EUR | ユーロ |
GBP | イギリス(英)・ポンド |
HKD | 香港(HK)・ドル |
HUF | ハンガリー・フォリント |
JPY | 日本・円 |
MXN | メキシコ・ペソ |
NOK | ノルウェー・クローネ |
NZD | ニュージーランド(NZ)・ドル |
PLN | ポーランド・ズロチ |
SEK | スウェーデン・クローナ |
SGD | シンガポール(SG)・ドル |
TRY | トルコ・リラ |
USD | アメリカ(米)・ドル |
ZAR | 南アフリカ・ランド |
キャスト
プログラミングにおいて、ある変数のデータ型を別のデータ型に変換する型変換のことを言います。
例えば、MQL4言語では、以下のコードのように、変数iを整数型(int型)から「 (string)i」で文字列型(string型)に変換させることができます。
// 例1 型変換(キャスト)の例
#property strict
void OnInit() {
int i=10; //変数
MessageBox("iの値:" + (string)i, "キャスト確認"); //iの値:10
}
これは、前方の文字列「iの値:」が文字列のため、これと結合させるには同じ文字列である必要があります。しかし、今回の場合は、キャストせずint型のままでも結果は表示されます。但し、コンパイルの際に「warnings(警告)」が出ますので、これを出さないようにするためにも正確にキャストをするようにしましょう。
また、次のように「double型」から「int型」に変換する時は、小数点以下の値が切り捨てられますのでキャストをする際は気をつけてください。
// 例2 型変換(キャスト)の例
#property strict
void OnInit() {
double i=12.6789; //変数
Print("iの値:", (int)i); //iの値:12
}
数値型を別の数値型に変換する必要性はよく発生します。全ての数値型の変換が可能なわけではありません。許可されたキャストのスキームは次の通りです。
黒い矢印は、キャストがほとんど情報を失うことなく行われることを示します。char型の代わりにbool 型 (共に 1 バイト)、int 型の代わりに color型 (4 バイト)、long型の代わりに datetime型 (8 バイト)も使用できます。4 本の赤色の矢印は、キャストで精度の損失が発生する可能性があることを示します。例えば、123,456,789 (int型) に等しい整数の桁数は floatで表すことができる桁数よりも大きいです。
// 例3 型変換(キャスト)の例
#property strict
void OnInit() {
int n = 123456789;
float f = n; // f の中身は 1.234567892E8 に等しい
Print("n = ",n," f = ",f);
// 結果 n = 123456789 f = 123456792.0
}
クレジット
FXのクレジットとは、外貨を取引する際にFX会社が提供する金融サービスのことです。実際の残高資金と同様に外貨の取引ができます。但し、提供していないFX会社もあります。また、クレジットに関しては現金として引き出すことはできません。
グローバル変数
MQL4では、「グローバル変数」という言葉が指すものには2つの異なるタイプがあります。1つはクライアントターミナルによるグローバル変数、もう1つはプログラム内で宣言するグローバル変数です。これらは名前は同じですが、使い方や用途が大きく異なります。
クライアントターミナルによるグローバル変数
このタイプのグローバル変数は、MT4のクライアントターミナル自体が管理する変数です。これらの変数は、MT4ターミナル全体で共通の値を保持し、複数のEA、スクリプト、インジケータからアクセスできます。
詳しくはこちらを参考にしてください。
特徴
- MT4ターミナルが閉じられるまで値を保持する。
- どのプログラムからでも読み取りや書き込みが可能。
- グローバル変数の関数を使って値を設定・取得することができます。
プログラム内で宣言するグローバル変数
このタイプのグローバル変数は、MQL4コード内で宣言され、1つのプログラム内全体で使える変数です。通常、プログラムの冒頭で宣言され、プログラムが終了するまで値を保持します。
詳しくはこちらを参考にしてください。
特徴
- 1つのプログラム内でのみ有効 (他のEAやスクリプトからはアクセス不可)。
- プログラムが終了すると値は失われる。
- 宣言は、プログラム内の関数の外で行います。
違いのまとめ
クライアントターミナルのグローバル変数は、MT4全体で共有され、異なるプログラムからアクセス可能です。
プログラム内のグローバル変数は、1つのプログラム内でのみ使われ、そのプログラムが終了すると消えます。
どちらも重要なツールなので、使用目的に応じて使い分けるようにしてください。
コピートレード
MT4のコピートレードは、特定のトレーダーの取引を自分のアカウントで自動的に複製(コピー)するシステムを指します。主に、経験豊富なトレーダーや、自動取引システム(EA)が行う取引を参考に、自分自身でも同じ取引を行いたいときに利用されます。
ここで、「トレーダー」とは、個人や企業など、投資市場で取引を行う人々を指します。
具体的な流れは以下のようになります。
まず、参考にしたいトレーダーやEAを選びます。この選択はMT4のMQL4コミュニティなどで提供される取引シグナルのリストから選ぶことが一般的です。
次に、MT4のSignalSubscribe関数を使って、選んだトレーダーやEAの取引シグナルに購読を開始します。
これにより、選んだトレーダーやEAが取引を行うたびに、その取引(新規取引、決済 等)があなたのMT4アカウントでも自動的に実行されるようになります。
しかし、コピートレードは便利な一方で、以下のような注意点もあります:
参考にするトレーダーやEAのパフォーマンスが過去に良かったからといって、必ずしも将来も良い結果を出すとは限りません。
コピートレードの結果は、自分の投資資金、リスク許容度、選んだトレーダーの取引スタイル等により大きく左右されます。
投資は自己責任ですので、シグナル提供者の選択やリスク管理は十分にご注意ください。
コンテキスト
コンテキストは、プログラミングにおいて特定のタスクや処理を行うために必要な情報や状態を表します。複数のコンテキストを管理することで、様々なタスクや処理を効率的に行い、データや状態を正確に保持することができます。
コンパイル
コンパイルとは、プログラミング言語で記述された内容を、コンピュータが実行(理解)できる言語に変換することを言います。
MT4の場合も同様で、MQL4言語で記述された「〇〇〇.mq4」ファイルからMT4が理解できる「〇〇〇.ex4」ファイルに変換されます。
この「〇〇〇.ex4」ファイルが実行するプログラムとなり、コンパイル後の「〇〇〇.ex4」ファイルは他の人からプログラムの内容を読み取られることはありません。ですので、プログラムの内容を開示したくない場合は、「〇〇〇.ex4」ファイルだけを配布すればEAを実行することはできます。そして、プログラムの内容は秘密にすることができます。
サマータイム
サマータイムは夏時間、標準時間は冬時間とも呼ばれます。サマータイムは、日の出時刻が早まる時期の3月~11月に太陽が出ている時間帯を有効活用するため、時間が1時間早められている期間のことを言います。これに伴いFXの開始時間も1時間早められます。
標準時間は、11月~3月までの期間になります。
時間分類 | FX取引時間(日本時間) | 期間(米国時間) |
---|---|---|
標準時間 | 月曜 午前7時 ~ 土曜 午前7時 | 11月 第1日曜日 ~ 3月 第2日曜日 |
サマータイム | 月曜 午前6時 ~ 土曜 午前6時 | 3月 第2日曜日 ~ 11月 第1日曜日 |
FXの標準時間とサマータイムの切替年月日
標準時間 : 2023年11月5日(日) ~ 2024年3月10日(日)
サマータイム : 2024年3月10日(日) ~ 2024年11月3日(日)
標準時間 : 2024年11月3日(日) ~ 2025年 3月 9日(日)
サマータイム : 2025年3月 9日(日) ~ 2025年11月 2日(日)
標準時間 : 2025年11月2日(日) ~ 2026年 3月 8日(日)
シグナル
MT4でいうシグナルとは、他の人が配信したトレードの信号のことを言います。
この信号を自身のMT4で受け取ることにより配信先のトレードと同様の取引が可能になります。このような取引はコピートレードと言われています。
これを使用することで、トレードが上手な人に取引を任せたり、離れた場所から複数の人が交代でトレードすることを可能にします。
取引シグナルの購読方法
取引シグナルの購読(コピートレード)は、次の方法で設定できます。購読は基本的に有料ですが、今回は無料の取引シグナルを選択して設定します。尚、FX会社によっては、この取引シグナル自体を提供していない場合があります。
① MT4のターミナルの「シグナル」タブを選択して、購読したいシグナルを選びます。今回は「Advanced Scalper Tickmill」を選択します。
② 「無料で購読」ボタンをクリック。
※初めて、取引シグナルの購読を行なう場合は、MQL5コミュニティに登録する必要があります。「購読」ボタンを押して登録されていない場合は次の画面が起動します。
「サインアップ」画面に「ログイン」用のIDとパスワードを送って貰うためのメールアドレスを入力します。「登録」ボタンをクリックします。
数分以内にメールが届くので、先ほどの「ログイン」用のIDと送られてきたパスワードを入力して「ログイン」ボタンをクリックします。これで登録完了です。購読ができるようになりました。購読したい取引シグナルを選んで「購読」ボタンをクリックしてください。
③「シグナル」タブが起動するので、任意に設定して「OK」ボタンをクリック
④ 購読が開始されます。
⑤ 購読をストップする時は、選択した取引シグナルを選んで「購読を停止」ボタンをクリックすることで解除ができます。
順張りと逆張り
順張りは、市場が既に上昇トレンドにある場合には買いのポジションを取り、下降トレンドにある場合には売りのポジションを取ることです。つまり、現在のトレンドに従ってトレードすることです。順張りトレードは、市場の勢いに乗り、利益を確保することができますが、トレンドが変わったときに損失を被る可能性もあります。
逆張りは、市場が上昇している場合には売りのポジションを、下降している場合には買いのポジションを取ることです。つまり、トレンドが反転することを期待してトレードすることです。逆張りトレードは、トレンド反転の可能性がある場合に利益を得ることができますが、トレンドが継続する場合には損失を被る可能性があります。逆張りは、高値圏で売り、安値圏で買うことにより、市場が限界に近づいたときに利益を得ることもできます。
どちらの手法が優れているとは言えず、トレーダーが市場状況を正しく判断し、リスク管理を適切に行うことが重要です。
証拠金
証拠金 (残高)
入金額のこと。担保となる資金のこと。MT4の画面上では「残高」で表示されています。
有効証拠金
取引する際の証拠金として、取引として利用可能な証拠金の総額です。 あと、どれくらいの取引ができるかの余力を示した金額になります。 入金した金額から各ポジションの損益分、既に決済をしたポジションの損益をすべて合計した金額になります
必要証拠金
ポジションを取るためにその取引額に比例して最低限必要になる預託金のことになります。FXでは少額の証拠金をもとにレバレッジを掛けて、実際の入金額より大きな運用を行うことが可能です。
例えば、USDJPYが100円の時に1万通貨分購入、最大レバレッジ25倍とします。この時の必要証拠金は、
100円 ✕ 10,000通貨 ÷ 25倍 = 40,000円(必要証拠金)
となり、有効証拠金の中に必要証拠金分が残っていれば、取引ができることになります。
余剰証拠金
余剰証拠金は、有効証拠金から必要証拠金を引いた金額のことです。余剰証拠金は、現時点の口座の余力を数値化したものになります。余剰証拠金以内であれば新規注文が可能です。
余剰証拠金 = 有効証拠金 - 必要証拠金
証拠金維持率
証拠金維持率とは、全ポジションの必要証拠金に対して占める有効証拠金の割合のことです。
証拠金維持率は、以下で計算されます。
証拠金維持率(%)= 有効証拠金 ÷ 必要証拠金 ✕ 100
各FX会社においては、有効証拠金維持率が一定数未満になると強制ロスカットされてしまいます。多くのFX会社では100%未満で強制ロスカットされますが、会社によっては20%、50%といったところもあります。ロスカットされる有効証拠金維持率が低いほどロスカットされ難くなりますが、ロスカットされた時の残り資金も少なくなります。
進数
進数とは、数字の表記体系のことです。
たとえば、私たちが普段使っている数字「0, 1, 2, 3, …」は10種類の数字を基にしています。この体系を「10進数」と呼びます。
10進数:
私たちが日常的に使用する数字体系。0から 9までの 10個の数字を使って数を表します。10を超える数は、次の桁に1を足して数え上げることで表現します。例: 12 → 10と2。
16進数:
0~9の 10個の数字と A~Fの 6個の英字 (合計16文字) を使って数を表します。特にコンピュータの世界で用いられます。
例:
10進数の 0は、16進数では 0
10進数の 1は、16進数では 1
…と続き、
10進数の 9は、16進数では 9
10進数の10は、16進数では A
10進数の11は、16進数では B
10進数の12は、16進数では C
…と続き、
10進数の15は、16進数では F
10進数の16は、16進数では 10
となります。
なぜ16進数を使うのか?
コンピュータ内部では2進数 (0と1のみを使う数字体系) でデータを扱っています。16進数は2進数を人間が読みやすく表現する方法として便利なのです。1桁の 16進数は、4桁の 2進数に対応します。たとえば、16進数の Fは 2進数の 1111に対応します。
つまり、進数は数字をどのように表現するかの「基準」や「体系」を示しています。10進数は 10の数字 (0~9) を基準に、16進数は 16の英数文字 (0~9, A~F) を基準に数を表現します。
シンボルコード
シンボルコードとは、文字符号化方式よって特定の決まった文字に置き換えることができるコードのことです。
文字符号化方式は、文字や符号の置き換え方法になります。コンピュータの世界では 0と 1で全ての事象が表され、あらゆる文字が 0と 1の羅列に置き換えられます。それがシンボルコードになります。
このシンボルコードを文字に置き換える方法として次の方式があります。
スキャルピング
新規取引から決済までを短い時間で繰り返し行なう手法。
通常この手法での短い時間とは数秒から1分程度のことを言います。極めて短い時間で売買を行なうとFX会社のシステムに負担がかかるため禁止にしているFX会社もあります。
スキャルピングは、短い時間で取引をするため 1取引あたりの利益は小さくなりますが、これを繰り返すことで利益の総量を増やしていきます。また、ポジションを長く持たないため大きな損失になり難いといった特徴があります。
スキャルピングを行なう時はスプレッドが狭い通貨ペア、FX会社で行なうと有利になります。
スクリプト(Script)
スクリプトは、いくつかのコードを 1回だけ実行するプログラムです。MQL4で独自作成ができます。EAとは異なり、スクリプトは初回だけ実行されることになります。スクリプトを動かす時は OnStartハンドラ関数が使用されます。
作成したスクリプトは、使用しているMT4のメニューから、ファイル → データフォルダ で対象フォルダが開くので、そのフォルダ中の MQL4 → Scripts フォルダの中に保存されます。また、外部から入手したスクリプトはこのフォルダの中に入れることで使えるようになります。
スタック
スタックとは、プログラムや関数の呼び出し時に、引数や変換を保持するために使用される一時的な記録空間のことを言います。この記録空間の大きさがスタックサイズで、これが小さいとデータ処理ができなくなるので十分なスタックサイズにする必要があります。
MT4のEAでは最低8MBのスタックサイズが用意されており、必要な場合はスタックサイズを変更することができます。
ストップレベル
ストップレベルとは、新たに指値注文 (逆指値注文) 予約をする場合、現在の価格から指値注文予約をすることができない範囲のことです。「指値制限」とも言われます。つまり、狭いレンジで新たに指値注文予約ができないことになるので、ストップレベルの値は小さい方が良いといえます。
例えば USDJPYでストップレベルが 12Point (1.2Pips) の場合、現在の価格が100円の時、99.988~100.012円の範囲では、指値注文予約はできないことになります。
このストップレベルはMT4上では、見たい通貨ペアにカーソルを当て、「右クリック」→「仕様」で確認することができます。
各通貨ペア毎にストップレベルは異なります。FX会社によっては 0に設定しているところもあります。0の場合はストップレベルに制限がないので狭いレンジでも指値注文予約ができます。
スプレッド
FXにおけるスプレッドとは、通貨取引における売値と買値の差のことを言います。
例えば、図はMT4の画面の一部になりますが、Bid 及び SELLは売値、Ask 及び BUYは買値 になります。
売りと買いの表記をどちらか一つにすればいいのにややこしいとは思いますが、
Bid(SELL)と Ask(BUY)の関係は必ず
Bid(SELL)< Ask(BUY)
になります。
ですので、通貨を買って直ぐに売ったとしてもこの差額分は損をしてしまいます。
この差額分が、FX業者への手数料になるので、この差額が狭ければ狭いほど手数料が安いということになります。稀に
Bid(SELL)= Ask(BUY)
といった業者もありますが、これは別途取引手数料が発生するか、スワップが不利に設定されていることになっています。
図の「!」の下に表されているものがスプレッドでMT4の表記では単位は Point で表されています。
図のUSDJPYでは 15 Point = 0.015 円 がスプレッドになっていますので、
106.919円(Bid)+ 0.015円 = 106.934円(Ask) となります。
MT4にスプレッドが表示されていない場合は、以下の操作をしてください。
FX会社が取り扱うスプレッドには、大きく分けて「原則固定」と「変動制」の2つの種類があります。
原則固定は、スプレッドが原則として変動せず、提示された幅で継続的に取引ができます。国内のFX会社では、原則固定が主流です。原則固定のメリットは、スプレッドの幅を把握しやすく、コスト管理がしやすいことです。しかし、市場が不安定な時は一時的にスプレッドが広がることがあります。
変動制は、スプレッドが常に変動しています。レートの変動や取引量の増減によって、スプレッドが広がったり縮まったりします。NDD方式で透明性の高い取引をする場合は変動制のスプレッドになります。こちらも原則固定と同様、市場が不安定な時は一時的にスプレッドが広がります。
スリッページ
スリッページとは、注文を出した時の価格と実際に成立した時の価格差のことを言います。
MT4のEAでは、注文時にズレる価格の許容範囲を設定することができ、その範囲からズレた場合は約定されません。業者によってはスリッページが無効化されているので、その場合はズレても約定されます。
ズレるとは主に価格変動が大きい時に起きる現象で、注文するスピードが追いつかず注文指定価格から大きくズレてしまうことがあります。この注文するスピードは業者が使うサーバーの能力によって異なり業者間でズレる頻度、ズレの大きさが違ってきます。
MT4でのスリッページの単位はPointなので、通貨ペアによるPipsとPointの違いに注意して設定する必要があります。
スレッド
スレッドは、プログラミングにおいてマルチタスキングを実現するための仕組みのことです。スレッドは単一のプロセス内で実行される、独立した処理単位になります。
スワップ
FXにおけるスワップとは、毎日付与される金利のことです。
これは、2つの通貨を交換する時に生じる金利差調整分によるものになります。
例えば、高金利の国の通貨を買って低金利の国の通貨を売った場合、その金利差を毎日受け取ることができます。しかし、逆に、低金利の国の通貨を買って高金利の国の通貨を売る場合は、その金利差を支払う必要があります。
スワップは日々変動しており、同じ通貨でもFX会社ごとでスワップ金額がちがってますので、FX会社選びは重要です。
スワップの計算方法についてはこちらを参考にしてください。
通常、スワップが付与される時間帯は午前7時(サマータイム【3月の最終日曜日の午前1時から10月の最終日曜日の午前1時】の時期は午前6時)になります。
チケット番号(注文番号)
注文時に自動取得される1以上の整数型の番号です。
こちらから番号を指定することはできません。
操作画面、ターミナル1番左の注文番号に表示されます。
通信速度
通信速度はインターネット接続時に送受信できるデータ量の大きさを表すものです。通信速度は通常、次の4つの項目で評価されます。
① ダウンロード (下り)
インターネットから自分のデバイス (スマートフォンやパソコンなど) にデータを受信する際の速度を指します。大きなファイルをダウンロードする時、この値が大きいほど早くダウンロードできます。ダウンロード速度が遅いと、動画の視聴が止まったり、ファイルのダウンロードに時間がかかります。
目安速度
3Mbps未満 | : | 低速 (動画視聴に適さず、ファイルのダウンロードも時間がかかる) |
3~10Mbps | : | 標準 (動画視聴は可能だが、高画質は難しい) |
10~30Mbps | : | 高速 (高画質動画の視聴が可能) |
30Mbps超 | : | 超高速 (大容量ファイルのダウンロードも素早く可能) |
② アップロード (上り)
自分のデバイスからインターネット上にデータを送信する際の速度をあらわします。大きな写真やビデオをアップロードする時、この値が大きいほど早くアップロードできます。アップロード速度が遅いと、大きなファイルの送信に時間がかかります。
目安速度
1Mbps未満 | : | 低速 (大容量ファイルのアップロードに時間がかかる) |
1~5Mbps | : | 標準 (一般的なファイル共有は可能) |
5~10Mbps | : | 高速 (大容量ファイルのアップロードが比較的スムーズ) |
10Mbps超 | : | 超高速 (高解像度動画のライブ配信などが可能) |
③ Ping (ピン または ピング)
デバイスからサーバーまでの応答時間を示します。Pingが小さいほど、サーバーへの指令がスムーズに伝わり、ゲームの遅延が少なくなります。Pingが大きいと、ゲームの操作がもっさりしたり、映像と音声にずれが生じるようになります。
目安値
20ms未満 | : | 最適 (ゲームやリアルタイム通信に適している) |
20~100ms | : | 許容範囲 (多くのオンラインアクティビティが可能) |
100ms超 | : | 遅延が目立つ (ゲームでは弊害が出る可能性がある) |
④ JITTER (ジッター)
Pingの変動具合を示す値です。JITTERが小さいほど、Pingの変化が少なく安定した通信ができます。JITTERが大きいと、Pingが不規則に変動するため、動画や音声が途切れ途切れになる可能性があります。
目安値
10ms未満 | : | 安定した通信が可能 |
10~20ms | : | 許容範囲だが、やや不安定 |
20ms超 | : | 遅延や途切れが発生しがち |
ダウンロード、アップロードは値が大きいほど、PingとJITTERは値が小さいほど、快適なインターネット環境になります。
テザリング
テザリングとは、スマホのようなデータ通信ができるモバイル端末を利用して、PCやタブレット、ゲーム機などをインターネットに接続する機能のことです。
デバッグ
デバッグとは、コンピュータ上にあるプログラムの誤りを見つけて意図したとおりの動作するように修正していくことを言います。
デバッグは「de + bug(バグ)」の造語で、bugは虫のことで虫取りの意味があります。
トラリピ
「トラリピ」とは、「トラップリピートイフダン」の略でマネースクウェアが提供している自動売買サービスの名称になります。これは設定した範囲で段階的にイフダン注文を永遠に繰り返す手法のことです。
取引最小値
取引最小値とは、各通貨ペアで取引される小数点以下の桁の最小値のことである。1 Point が最小値になる。取引の価格はこの最小値の桁まで設定が可能。各通貨ペアによって最小桁が違うので注意すること。
トレール
FXのトレールとはトレーリングストップのことを指します。利益を確保しつつ、さらなる利益を追求するための自動注文設定です。設定した価格から一定の距離 (例:20Pips) を保ちながら、価格が有利な方向に動くと決済注文も追随して移動します。価格が逆方向に動くと、決済注文がその位置で成立して、利益を確保できます。
(例)
買い注文:
- 1ドル=100円で買い注文。
- トレーリングストップを20Pipsに設定。
- 価格が101円に上がると、トレーリングストップは100.80円に移動。
- 価格が100.80円に戻ると決済され、利益確定。
売り注文:
- 1ドル=100円で売り注文。
- トレーリングストップを20Pipsに設定。
- 価格が99円に下がると、トレーリングストップは99.20円に移動。
- 価格が99.20円に戻ると決済され、利益確定。
メリット
- 自動で利益確定: 手動で価格を監視する必要がなくなる。
- 感情を排除: 自動的に追随し、冷静な取引が可能。
- リスク管理: 損失を最小限に抑え、利益を追求。
注意点
- 距離の設定: 狭すぎると小さな変動で決済される可能性がある。
- 市場の状況に応じた設定: ボラティリティに応じて適切な距離を設定する。
トレールは初心者でも利用しやすい有効なツールで、適切に活用すれば利益を確保しつつ損失を最小限に抑えることができます。
ドローダウン
資金が初期証拠金や過去最高額あらどの程度減ったのかを表したものになります。
絶対ドローダウンは初期証拠金から減った金額、最大ドローダウンは過去の最高額から減った金額を表します。また、これらを相対ドローダウン(%)で表すこともあります。
相対ドローダウンは小さい方が良好な取引手法と言えるのですが、これは資金量や取引量によって変わってきますのでご注意ください。
ニーモニック
ニーモニックとは、プログラムを実行させるための機械語の命令を、人間が理解できるようにした英数字の符号になります。
プログラミング言語は高級言語と低級言語の2種類に分類され、機械語は低級言語に分類されます。低級言語は可読性が悪く人間が理解するのが難しい反面、処理が早いです。
これに対してMQL言語やC言語、Javaは高級言語に分類され、可読性が良いので人間が理解できる反面、これらの言語を処理する時に機械語に変換しなければならないので全体の処理が遅くなります。
そこで機械語を人間が理解できるように機械語の命令に対応する英数字の符号を決め、この英数字の符号がニーモニックと言われ、これがアセンブリ言語と言われています。
ニーモニックは、機械語と一対一の対応関係にあるので、それを使用するアセンブリ言語は機械語として低級言語に分類されています。
バイナリファイル (BINファイル)
バイナリファイルとは、コンピュータが直接的に理解できる形式で記録されたファイルのことです。ファイルの拡張子は「.bin」となりますが、特にファイル形式は決まっていないので「.bin」以外のファイル形式も存在します。
バイナリファイルには、テキストファイル、Wordで作成された文書やスプレッドシートなどの人間が読めるデータとは異なり、コンピュータがプログラムの実行やデータの処理に必要な情報を含んでいます。
バイナリファイルは、プログラムの実行ファイルやライブラリ、画像、音声、動画、圧縮ファイル、データベースファイルなど、さまざまな種類のファイルで使われます。通常、テキストファイルよりも小さく、高速に読み書きできるため、プログラムの実行速度を高めることができます。
バイナリファイルを編集する時は、専用のツールが必要になります。
ハンドル
ファイルや画像、ウィンドウなどを操作したい対象を識別するために個々の要素に割り当てられる一意の番号をハンドルといいます。
特定の要素に関連付けたハンドルは特定の型の変数に代入され、以降のコードではその要素を処理する時にその変数を指定して使えます。
対象の種類によって「ファイルハンドル」「ウィンドウハンドル」「システムハンドル」などと呼ばれます。
ファイルポインタ
ファイルポインタとは、ファイル中で書き込みや読み出しが行なわれる位置のことです。バイト単位で示されます。厳密には違いますが、現在カーソルがあたっている位置と考えてください。
何も書かれていない txt形式のファイルではファイルポインタの位置は 0バイトです。何らかのデータが入った場合、半角文字で 1バイト、全角文字で2バイトずつ追加されて移動していきます。
例えば「testテスト」の文字列を FileWrite関数で txt形式のファイルに書いた場合、
(1×4) + (2✕3) + 2 = 12(バイト) となります。
最後の 2(バイト) は改行文字を表すもので行末に存在します。
通常、関数を使って書き込んだ場合はファイルポインタは同じバイト数だけ移動します。
仮に手動で txt形式のファイルを開いて何らかの文字列を書いた場合、ファイルポインタの位置は動いておらず 0バイトになります。先頭や行末、指定した位置にファイルポインタを移動したい場合は、FileSeek関数を使う必要があります。
フィボナッチ
フィボナッチは、フィボナッチ解析と呼ばれるテクニカル分析の方法を描画するために使用されます。これは、トレーディングの中で広く使用されている手法の一つであり、価格の変動の可能性のある水準を示すのに役立ちます。
フィボナッチ解析は、自然界のパターンと成長を説明するフィボナッチ数列に基づいています。この数列は、各数が前の2つの数の和であるという特性を持っています。
例) 0、1、1、2、3、5、8、13、21、34、55、89、144など。
フィボナッチ解析では、主に次の3つのフィボナッチツールが使用されます:
フィボナッチリトレースメント(Fibonacci Retracements)
価格が逆転(リトレースメント)する可能性のあるレベルを示します。これらのレベルは、主に0.236、0.382、0.500、0.618、0.786です。
フィボナッチエクステンション(Fibonacci Extensions)
価格がトレンドを再開した後に達する可能性のあるレベルを示します。これらのレベルは主に1.272、1.382、1.618です。
フィボナッチファン(Fibonacci Fans)
トレンドラインの代わりにフィボナッチレベルを使用して、可能な支持と抵抗のラインを描画します。
MQL4言語を使用すると、これらのフィボナッチツールを自動的に描画し、それらのレベルに基づいてトレードを行うEAを作成することが可能です。
浮動小数点
浮動小数点とは、計算で誤差が発生することを前提とした数値データのことです。
誤差は、お使いのPCにもよりますが、以下のような簡単な計算でも発生してしまいます。
#property strict
void OnInit() {
double aaa = 0.1 * 0.7; //変数aaaは計算結果
Print("aaa = ",aaa); //aaa = 0.0699999999…
}
浮動小数点の対になるものとして固定小数点があります。こちらは義務教育(小学生)で習った誤差が発生しない小数点(固定小数点)になります。固定小数点の場合は、誤差が発生せず結果は「0.07」になります。
では、何故誤差を発生させるような浮動小数点を使うのかですが、これは計算するコンピュータの能力と扱いたい桁数に原因があります。
例えば、固定小数点の場合、64bitのコンピュータでは整数で
-9,223,372,036,854,775,808~9,223,372,036,854,775,807 の範囲で19桁まで扱えます。
比較して、浮動小数点の場合、64bitのコンピュータで600桁の範囲がカバーできます。但し、精度は16桁程度であるためこの桁に収まらない分の計算結果は失われて誤差になってしまいます。これは、円周率や自然対数の底eなど桁数が多いものに対して非常に有効的に計算ができます。
多くのプログラミング言語では、浮動小数点が使われており誤差が発生するので数値の扱い(丸め)には注意する必要があります。
MQL4言語も同様に浮動小数点が使われています。
ポジション と オーダー
ポジション:ある通貨ペアをトレード(買い又は売り)して保有している状態
オーダー :ある通貨ペアを指値で注文している状態
ポジションとオーダーは注文ごとに独立したものになっています。
USDJPYを1万通貨ずつ5回に分けて買った場合、ポジションは1万通貨を5個保有することになります。5万通貨を1個保有することにならないので注意してください。
ポジションは建玉とも言われます。
各FX会社によって保持できるポジションとオーダーの保有上限が決まっています。
マクロ
関連する複数の操作や手順、命令などを一つにまとめて必要に応じて呼び出せるようにする機能のこと。
ライブラリ
ライブラリとは、プログラムにおいてよく利用する機能を取り出して、再利用できるようにまとめたものになります。ライブラリはプログラム作成における部品のようなものです。ライブラリを利用することで、よく使う機能を最初から作る必要がなくなるので効率的な開発ができるようになります。
MT4では、他から入手したものを使用したり、MQL4を使って独自開発することができます。
作成したライブラリは、使用しているMT4のメニューから、ファイル → データフォルダ で対象フォルダが開くので、そのフォルダ中の MQL4 → Libraries フォルダの中に保存されます。また、外部から入手したライブラリはこのフォルダの中に入れることで使えるようになります。
ラジアン
角度の単位。
2πラジアン = 360°、 πラジアン = 180°、 1/2πラジアン = 90° となる。
π は円周率。(π = 3.1415926…)
ゆえに、1ラジアン ≒ 57.3° となる。
MQL4では、数学定数として 円周率 πの値が M_PI で定義されています。
乱数
規則性のない予測ができない数値のことです。
この乱数を使うことでゲームでは、敵の発生確率や、攻撃ポイント、ダメージポイントなどでばらつきのある結果を作ることができます。すごろくで使うサイコロも 1~6の乱数を使ってのゲームになります。その他、天気予報などでもシミュレーションをする時に使われています。
リテラル文字
「リテラル」とは、プログラムのソースコードにおいて、直接記述される値のことを指します。これは、変数や定数を使用せずに、その値そのものを示します。
リテラル文字は 1文字を表現するデータです。リテラル文字はシングルクォーテーション(‘) で 1文字を括ります。文字列ではないため、複数の文字を含めることができません。使用できる文字については ANSI または Unicode を参考にしてください。
(例) ‘A’
両建て
FXの両建てとは、同じ通貨ペアの買いポジションと売りポジションを同時に保有することを言います。両建ては、通貨変動に対して、両面から利益を得ることができる一方、損失を受ける可能性もあります。スプレッド、スワップ金利の面から見ると損失を受ける可能性の方が大きくなります。
レジスタンス・サポートライン
レジスタンスラインは、FXのチャートにおいて「これ以上は上昇しないだろう」と考えられるラインのことを指します。別名「上値抵抗線」とも言います。
サポートラインは、FXのチャートにおいて「これ以上は下落しないだろう」と考えられるラインのことを指します。別名「下値支持線」とも言います。
レジスタンスラインとサポートラインは、市場のトレンドを把握する際によく使われます。新規取引や決済のタイミングを決める大きな根拠になります。
レバレッジ
レバレッジとは、証拠金(入金したお金のこと)として預けたお金の何倍もの金額をFXで取り扱う時に使われます。
例えば、
100万円の証拠金があったとして
100万円でアメリカ ・ドルを100万円分買った時は レバレッジが 1倍
〃 ・ドルを200万円分買った時は レバレッジが 2倍
〃 ・ドルを1,000万円分買った時は レバレッジが10倍
となります。
このようにすることで少ない資金でも大きく掛けることで資金効率を高めることができます。但し、レバレッジの倍率を上げるほどハイリスクになり、勝った時の利益も大きいですが、同様に損失が大きくなる可能性もあります。
日本国内のFXはレバレッジが最大25倍までと決められていますが、海外業者では1000倍といったところもあります。
ローソク足
ローソク足とは、一定期間の相場の4つの値(始値、高値、安値、終値)を用いて値動きを図表として表す手法のことです。FXや株などの相場では、任意に決めた時間のローソク足を連続して描くことで相場の変化を見る指標にされています。
陽線:終値が始値より上がった。始値は長方形の底辺、終値は上辺。
陰線:終値が始値より下がった。始値は長方形の上辺、終値は底辺。
高値は長方形の上から伸びた線の先端、安値は長方形の下から伸びた線の先端で、陽線・陰線ともに同じ見方です。
ロスカット
ロスカットとは、保有するポジションに損が発生して一定レベルに達した時に、更なる損失の拡大を未然に防ぐために、そのポジションを強制的に決済することを言います。
ロスカットはポジション毎に「決済逆指値(S/L)」で設定することができます。
これとは別にFX会社では、一つの口座内にある全保有ポジションが全体で損が発生して一定レベルに達した時(各FX会社が決める証拠金維持率を下回った時)に強制的にポジションが決済されることも、ロスカットと言います。
ロスカット狩り
FXにおけるロスカット狩りとは、個人投資家の損切注文を狙って利益を得る行為のことを言います。
ロスカット狩りには大きく次の2つがあります。
①大口投資家による意図的なロスカット狩り
②FX会社による意図的なロスカット狩り
①はヘッジファンドなどの大口投資家が、個人投資家の損切注文を狙って大量の取引を仕掛け、短時間で相場を狙った方向に動かすことです。
近年では2019年1月3日午前7時過ぎに起きたフラッシュ・クラッシュがあります。この時108円台だったドル円は、数分の間に103円台まで急落しました。その後すぐに107円台まで値を戻し、1日も経たないうちに108円台まで回復しました。
これは、大口投資家が1月3日早朝の市場取引が少ないタイミングを狙い、一気に売りを仕掛けたことで個人投資家のポジションが損切価格に達して売りが増長したことと、近年のFX取引はAIによる制御によりAIが異変が起きたと判断して損失の拡大を防ぐために更に売りを入れるといったことが起こり、大きな急落が起きました。
これを仕掛けた大口投資家は急落して下がりきったところで安くなった通貨を買い戻して利益を得るということです。
②は、FX会社がレートを不正に動かして、個人投資家の損切注文を発動させて利益を得ることです。
これは、①のような相場が発生した時にFX会社がドサクサに紛れてロスカット狩りをやっていることがあるようです。①のフラッシュ・クラッシュではFX会社によっては、その時の最安値が106円台前半だったところもあれば103円台後半まで急落したFX会社もあり、FX会社ごとに差があります。
もっと顕著な例だと、2015年1月15日に起きた「スイスフランショック」では、USDCHF(ドル・フラン)は1フラン付近から0.8フラン前半まで数分の間に急落しました。この時もFX会社によっては0.7フラン前半、酷いFX会社では0.3フラン前半といった最安値を付けているところもありました。0.3フラン前半まで急落させたFX会社では多くのトレーダーがロスカット狩りにあったと思われます。