FX(外国為替証拠金取引)の損切りのタイミングは、投資スタンスにより異なりますが、一般的な損切りは次のようなケースが考えられます。
▼IFD
IFD(イフダン)によって損切りのタイミングを決定します。例えば、USD/JPYを80円で買い注文して79円になったら損切するというものです。あらかじめ損切り額を自分で設定できるため、損失額を抑えることが可能です。
▼トレール
トレールによって損切り幅を設定します。例えば、USD/JPYを80円で買い注文して1円下がったら損切するというものです。ただしトレールの場合は、為替レートが80円から80.50円になれば損切り額は79.50円へ切り上がります。もし為替レートが82円になれば81円で決済されるため、損切りにはなりません。このようにトレールでは、最大損失額を限定することができます。
▼ロスカット
証拠金維持率の低下による強制決済で、結果として損切りになります。ロスカットの場合には損失額が最大になるため、良い損切りとはいえません。
▼テクニカル指標
テクニカル指標によって損切りのタイミングを図るものです。IFDやトレールは、テクニカル指標に頼らない損切りでしたが、テクニカル指標の場合には、ある一定の数値に達したらそこで損切りをするというものです。
上の図はチャートとテクニカル指標のRSIを描画したものです。赤色の丸で囲んだ部分で売りエントリーをしたものの一向に下がらないため、黄色の丸でかこんだ部分で損切りをするケースです。
2012年5月30日水曜日
FXのチャート分析ソフトMT4で表示できる通貨ペア以外のレートは
FX(外国為替証拠金取引)のチャート分析ソフトMT4(Meta Trader 4)では、外国為替市場で取引される通貨ペア以外のチャートも表示できます。以下はそのリストです。
なお、MT4のダウンロード先によっては表示できない場合があります。
▼日経225先物のチャート
▼S&P500種平均指数
なお、MT4のダウンロード先によっては表示できない場合があります。
| 名称 | 内容 |
|---|---|
| #NIK225M2 | 日経225先物 |
| #AU200M2 | S&P ASX200種指数 |
| #DJ30M2 | ダウジョーンズ30種 |
| #SP500M2 | S&P500種平均指数 |
| #NAS100M2 | ナスダック100指数 |
| #RUSM2 | ミニラッセル2000 |
| #CHM2 | スイスSMI指数先物 |
| #DE30M2 | DAX指数 |
| #EU50M2 | EURO STOXX 50 Index |
| #ITA40M2 | FTSE MIB |
| #GB100M2 | FTSE 100 |
| #FR40M2 | CAC40 Index |
| #NLK2 | AEX Index NL |
| #ESK2 | Mini-IBEX-35 Index SP |
| #USOILM2 | Light Sweet Crude Oil(WTI) |
| #NGM2 | E-mini Natural Gas |
| #HGM2 | Heating Oil |
| #NLM2 | AEX Index |
| #ESM2 | Mini-IBEX-35 Index |
| #UKOILN2 | Brent Crude Oil |
▼日経225先物のチャート
▼S&P500種平均指数
FXのチャート分析ソフトMT4で10分足や2時間足などを表示するには
FX(外国為替証拠金取引)のチャート分析ソフトMT4(Meta Trader 4)では、次の時間足の表示ができます。
MT4では、10分足や12時間足などは表示できません。しかし、インジケーターの「Period_Converter_Opt.mq4」を使えば、指定した時間足の表示が可能になります。
「Period_Converter_Opt.mq4」のソースリストは次の通りです。
ファイル名を「Period_Converter_Opt.mq4」として、MT4のインストールされているフォルダ内の「experts」フォルダ内にある「indicators」フォルダに保存します。
「Period_Converter_Opt.mq4」
//+------------------------------------------------------------------+
//| Period_Converter_Opt.mq4|
//| Copyright ?2005, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//| Modified by wfy05@talkforex based on Period_Converter|
//| http://www.talkforex.com |
//+------------------------------------------------------------------+
#property copyright "wfy05@talkforex.com"
#property link "http://www.mql4.com/codebase/indicators/277/"
#property indicator_chart_window
#property show_inputs
#include
/*
Readme:
I. Features:
This is an improved version of period converter for MT4 based on the
MT4's default period converter by metaquotes.
The default period converter script do not support real-time refreshing,
and consume lots of CPU (50%-9x%) making the whole system slow.
Also, the default one is a script which do not save when you exit MT4,
so you have to apply every converter script again after restarting, quite
annoying.
This one fixed all above problems:
1. Real-time updating or custom interval millisecond level updating.
2. Low CPU cost, average 5%-10% or less.
3. Works as an indicator, so can be saved and reloaded during restart.
4. There is no one converter per chart limitation as it is not script
any more, you can only use one window as source to generate as many
new timeframe chart as possible.
5. Auto updating if there is new history block loaded.
II. How to use:
Copy the mq4 file to your MT4 indicators folder (experts\indicators)
to install it as an indicator, NOT script. then in the custom indicator
list, attach period_converter_opt to the chart you want.
It support 4 parameters:
PeriodMultiplier: new period multiplier factor, default is 2
UpdateInterval: update interval in milliseconds,
zero means update real-time. default is zero.
Enabled: You can disable it without remove it with this option.
Other parameters are comments or for debugging, it is safe to ignore them.
Also Make sure you have Allow Dll imports option checked in common tab or
it won't work
After that, File->Open Offline to open the generated offline data. then
the offline data will be updated automatically.
As long as you keep the source chart open and the converter indicator
running, the generated chart including indicators inside will always
be updated. also you can close the generated chart and open again
later from File->Open Offline without problem.
If you want to quit MT4, you can leave those offline chart as other
normal online charts. when you start MT4 next time, those charts will
also be loaded and updated.
III. Notes:
1. Do NOT uncheck the "offline chart" option in offline chart common properties.
or after MT4 restart, it will treat that chart as online chart and request
the data from server, resulting empty chart window.
2. You can attach more than one converter to same window with different
PeriodMultiplier, e.g: you can attach 3 converter with
PeriodMultiplier = 2, 4, 10 to M1 to generate M2, M4, M10 at the same time.
It is even ok to use the M1 chart to generate Hourly chart like H2, which
only cost a few more CPU resource during initial conversion. but usually
most server don't have much data for those short period. resulting the
generated data isn't long enough for long period. so it is suggested
to use Hourly/Daily charts as source when needed.
3. The real-time updating mode updates quotes as fast as possible, but as
this is done via script, and MT will skip calling start() function when
your PC is busy and lots of quotes income. anyway, this seldom happen,
and you can at least get 10 updates each seconds which is much more
than enough.
4. The offline chart don't have a bid line showing in chart, but all data
in the chart including the indicators is still being updated,
so don't worry. you can show the bid line by unclick the "offline chart"
option in chart properties. but which don't helps much and if you forget
to check "offline chart" option before exit. it will cause errors and
become empty on next startup. you have to close the window and open
again from File->Open offline, which don't worth the trouble.
IV. History:
2005.12.24 1.4 faster to detect if data changed by removing float point
operations, added support to output CSV file in real time.
OutputCSVFile = 0 means no CSV.
OutputCSVFile = 1 means CSV + HST
OutputCSVFile = 2 CSV only, no HST .
(useful if you want to generate CSV for builtin periods)
CSV Filename will be the same as HST file except the extension.
added safe checking for PeriodMultiplier.
2005.12.04 1.3 Fixed missing data when there is large amount of data
loaded in several blocks, and support auto updating
when new history is loaded.
2005.11.29 1.2 Additional fix for missing data and server changing.
2005.11.29 1.1 Fixed missing partial data after restart.
Reinitialize after changing server or data corrupted.
2005.11.28 1.0 Initial release
*/
extern double Version = 1.4; // code version
extern string BuildInfo = "2005.12.24 by wfy05@talkforex.com";
extern int PeriodMultiplier = 2; // new period multiplier factor
extern int OutputCSVFile = 0; // also output CSV file?
extern int UpdateInterval = 0; // update interval in milliseconds, zero means update real-time.
extern bool Enabled = true;
extern bool Debug = false;
int FileHandle = -1;
int CSVHandle = -1;
int NewPeriod = 0;
#define OUTPUT_HST_ONLY 0
#define OUTPUT_CSV_HST 1
#define OUTPUT_CSV_ONLY 2
#define CHART_CMD_UPDATE_DATA 33324
void DebugMsg(string msg)
{
if (Debug) Alert(msg);
}
int init()
{
//safe checking for PeriodMultiplier.
if (PeriodMultiplier <= 1) { //only output CSV file PeriodMultiplier = 1; OutputCSVFile = 2; } NewPeriod = Period() * PeriodMultiplier; if (OpenHistoryFile() < 0) return (-1); WriteHistoryHeader(); UpdateHistoryFile(Bars-1, true); UpdateChartWindow(); return (0); } void deinit() { //Close file handle if(FileHandle >= 0) {
FileClose(FileHandle);
FileHandle = -1;
}
if (CSVHandle >= 0) {
FileClose(CSVHandle);
CSVHandle = -1;
}
}
int OpenHistoryFile()
{
string name;
name = Symbol() + NewPeriod;
if (OutputCSVFile != OUTPUT_CSV_ONLY) {
FileHandle = FileOpenHistory(name + ".hst", FILE_BIN|FILE_WRITE);
if (FileHandle < 0) return(-1);
}
if (OutputCSVFile != OUTPUT_HST_ONLY) {
CSVHandle = FileOpen(name + ".csv", FILE_CSV|FILE_WRITE, ',');
if (CSVHandle < 0) return(-1);
}
return (0);
}
int WriteHistoryHeader()
{
string c_copyright;
int i_digits = Digits;
int i_unused[13] = {0};
int version = 400;
if (FileHandle < 0) return (-1);
c_copyright = "(C)opyright 2003, MetaQuotes Software Corp.";
FileWriteInteger(FileHandle, version, LONG_VALUE);
FileWriteString(FileHandle, c_copyright, 64);
FileWriteString(FileHandle, Symbol(), 12);
FileWriteInteger(FileHandle, NewPeriod, LONG_VALUE);
FileWriteInteger(FileHandle, i_digits, LONG_VALUE);
FileWriteInteger(FileHandle, 0, LONG_VALUE); //timesign
FileWriteInteger(FileHandle, 0, LONG_VALUE); //last_sync
FileWriteArray(FileHandle, i_unused, 0, ArraySize(i_unused));
return (0);
}
static double d_open, d_low, d_high, d_close, d_volume;
static int i_time;
void WriteHistoryData()
{
if (FileHandle >= 0) {
FileWriteInteger(FileHandle, i_time, LONG_VALUE);
FileWriteDouble(FileHandle, d_open, DOUBLE_VALUE);
FileWriteDouble(FileHandle, d_low, DOUBLE_VALUE);
FileWriteDouble(FileHandle, d_high, DOUBLE_VALUE);
FileWriteDouble(FileHandle, d_close, DOUBLE_VALUE);
FileWriteDouble(FileHandle, d_volume, DOUBLE_VALUE);
}
if (CSVHandle >= 0) {
int i_digits = Digits;
FileWrite(CSVHandle,
TimeToStr(i_time, TIME_DATE),
TimeToStr(i_time, TIME_MINUTES),
DoubleToStr(d_open, i_digits),
DoubleToStr(d_high, i_digits),
DoubleToStr(d_low, i_digits),
DoubleToStr(d_close, i_digits),
d_volume);
}
}
int UpdateHistoryFile(int start_pos, bool init = false)
{
static int last_fpos, csv_fpos;
int i, ps;
// if (FileHandle < 0) return (-1);
// normalize open time
ps = NewPeriod * 60;
i_time = Time[start_pos]/ps;
i_time *= ps;
if (init) {
//first time, init data
d_open = Open[start_pos];
d_low = Low[start_pos];
d_high = High[start_pos];
d_close = Close[start_pos];
d_volume = Volume[start_pos];
i = start_pos - 1;
if (FileHandle >= 0) last_fpos = FileTell(FileHandle);
if (CSVHandle >= 0) csv_fpos = FileTell(CSVHandle);
} else {
i = start_pos;
if (FileHandle >= 0) FileSeek(FileHandle,last_fpos,SEEK_SET);
if (CSVHandle >= 0) FileSeek(CSVHandle, csv_fpos, SEEK_SET);
}
if (i < 0) return (-1);
int cnt = 0;
int LastBarTime;
//processing bars
while (i >= 0) {
LastBarTime = Time[i];
//a new bar
if (LastBarTime >= i_time+ps) {
//write the bar data
WriteHistoryData();
cnt++;
i_time = LastBarTime/ps;
i_time *= ps;
d_open = Open[i];
d_low = Low[i];
d_high = High[i];
d_close = Close[i];
d_volume = Volume[i];
} else {
//no new bar
d_volume += Volume[i];
if (Low[i] if (High[i]>d_high) d_high = High[i];
d_close = Close[i];
}
i--;
}
//record last_fpos before writing last bar.
if (FileHandle >= 0) last_fpos = FileTell(FileHandle);
if (CSVHandle >= 0) csv_fpos = FileTell(CSVHandle);
WriteHistoryData();
cnt++;
d_volume -= Volume[0];
//flush the data writen
if (FileHandle >= 0) FileFlush(FileHandle);
if (CSVHandle >= 0) FileFlush(CSVHandle);
return (cnt);
}
int UpdateChartWindow()
{
static int hwnd = 0;
if (FileHandle < 0) {
//no HST file opened, no need updating.
return (-1);
}
if(hwnd == 0) {
//trying to detect the chart window for updating
hwnd = WindowHandle(Symbol(), NewPeriod);
}
if(hwnd!= 0) {
if (IsDllsAllowed() == false) {
//DLL calls must be allowed
DebugMsg("Dll calls must be allowed");
return (-1);
}
if (PostMessageA(hwnd,WM_COMMAND,CHART_CMD_UPDATE_DATA,0) == 0) {
//PostMessage failed, chart window closed
hwnd = 0;
} else {
//PostMessage succeed
return (0);
}
}
//window not found or PostMessage failed
return (-1);
}
/*
int PerfCheck(bool Start)
{
static int StartTime = 0;
static int Index = 0;
if (Start) {
StartTime = GetTickCount();
Index = 0;
return (StartTime);
}
Index++;
int diff = GetTickCount() - StartTime;
Alert("Time used [" + Index + "]: " + diff);
StartTime = GetTickCount();
return (diff);
}
*/
static int LastStartTime = 0;
static int LastEndTime = 0;
static int LastBarCount = 0;
int reinit()
{
deinit();
init();
LastStartTime = Time[Bars-1];
LastEndTime = Time[0];
LastBarCount = Bars;
}
bool IsDataChanged()
{
/*
static int LastBars = 0, LastTime = 0, LastVolume = 0;
static double LastOpen = 0, LastClose = 0, LastHigh = 0, LastLow = 0;
if (LastVolume != Volume[0] || LastBars != Bars || LastTime != Time[0]||
LastClose != Close[0] || LastHigh != High[0] || LastLow != Low[0] ||
LastOpen != Open[0]) {
LastBars = Bars;
LastVolume = Volume[0];
LastTime = Time[0];
LastClose = Close[0];
LastHigh = High[0];
LastLow = Low[0];
LastOpen = Open[0];
return (true);
}
return (false);
*/
/*
fast version without float point operation
*/
static int LastBars = 0, LastTime = 0, LastVolume = 0;
bool ret;
ret = false;
if (LastVolume != Volume[0]) {
LastVolume = Volume[0];
ret = true;
}
if (LastTime != Time[0]) {
LastTime = Time[0];
ret = true;
}
if (LastBars != Bars) {
LastBars = Bars;
ret = true;
}
return (ret);
}
int CheckNewData()
{
static string LastServer = "";
if (Bars < 2) {
//the data is not loaded yet.
DebugMsg("Data not loaded, only " + Bars + " Bars");
return (-1);
}
string serv = ServerAddress();
if (serv == "") {
//no server yet
DebugMsg("No server connected");
return (-1);
}
//server changed? check this and reinit to prevent wrong data while changing server.
if (LastServer != serv) {
DebugMsg("Server changed from " + LastServer + " to " + serv);
LastServer = serv;
reinit();
return (-1);
}
if (!IsDataChanged()) {
//return if no data changed to save resource
//DebugMsg("No data changed");
return (-1);
}
if (Time[Bars-1] != LastStartTime) {
DebugMsg("Start time changed, new history loaded or server changed");
reinit();
return (-1);
}
int i, cnt;
//try to find LastEndTime bar, which should be Time[0] or Time[1] usually,
//so the operation is fast
for (i = 0; i < Bars; i++) {
if (Time[i] <= LastEndTime) {
break;
}
}
if (i >= Bars || Time[i] != LastEndTime) {
DebugMsg("End time " + TimeToStr(LastEndTime) + " not found");
reinit();
return (-1);
}
cnt = Bars - i;
if (cnt != LastBarCount) {
DebugMsg("Data loaded, cnt is " + cnt + " LastBarCount is " + LastBarCount);
reinit();
return (-1);
}
//no new data loaded, return with LastEndTime position.
LastBarCount = Bars;
LastEndTime = Time[0];
return (i);
}
//+------------------------------------------------------------------+
//| program start function |
//+------------------------------------------------------------------+
int start()
{
static int last_time = 0;
if (!Enabled) return (0);
//always update or update only after certain interval
if (UpdateInterval != 0) {
int cur_time;
cur_time = GetTickCount();
if (MathAbs(cur_time - last_time) < UpdateInterval) {
return (0);
}
last_time = cur_time;
}
//if (Debug) PerfCheck(true);
int n = CheckNewData();
//if (Debug) PerfCheck(false);
if (n < 0) return (0);
//update history file with new data
UpdateHistoryFile(n);
//refresh chart window
UpdateChartWindow();
//if (Debug) PerfCheck(false);
return(0);
}
▼10分足を表示する方法
ここではUSD/JPYを例に挙げます。まず最初に、USD/JPYの1分足のチャートを表示します。

次に、Costom Indicatorsにある「Period_Converter_Opt.mq4」をダブルクリックします。「パラメータの入力」のタブの「PeriodMultiplier」の項目を「10」にしてOKのボタンをクリックします。
「ファイル」から「オフラインチャート」を選びます。
オフライン・チャート一覧の画面が表示されますので、その中から「USDJPY,M10」を選んで「開く」のボタンをクリックします。
10分足のチャートが表示されました。なお、このチャートはオフラインチャートのため、リアルタイムでの更新はされません。
▼2時間足を表示する方法
2時間足も10分足と同じような操作で表示できます。
ここではUSD/JPYを例に挙げます。まず最初に、USD/JPYの1時間足のチャートを表示します。
次に、Costom Indicatorsにある「Period_Converter_Opt.mq4」をダブルクリックします。「パラメータの入力」のタブの「PeriodMultiplier」の項目を「2」にしてOKのボタンをクリックします。
「ファイル」から「オフラインチャート」を選びます。
オフライン・チャート一覧の画面が表示されますので、その中から「USDJPY,H2」を選んで「開く」のボタンをクリックします。
▼他の時間足の表示方法
分単位のチャートの場合には1分足を表示してから「Period_Converter_Opt.mq4」のパラメータを変更します。2分足なら「2」、3分足なら「3」を入力します。
時間単位のチャートの場合には1時間足を表示してから「Period_Converter_Opt.mq4」のパラメータを変更します。6時間足なら「6」、8時間足なら「8」、12時間足なら「12」を入力します。
- ティック
- 1分足
- 5分足
- 15分足
- 30分足
- 1時間足
- 4時間足
- 日足
- 週足
MT4では、10分足や12時間足などは表示できません。しかし、インジケーターの「Period_Converter_Opt.mq4」を使えば、指定した時間足の表示が可能になります。
「Period_Converter_Opt.mq4」のソースリストは次の通りです。
ファイル名を「Period_Converter_Opt.mq4」として、MT4のインストールされているフォルダ内の「experts」フォルダ内にある「indicators」フォルダに保存します。
「Period_Converter_Opt.mq4」
//+------------------------------------------------------------------+
//| Period_Converter_Opt.mq4|
//| Copyright ?2005, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//| Modified by wfy05@talkforex based on Period_Converter|
//| http://www.talkforex.com |
//+------------------------------------------------------------------+
#property copyright "wfy05@talkforex.com"
#property link "http://www.mql4.com/codebase/indicators/277/"
#property indicator_chart_window
#property show_inputs
#include
/*
Readme:
I. Features:
This is an improved version of period converter for MT4 based on the
MT4's default period converter by metaquotes.
The default period converter script do not support real-time refreshing,
and consume lots of CPU (50%-9x%) making the whole system slow.
Also, the default one is a script which do not save when you exit MT4,
so you have to apply every converter script again after restarting, quite
annoying.
This one fixed all above problems:
1. Real-time updating or custom interval millisecond level updating.
2. Low CPU cost, average 5%-10% or less.
3. Works as an indicator, so can be saved and reloaded during restart.
4. There is no one converter per chart limitation as it is not script
any more, you can only use one window as source to generate as many
new timeframe chart as possible.
5. Auto updating if there is new history block loaded.
II. How to use:
Copy the mq4 file to your MT4 indicators folder (experts\indicators)
to install it as an indicator, NOT script. then in the custom indicator
list, attach period_converter_opt to the chart you want.
It support 4 parameters:
PeriodMultiplier: new period multiplier factor, default is 2
UpdateInterval: update interval in milliseconds,
zero means update real-time. default is zero.
Enabled: You can disable it without remove it with this option.
Other parameters are comments or for debugging, it is safe to ignore them.
Also Make sure you have Allow Dll imports option checked in common tab or
it won't work
After that, File->Open Offline to open the generated offline data. then
the offline data will be updated automatically.
As long as you keep the source chart open and the converter indicator
running, the generated chart including indicators inside will always
be updated. also you can close the generated chart and open again
later from File->Open Offline without problem.
If you want to quit MT4, you can leave those offline chart as other
normal online charts. when you start MT4 next time, those charts will
also be loaded and updated.
III. Notes:
1. Do NOT uncheck the "offline chart" option in offline chart common properties.
or after MT4 restart, it will treat that chart as online chart and request
the data from server, resulting empty chart window.
2. You can attach more than one converter to same window with different
PeriodMultiplier, e.g: you can attach 3 converter with
PeriodMultiplier = 2, 4, 10 to M1 to generate M2, M4, M10 at the same time.
It is even ok to use the M1 chart to generate Hourly chart like H2, which
only cost a few more CPU resource during initial conversion. but usually
most server don't have much data for those short period. resulting the
generated data isn't long enough for long period. so it is suggested
to use Hourly/Daily charts as source when needed.
3. The real-time updating mode updates quotes as fast as possible, but as
this is done via script, and MT will skip calling start() function when
your PC is busy and lots of quotes income. anyway, this seldom happen,
and you can at least get 10 updates each seconds which is much more
than enough.
4. The offline chart don't have a bid line showing in chart, but all data
in the chart including the indicators is still being updated,
so don't worry. you can show the bid line by unclick the "offline chart"
option in chart properties. but which don't helps much and if you forget
to check "offline chart" option before exit. it will cause errors and
become empty on next startup. you have to close the window and open
again from File->Open offline, which don't worth the trouble.
IV. History:
2005.12.24 1.4 faster to detect if data changed by removing float point
operations, added support to output CSV file in real time.
OutputCSVFile = 0 means no CSV.
OutputCSVFile = 1 means CSV + HST
OutputCSVFile = 2 CSV only, no HST .
(useful if you want to generate CSV for builtin periods)
CSV Filename will be the same as HST file except the extension.
added safe checking for PeriodMultiplier.
2005.12.04 1.3 Fixed missing data when there is large amount of data
loaded in several blocks, and support auto updating
when new history is loaded.
2005.11.29 1.2 Additional fix for missing data and server changing.
2005.11.29 1.1 Fixed missing partial data after restart.
Reinitialize after changing server or data corrupted.
2005.11.28 1.0 Initial release
*/
extern double Version = 1.4; // code version
extern string BuildInfo = "2005.12.24 by wfy05@talkforex.com";
extern int PeriodMultiplier = 2; // new period multiplier factor
extern int OutputCSVFile = 0; // also output CSV file?
extern int UpdateInterval = 0; // update interval in milliseconds, zero means update real-time.
extern bool Enabled = true;
extern bool Debug = false;
int FileHandle = -1;
int CSVHandle = -1;
int NewPeriod = 0;
#define OUTPUT_HST_ONLY 0
#define OUTPUT_CSV_HST 1
#define OUTPUT_CSV_ONLY 2
#define CHART_CMD_UPDATE_DATA 33324
void DebugMsg(string msg)
{
if (Debug) Alert(msg);
}
int init()
{
//safe checking for PeriodMultiplier.
if (PeriodMultiplier <= 1) { //only output CSV file PeriodMultiplier = 1; OutputCSVFile = 2; } NewPeriod = Period() * PeriodMultiplier; if (OpenHistoryFile() < 0) return (-1); WriteHistoryHeader(); UpdateHistoryFile(Bars-1, true); UpdateChartWindow(); return (0); } void deinit() { //Close file handle if(FileHandle >= 0) {
FileClose(FileHandle);
FileHandle = -1;
}
if (CSVHandle >= 0) {
FileClose(CSVHandle);
CSVHandle = -1;
}
}
int OpenHistoryFile()
{
string name;
name = Symbol() + NewPeriod;
if (OutputCSVFile != OUTPUT_CSV_ONLY) {
FileHandle = FileOpenHistory(name + ".hst", FILE_BIN|FILE_WRITE);
if (FileHandle < 0) return(-1);
}
if (OutputCSVFile != OUTPUT_HST_ONLY) {
CSVHandle = FileOpen(name + ".csv", FILE_CSV|FILE_WRITE, ',');
if (CSVHandle < 0) return(-1);
}
return (0);
}
{
string c_copyright;
int i_digits = Digits;
int i_unused[13] = {0};
int version = 400;
c_copyright = "(C)opyright 2003, MetaQuotes Software Corp.";
FileWriteInteger(FileHandle, version, LONG_VALUE);
FileWriteString(FileHandle, c_copyright, 64);
FileWriteString(FileHandle, Symbol(), 12);
FileWriteInteger(FileHandle, NewPeriod, LONG_VALUE);
FileWriteInteger(FileHandle, i_digits, LONG_VALUE);
FileWriteInteger(FileHandle, 0, LONG_VALUE); //timesign
FileWriteInteger(FileHandle, 0, LONG_VALUE); //last_sync
FileWriteArray(FileHandle, i_unused, 0, ArraySize(i_unused));
return (0);
}
static double d_open, d_low, d_high, d_close, d_volume;
static int i_time;
void WriteHistoryData()
{
if (FileHandle >= 0) {
FileWriteInteger(FileHandle, i_time, LONG_VALUE);
FileWriteDouble(FileHandle, d_open, DOUBLE_VALUE);
FileWriteDouble(FileHandle, d_low, DOUBLE_VALUE);
FileWriteDouble(FileHandle, d_high, DOUBLE_VALUE);
FileWriteDouble(FileHandle, d_close, DOUBLE_VALUE);
FileWriteDouble(FileHandle, d_volume, DOUBLE_VALUE);
}
if (CSVHandle >= 0) {
int i_digits = Digits;
FileWrite(CSVHandle,
TimeToStr(i_time, TIME_DATE),
TimeToStr(i_time, TIME_MINUTES),
DoubleToStr(d_open, i_digits),
DoubleToStr(d_high, i_digits),
DoubleToStr(d_low, i_digits),
DoubleToStr(d_close, i_digits),
d_volume);
}
}
int UpdateHistoryFile(int start_pos, bool init = false)
{
static int last_fpos, csv_fpos;
int i, ps;
// if (FileHandle < 0) return (-1);
// normalize open time
ps = NewPeriod * 60;
i_time = Time[start_pos]/ps;
i_time *= ps;
if (init) {
//first time, init data
d_open = Open[start_pos];
d_low = Low[start_pos];
d_high = High[start_pos];
d_close = Close[start_pos];
d_volume = Volume[start_pos];
i = start_pos - 1;
if (FileHandle >= 0) last_fpos = FileTell(FileHandle);
if (CSVHandle >= 0) csv_fpos = FileTell(CSVHandle);
} else {
i = start_pos;
if (FileHandle >= 0) FileSeek(FileHandle,last_fpos,SEEK_SET);
if (CSVHandle >= 0) FileSeek(CSVHandle, csv_fpos, SEEK_SET);
}
if (i < 0) return (-1);
int cnt = 0;
int LastBarTime;
//processing bars
while (i >= 0) {
LastBarTime = Time[i];
//a new bar
if (LastBarTime >= i_time+ps) {
//write the bar data
WriteHistoryData();
cnt++;
i_time = LastBarTime/ps;
i_time *= ps;
d_open = Open[i];
d_low = Low[i];
d_high = High[i];
d_close = Close[i];
d_volume = Volume[i];
} else {
//no new bar
d_volume += Volume[i];
if (Low[i]
d_close = Close[i];
}
i--;
}
//record last_fpos before writing last bar.
if (FileHandle >= 0) last_fpos = FileTell(FileHandle);
if (CSVHandle >= 0) csv_fpos = FileTell(CSVHandle);
WriteHistoryData();
cnt++;
d_volume -= Volume[0];
//flush the data writen
if (FileHandle >= 0) FileFlush(FileHandle);
if (CSVHandle >= 0) FileFlush(CSVHandle);
return (cnt);
}
int UpdateChartWindow()
{
static int hwnd = 0;
if (FileHandle < 0) {
//no HST file opened, no need updating.
return (-1);
}
if(hwnd == 0) {
//trying to detect the chart window for updating
hwnd = WindowHandle(Symbol(), NewPeriod);
}
if(hwnd!= 0) {
if (IsDllsAllowed() == false) {
//DLL calls must be allowed
DebugMsg("Dll calls must be allowed");
return (-1);
}
if (PostMessageA(hwnd,WM_COMMAND,CHART_CMD_UPDATE_DATA,0) == 0) {
//PostMessage failed, chart window closed
hwnd = 0;
} else {
//PostMessage succeed
return (0);
}
}
//window not found or PostMessage failed
return (-1);
}
/*
int PerfCheck(bool Start)
{
static int StartTime = 0;
static int Index = 0;
if (Start) {
StartTime = GetTickCount();
Index = 0;
return (StartTime);
}
Index++;
int diff = GetTickCount() - StartTime;
Alert("Time used [" + Index + "]: " + diff);
StartTime = GetTickCount();
return (diff);
}
*/
static int LastStartTime = 0;
static int LastEndTime = 0;
static int LastBarCount = 0;
int reinit()
{
deinit();
init();
LastStartTime = Time[Bars-1];
LastEndTime = Time[0];
LastBarCount = Bars;
}
bool IsDataChanged()
{
/*
static int LastBars = 0, LastTime = 0, LastVolume = 0;
static double LastOpen = 0, LastClose = 0, LastHigh = 0, LastLow = 0;
if (LastVolume != Volume[0] || LastBars != Bars || LastTime != Time[0]||
LastClose != Close[0] || LastHigh != High[0] || LastLow != Low[0] ||
LastOpen != Open[0]) {
LastBars = Bars;
LastVolume = Volume[0];
LastTime = Time[0];
LastClose = Close[0];
LastHigh = High[0];
LastLow = Low[0];
LastOpen = Open[0];
return (true);
}
return (false);
*/
/*
fast version without float point operation
*/
static int LastBars = 0, LastTime = 0, LastVolume = 0;
bool ret;
ret = false;
if (LastVolume != Volume[0]) {
LastVolume = Volume[0];
ret = true;
}
if (LastTime != Time[0]) {
LastTime = Time[0];
ret = true;
}
if (LastBars != Bars) {
LastBars = Bars;
ret = true;
}
return (ret);
}
int CheckNewData()
{
static string LastServer = "";
if (Bars < 2) {
//the data is not loaded yet.
DebugMsg("Data not loaded, only " + Bars + " Bars");
return (-1);
}
string serv = ServerAddress();
if (serv == "") {
//no server yet
DebugMsg("No server connected");
return (-1);
}
//server changed? check this and reinit to prevent wrong data while changing server.
if (LastServer != serv) {
DebugMsg("Server changed from " + LastServer + " to " + serv);
LastServer = serv;
reinit();
return (-1);
}
if (!IsDataChanged()) {
//return if no data changed to save resource
//DebugMsg("No data changed");
return (-1);
}
if (Time[Bars-1] != LastStartTime) {
DebugMsg("Start time changed, new history loaded or server changed");
reinit();
return (-1);
}
int i, cnt;
//try to find LastEndTime bar, which should be Time[0] or Time[1] usually,
//so the operation is fast
for (i = 0; i < Bars; i++) {
if (Time[i] <= LastEndTime) {
break;
}
}
if (i >= Bars || Time[i] != LastEndTime) {
DebugMsg("End time " + TimeToStr(LastEndTime) + " not found");
reinit();
return (-1);
}
cnt = Bars - i;
if (cnt != LastBarCount) {
DebugMsg("Data loaded, cnt is " + cnt + " LastBarCount is " + LastBarCount);
reinit();
return (-1);
}
//no new data loaded, return with LastEndTime position.
LastBarCount = Bars;
LastEndTime = Time[0];
return (i);
}
//+------------------------------------------------------------------+
//| program start function |
//+------------------------------------------------------------------+
int start()
{
static int last_time = 0;
if (!Enabled) return (0);
//always update or update only after certain interval
if (UpdateInterval != 0) {
int cur_time;
cur_time = GetTickCount();
if (MathAbs(cur_time - last_time) < UpdateInterval) {
return (0);
}
last_time = cur_time;
}
//if (Debug) PerfCheck(true);
int n = CheckNewData();
//if (Debug) PerfCheck(false);
if (n < 0) return (0);
//update history file with new data
UpdateHistoryFile(n);
//refresh chart window
UpdateChartWindow();
//if (Debug) PerfCheck(false);
return(0);
}

次に、Costom Indicatorsにある「Period_Converter_Opt.mq4」をダブルクリックします。「パラメータの入力」のタブの「PeriodMultiplier」の項目を「10」にしてOKのボタンをクリックします。
「ファイル」から「オフラインチャート」を選びます。
オフライン・チャート一覧の画面が表示されますので、その中から「USDJPY,M10」を選んで「開く」のボタンをクリックします。
10分足のチャートが表示されました。なお、このチャートはオフラインチャートのため、リアルタイムでの更新はされません。
▼2時間足を表示する方法
2時間足も10分足と同じような操作で表示できます。
ここではUSD/JPYを例に挙げます。まず最初に、USD/JPYの1時間足のチャートを表示します。
次に、Costom Indicatorsにある「Period_Converter_Opt.mq4」をダブルクリックします。「パラメータの入力」のタブの「PeriodMultiplier」の項目を「2」にしてOKのボタンをクリックします。
「ファイル」から「オフラインチャート」を選びます。
オフライン・チャート一覧の画面が表示されますので、その中から「USDJPY,H2」を選んで「開く」のボタンをクリックします。
▼他の時間足の表示方法
分単位のチャートの場合には1分足を表示してから「Period_Converter_Opt.mq4」のパラメータを変更します。2分足なら「2」、3分足なら「3」を入力します。
時間単位のチャートの場合には1時間足を表示してから「Period_Converter_Opt.mq4」のパラメータを変更します。6時間足なら「6」、8時間足なら「8」、12時間足なら「12」を入力します。
2012年5月28日月曜日
FXの資源国通貨の特徴は
FX(外国為替証拠金取引)の資源国通貨とは、鉱物や農産物などの輸出により経済基盤を支えている国の通貨のことです。主な資源国通貨には、オーストラリアドル、ニュージーランドドル、カナダドル、ノルウェークローナ、南アフリカランド、ブラジルレアルなどが挙げられます。
資源国通貨の特徴は、原油や金などの商品市場の影響を受けやすいことが挙げられます。例えば、AUD/USDとWTI、金のそれぞれのレートを比較するとほぼ同じような動きであることがわかります。
上のグラフは、2007年1月の価格を100とした場合の価格の推移です。一時、WTIの価格が暴騰しましたが、それ以外は同じような動きをしていることがわかります。
資源国通貨の2つ目の特徴として、その国の金利が比較的高いことが挙げられます。2012年5月現在の金利は、南アフリカが5.5%、オーストラリアが3.75%、ニュージーランドが2.5%です。日本の0.1%、アメリカ合衆国の0.25%、ユーロの1%、イギリスの0.5%などと比べれば金利の高さがわかります。
資源国通貨の3つ目の特徴として、資源の輸入国の経済状況の影響を受けやすいことが挙げられます。
JETRO(ジェトロ、日本貿易振興機構)によれば、2010年のオーストラリアの最大輸出国は中国で、続いて日本、韓国と続きます。そして、中国への輸出額は、全輸出額の25.3%を占めています。オーストラリアの中国への輸出の依存度の高いことがわかります。
下のグラフは、2007年1月の中国のGDP、EUR/USD、AUD/USDをそれぞれ100とした場合の推移です。
中国のGDPの伸びと、AUD/USDの伸びが同じような動きをしていることがわかります。これは、オーストラリアドルが中国の景気に支えられて上昇していることになります。
一方、EUR/USDは、中国のGDPの伸びとは異なる動きをしています。ユーロ圏の中国への依存度の低さがわかります。
資源国通貨の特徴は、原油や金などの商品市場の影響を受けやすいことが挙げられます。例えば、AUD/USDとWTI、金のそれぞれのレートを比較するとほぼ同じような動きであることがわかります。
上のグラフは、2007年1月の価格を100とした場合の価格の推移です。一時、WTIの価格が暴騰しましたが、それ以外は同じような動きをしていることがわかります。
資源国通貨の2つ目の特徴として、その国の金利が比較的高いことが挙げられます。2012年5月現在の金利は、南アフリカが5.5%、オーストラリアが3.75%、ニュージーランドが2.5%です。日本の0.1%、アメリカ合衆国の0.25%、ユーロの1%、イギリスの0.5%などと比べれば金利の高さがわかります。
資源国通貨の3つ目の特徴として、資源の輸入国の経済状況の影響を受けやすいことが挙げられます。
JETRO(ジェトロ、日本貿易振興機構)によれば、2010年のオーストラリアの最大輸出国は中国で、続いて日本、韓国と続きます。そして、中国への輸出額は、全輸出額の25.3%を占めています。オーストラリアの中国への輸出の依存度の高いことがわかります。
下のグラフは、2007年1月の中国のGDP、EUR/USD、AUD/USDをそれぞれ100とした場合の推移です。
中国のGDPの伸びと、AUD/USDの伸びが同じような動きをしていることがわかります。これは、オーストラリアドルが中国の景気に支えられて上昇していることになります。
一方、EUR/USDは、中国のGDPの伸びとは異なる動きをしています。ユーロ圏の中国への依存度の低さがわかります。
FXの為替レートを変動させるロンドンフィキシングとは
ロンドンフィキシング(London Fixing)とは、マーケットメイカーがイギリスのロコ・ロンドン金市場で金の値決めをすることです。ロコ・ロンドン金市場は、世界各国のマーケットメイカーの集まる最大級の市場で、ロコ・ロンドン金市場で値決めされた金の価格が、その日の世界各地の金市場での取引の基準価格になります。
ロンドンフィキシングは、16時(日本時間の0時)に行われます。ロンドンフィキシングにより金の価格が決まると、金の引き渡しや受け取りが行われます。その際の決済通貨として米ドルが用いられます。マーケットメイカーは、金の受け取りのために米ドルを外国為替市場から調達します。その結果、米ドル通貨を中心にFX(外国為替証拠金取引)の為替レートが大きく変動することがあります。
次の表は、2000年1月から2012年5月までのEUR/USDの出来高の合計を1時間ごとに区切ったものです。ロンドンフィキシングの時間帯での出来高の多いことがわかります。
ロンドンフィキシングは、16時(日本時間の0時)に行われます。ロンドンフィキシングにより金の価格が決まると、金の引き渡しや受け取りが行われます。その際の決済通貨として米ドルが用いられます。マーケットメイカーは、金の受け取りのために米ドルを外国為替市場から調達します。その結果、米ドル通貨を中心にFX(外国為替証拠金取引)の為替レートが大きく変動することがあります。
次の表は、2000年1月から2012年5月までのEUR/USDの出来高の合計を1時間ごとに区切ったものです。ロンドンフィキシングの時間帯での出来高の多いことがわかります。
| 時間 | 出来高 |
|---|---|
| 00:00 | 1675349 |
| 01:00 | 2200543 |
| 02:00 | 2604648 |
| 03:00 | 2497207 |
| 04:00 | 2223181 |
| 05:00 | 2080654 |
| 06:00 | 2297472 |
| 07:00 | 2794548 |
| 08:00 | 4060563 |
| 09:00 | 4537216 |
| 10:00 | 4352704 |
| 11:00 | 4140271 |
| 12:00 | 3884709 |
| 13:00 | 3975074 |
| 14:00 | 4715303 |
| 15:00 | 4976302 |
| 16:00 | 5116047 |
| 17:00 | 4536795 |
| 18:00 | 3548792 |
| 19:00 | 3072010 |
| 20:00 | 2887988 |
| 21:00 | 2518386 |
| 22:00 | 1889465 |
| 23:00 | 1329070 |
タグ:
FX,
ロンドンフィキシング
FXの仲値とは
FX(外国為替証拠金取引)の仲値とは、銀行などの金融機関が、顧客との取引の際に用いる為替レートのことです。仲値は、TTM(Telegraphic Transfer Middle Rate)とも呼ばれます。
仲値は、金融機関が外国為替市場の為替レートを参考にして決定し、午前9時55分頃に発表されます。
顧客が円貨を外貨に両替する時は、仲値に為替手数料を上乗せした為替レートになります。これを、電信売相場(Telegraphic Transfer Selling Rate、TTS)といいます。また、顧客が外貨を円貨に両替する時は、仲値から為替手数料を差し引いた為替レートになります。これを、電信買相場(Telegraphic Transfer Buying Rate、TTB)といいます。為替手数料は米ドルの場合には1円であることが多いようです。
例えば、USD/JPYの仲値が79.50円なら、TTSは80.50円、TTBは78.50円になります。ちなみにユーロは1.4円前後、ポンドは4円前後の為替手数料がかかります(2012年5月現在)。
日本の輸入企業では、取引先への支払いをドル建てで決済する場合が多く、決済日(5のつく日や10のつく日、いわゆる五十日、ゴトー日)に円をドルに両替します。そのため決済日になると金融機関の保有するドルが不足することがあります。これを「仲値不足」と呼び、金融機関は仲値不足の解消のため外国為替市場を通じてドルを購入します。これによりドル通貨が買われ、USD/JPYなどは円安へ推移します。
下のチャートは、2012年5月25日のUSD/JPYの1分足です。赤色の四角で囲んだ部分は、午前9時から午前9時55分までの推移です。金融機関の仲値不足によるドル買いが進んでことがわかります。
関連サイト:
店頭・電話で外貨預金等のお手続きをする場合の外国為替相場 - 三井住友銀行
仲値は、金融機関が外国為替市場の為替レートを参考にして決定し、午前9時55分頃に発表されます。
顧客が円貨を外貨に両替する時は、仲値に為替手数料を上乗せした為替レートになります。これを、電信売相場(Telegraphic Transfer Selling Rate、TTS)といいます。また、顧客が外貨を円貨に両替する時は、仲値から為替手数料を差し引いた為替レートになります。これを、電信買相場(Telegraphic Transfer Buying Rate、TTB)といいます。為替手数料は米ドルの場合には1円であることが多いようです。
例えば、USD/JPYの仲値が79.50円なら、TTSは80.50円、TTBは78.50円になります。ちなみにユーロは1.4円前後、ポンドは4円前後の為替手数料がかかります(2012年5月現在)。
日本の輸入企業では、取引先への支払いをドル建てで決済する場合が多く、決済日(5のつく日や10のつく日、いわゆる五十日、ゴトー日)に円をドルに両替します。そのため決済日になると金融機関の保有するドルが不足することがあります。これを「仲値不足」と呼び、金融機関は仲値不足の解消のため外国為替市場を通じてドルを購入します。これによりドル通貨が買われ、USD/JPYなどは円安へ推移します。
下のチャートは、2012年5月25日のUSD/JPYの1分足です。赤色の四角で囲んだ部分は、午前9時から午前9時55分までの推移です。金融機関の仲値不足によるドル買いが進んでことがわかります。
関連サイト:
店頭・電話で外貨預金等のお手続きをする場合の外国為替相場 - 三井住友銀行
FXのペイオフレシオとは
FX(外国為替証拠金取引)のペイオフレシオ(payoff ratio)とは、FXでの取引における利益率のことです。ペイオフレシオは、リスクリワードレシオ(risk reward ratio)ともいいます。
ペイオフレシオは、過去の投資方法の検証や投資ルールを作るために用いられます。
ペイオフレシオは次の計算式で求めることができます。
1回あたりの利益幅÷1回あたりの損失幅
例えば5回のトレードの損益が上のような結果だった場合のペイオフレシオは、次のように計算します。
・1回あたりの利益幅
(10,000+20,000)÷2=15,000
・1回あたりの損失幅
(5,000+15,000+4,000)÷3=8,000
ペイオフレシオ=15,000÷8,000=1.875
ペイオフレシオが1より大きい場合は、投資方法の大きな修正は必要ないと考えてよいでしょう。上の例では、5回のトレードのうちプラスが2回、マイナスが3回でした。勝率は40%なのでやや低いと思われがちですが、ペイオフレシオが1を上回っているため収支はプラスになります。
ペイオフレシオが1未満であれば損失幅が利益幅を上回っていることになりますので、投資方法の修正が必要と考えます。
過去の投資方法の検証や投資ルールを作る時に、ペイオフレシオに加えて勝率を併用することがあります。勝率は、
プラスのトレード回数÷総トレード回数×100%
で求めることができます。
例えば、過去の検証結果から勝率70%のトレード方法を見つけたとします。しかし、ペイオフレシオが0.4であれば、収支は次のような結果になります。
・利益幅をP、損失幅をLとします。
・P、Lは正の数とします。
(P÷7)÷(L÷3)=0.4
3P÷7L=0.4
3P=2.8L
P=0.933L
このことから
P<L
になり、損失幅が利益幅を上回ることがわかります。
このように勝率が高くても、ペイオフレシオが小さければ収支がマイナスになることもあります。
ペイオフレシオは、過去の投資方法の検証や投資ルールを作るために用いられます。
ペイオフレシオは次の計算式で求めることができます。
1回あたりの利益幅÷1回あたりの損失幅
| 回数 | 損益 |
|---|---|
| 1回目 | +10,000円 |
| 2回目 | -5,000円 |
| 3回目 | -15,000円 |
| 4回目 | +20,000円 |
| 5回目 | -4,000円 |
例えば5回のトレードの損益が上のような結果だった場合のペイオフレシオは、次のように計算します。
・1回あたりの利益幅
(10,000+20,000)÷2=15,000
・1回あたりの損失幅
(5,000+15,000+4,000)÷3=8,000
ペイオフレシオ=15,000÷8,000=1.875
ペイオフレシオが1より大きい場合は、投資方法の大きな修正は必要ないと考えてよいでしょう。上の例では、5回のトレードのうちプラスが2回、マイナスが3回でした。勝率は40%なのでやや低いと思われがちですが、ペイオフレシオが1を上回っているため収支はプラスになります。
ペイオフレシオが1未満であれば損失幅が利益幅を上回っていることになりますので、投資方法の修正が必要と考えます。
過去の投資方法の検証や投資ルールを作る時に、ペイオフレシオに加えて勝率を併用することがあります。勝率は、
プラスのトレード回数÷総トレード回数×100%
で求めることができます。
例えば、過去の検証結果から勝率70%のトレード方法を見つけたとします。しかし、ペイオフレシオが0.4であれば、収支は次のような結果になります。
・利益幅をP、損失幅をLとします。
・P、Lは正の数とします。
(P÷7)÷(L÷3)=0.4
3P÷7L=0.4
3P=2.8L
P=0.933L
このことから
P<L
になり、損失幅が利益幅を上回ることがわかります。
このように勝率が高くても、ペイオフレシオが小さければ収支がマイナスになることもあります。
FXのパリティとは
FX(外国為替証拠金取引)のパリティ(parity)とは、通貨ペアの為替レートが1になることです。パリティは、日本語では「等価」といいます。
パリティは、通貨ペアの為替レートが1を挟んで推移している場合、1を上回ったら「パリティ超え」といい、1を下回ったら「パリティ割れ」といいます。FXの相場では、パリティを1つの境界線として捉え、パリティ超え、パリティ割れを意識した値動きをすることがあります。
次は、AUD/CAD(オーストラリアドル/カナダドル)のチャートです。黄色い線がパリティです。
次の表は、2012年5月25日現在のパリティに近い通貨ペアの一覧です。
パリティは、通貨ペアの為替レートが1を挟んで推移している場合、1を上回ったら「パリティ超え」といい、1を下回ったら「パリティ割れ」といいます。FXの相場では、パリティを1つの境界線として捉え、パリティ超え、パリティ割れを意識した値動きをすることがあります。
次は、AUD/CAD(オーストラリアドル/カナダドル)のチャートです。黄色い線がパリティです。
次の表は、2012年5月25日現在のパリティに近い通貨ペアの一覧です。
| 通貨ペア | 2012年5月25日 現在の為替レート |
|---|---|
| AUD/CAD | 1.00402 |
| AUD/CHF | 0.93572 |
| AUD/EUR | 0.77916 |
| AUD/GBP | 0.62239 |
| AUD/NZD | 1.29391 |
| AUD/SGD | 1.24894 |
| AUD/USD | 0.97514 |
| CAD/CHF | 0.93176 |
| CAD/USD | 0.97088 |
| CHF/AUD | 1.06646 |
| CHF/SGD | 1.33446 |
| CHF/USD | 1.04168 |
| EUR/AUD | 1.28232 |
| EUR/CAD | 1.28824 |
| EUR/CHF | 1.20092 |
| EUR/GBP | 0.79865 |
| EUR/USD | 1.25140 |
| GBP/EUR | 1.25129 |
| GBP/NOK | 9.4262 |
| DKK/ZAR | 1.4148 |
| NZD/TRY | 1.3916 |
| USD/JOD | 0.7107 |
FXの通貨ペアの急騰と急落
FX(外国為替証拠金取引)の通貨ペアの価格は、経済指標や政策金利の変更、政情不安などにより急騰したり急落したりします。
過去の対円通貨での大きな下げは何度かありましたが、1998年10月7日と1998年10月8日の2日間は特に大きな下げがありました。下げの原因は、アメリカ合衆国のヘッジファンド「LTCM」の経営危機説やロシアの通貨危機などによるものです。
その日は、USD/JPYでは、1日に130円80銭の高値と118円85銭の安値をつけています。その差は11円95銭にもなります。もし、高値で1万通貨の買いエントリーをしていたら、最大で11万9,500円の損失が発生したことになります。逆に、高値で1万通貨の売りエントリーをしていたら、最大で11万9,500円の利益が発生したことになります。
以下は、対円通貨のUSD/JPY、EUR/JPY、GBP/JPYの3つの通貨の急騰と急落の記録です。
なお、日付と始値、終値はニューヨーク時間が基準になっています。
▼USD/JPY
・1998年10月7日頃のUSD/JPYのチャート
▼EUR/JPY
・1998年10月7日頃のEUR/JPYのチャート
▼GBP/JPY
・1998年10月7日頃のGBP/JPYのチャート
過去の対円通貨での大きな下げは何度かありましたが、1998年10月7日と1998年10月8日の2日間は特に大きな下げがありました。下げの原因は、アメリカ合衆国のヘッジファンド「LTCM」の経営危機説やロシアの通貨危機などによるものです。
その日は、USD/JPYでは、1日に130円80銭の高値と118円85銭の安値をつけています。その差は11円95銭にもなります。もし、高値で1万通貨の買いエントリーをしていたら、最大で11万9,500円の損失が発生したことになります。逆に、高値で1万通貨の売りエントリーをしていたら、最大で11万9,500円の利益が発生したことになります。
以下は、対円通貨のUSD/JPY、EUR/JPY、GBP/JPYの3つの通貨の急騰と急落の記録です。
なお、日付と始値、終値はニューヨーク時間が基準になっています。
▼USD/JPY
| 日付 | 始値 | 高値 | 安値 | 終値 | 高値-安値 |
|---|---|---|---|---|---|
| 1988/01/05 | 123.250 | 128.450 | 122.950 | 128.350 | 5.500 |
| 1988/01/06 | 128.300 | 131.900 | 126.800 | 129.450 | 5.100 |
| 1988/01/15 | 126.100 | 131.250 | 126.100 | 131.150 | 5.150 |
| 1989/06/15 | 149.500 | 151.900 | 145.300 | 146.000 | 6.600 |
| 1990/08/02 | 147.400 | 151.650 | 146.500 | 149.400 | 5.150 |
| 1991/01/17 | 136.890 | 137.890 | 132.100 | 132.340 | 5.790 |
| 1993/08/19 | 101.590 | 106.800 | 101.000 | 105.800 | 5.800 |
| 1994/02/14 | 106.050 | 106.550 | 101.100 | 102.250 | 5.450 |
| 1995/09/21 | 102.750 | 103.050 | 97.200 | 99.170 | 5.850 |
| 1997/12/17 | 130.860 | 131.600 | 125.700 | 127.150 | 5.900 |
| 1998/06/17 | 143.350 | 144.190 | 136.000 | 136.780 | 8.190 |
| 1998/09/01 | 139.160 | 139.950 | 134.930 | 136.740 | 5.020 |
| 1998/09/09 | 131.700 | 138.600 | 130.450 | 136.000 | 8.150 |
| 1998/09/11 | 135.100 | 135.100 | 129.100 | 130.680 | 6.000 |
| 1998/10/07 | 130.300 | 130.800 | 118.850 | 121.980 | 11.950 |
| 1998/10/08 | 122.000 | 123.550 | 111.650 | 118.280 | 11.900 |
| 2008/10/24 | 97.990 | 97.990 | 90.920 | 94.290 | 7.070 |
| 2008/10/28 | 93.290 | 99.680 | 92.650 | 98.210 | 7.030 |
| 2010/05/06 | 93.957 | 93.972 | 88.254 | 90.854 | 5.718 |
・1998年10月7日頃のUSD/JPYのチャート
▼EUR/JPY
| 日付 | 始値 | 高値 | 安値 | 終値 | 高値-安値 |
|---|---|---|---|---|---|
| 1993/08/19 | 118.330 | 123.320 | 117.610 | 122.500 | 5.710 |
| 1995/04/10 | 118.720 | 118.750 | 112.310 | 116.180 | 6.440 |
| 1997/12/17 | 143.540 | 144.410 | 139.030 | 140.130 | 5.380 |
| 1998/06/17 | 155.760 | 156.750 | 149.030 | 149.650 | 7.720 |
| 1998/08/28 | 154.590 | 158.010 | 152.670 | 157.670 | 5.340 |
| 1998/09/09 | 148.920 | 155.920 | 147.780 | 155.030 | 8.140 |
| 1998/09/11 | 155.250 | 155.820 | 150.560 | 151.050 | 5.260 |
| 1998/10/07 | 156.510 | 156.520 | 145.020 | 146.910 | 11.500 |
| 1998/10/08 | 147.350 | 149.870 | 136.450 | 141.780 | 13.420 |
| 1999/01/12 | 125.430 | 130.340 | 124.810 | 130.210 | 5.530 |
| 2007/08/16 | 156.060 | 156.510 | 150.040 | 153.650 | 6.470 |
| 2007/08/17 | 153.710 | 155.280 | 149.270 | 154.110 | 6.010 |
| 2008/09/04 | 156.870 | 157.760 | 151.340 | 151.640 | 6.420 |
| 2008/09/08 | 156.700 | 156.990 | 151.670 | 152.690 | 5.320 |
| 2008/09/29 | 154.240 | 155.090 | 149.860 | 149.900 | 5.230 |
| 2008/10/06 | 143.050 | 143.740 | 135.040 | 136.930 | 8.700 |
| 2008/10/15 | 139.110 | 139.320 | 133.980 | 134.460 | 5.340 |
| 2008/10/21 | 136.090 | 136.390 | 130.610 | 131.010 | 5.780 |
| 2008/10/22 | 131.030 | 131.480 | 124.630 | 125.700 | 6.850 |
| 2008/10/24 | 127.070 | 127.090 | 113.800 | 118.960 | 13.290 |
| 2008/10/27 | 117.190 | 119.380 | 113.640 | 116.140 | 5.740 |
| 2008/10/28 | 116.180 | 127.280 | 114.410 | 125.850 | 12.870 |
| 2008/10/29 | 125.840 | 126.990 | 121.410 | 126.130 | 5.580 |
| 2008/10/30 | 126.120 | 131.030 | 124.780 | 126.960 | 6.250 |
| 2008/10/31 | 126.980 | 127.530 | 122.240 | 125.300 | 5.290 |
| 2008/11/04 | 124.910 | 130.980 | 123.420 | 129.670 | 7.560 |
| 2008/11/12 | 122.130 | 123.850 | 117.680 | 117.890 | 6.170 |
| 2008/11/13 | 117.880 | 126.020 | 117.740 | 124.890 | 8.280 |
| 2008/11/19 | 122.480 | 124.300 | 119.230 | 119.670 | 5.070 |
| 2008/11/24 | 121.000 | 126.250 | 119.540 | 125.690 | 6.710 |
| 2008/12/18 | 125.800 | 131.000 | 125.650 | 127.770 | 5.350 |
| 2009/01/21 | 115.370 | 117.180 | 112.100 | 116.760 | 5.080 |
| 2009/02/24 | 120.000 | 124.760 | 119.370 | 124.510 | 5.390 |
| 2010/05/06 | 120.414 | 120.708 | 110.690 | 114.718 | 10.018 |
| 2010/05/07 | 114.720 | 118.726 | 113.631 | 116.782 | 5.095 |
| 2011/03/16 | 112.860 | 113.475 | 106.574 | 109.186 | 6.901 |
・1998年10月7日頃のEUR/JPYのチャート
▼GBP/JPY
| 日付 | 始値 | 高値 | 安値 | 終値 | 高値-安値 |
|---|---|---|---|---|---|
| 1998/06/17 | 236.060 | 238.140 | 226.750 | 227.660 | 11.390 |
| 1998/09/09 | 218.660 | 228.930 | 215.940 | 226.590 | 12.990 |
| 1998/10/07 | 219.250 | 220.090 | 208.130 | 208.290 | 11.960 |
| 1998/10/08 | 207.780 | 209.930 | 193.280 | 202.600 | 16.650 |
| 1999/09/14 | 178.060 | 179.010 | 168.950 | 170.190 | 10.060 |
| 2007/08/16 | 230.880 | 231.690 | 221.480 | 226.860 | 10.210 |
| 2008/10/06 | 184.810 | 185.750 | 174.040 | 177.010 | 11.710 |
| 2008/10/22 | 167.530 | 167.940 | 157.720 | 158.810 | 10.220 |
| 2008/10/24 | 159.800 | 159.820 | 139.020 | 150.140 | 20.800 |
| 2008/10/28 | 144.820 | 159.540 | 142.870 | 157.390 | 16.670 |
| 2008/11/12 | 150.100 | 151.760 | 140.280 | 140.550 | 11.480 |
| 2010/05/06 | 141.863 | 142.268 | 130.006 | 134.222 | 12.262 |
・1998年10月7日頃のGBP/JPYのチャート
FXの通貨ペアの値幅一覧
FX(外国為替証拠金取引)の値幅とは、通貨ペアが値上がり、あるいは、値下がりする際の最小の為替レートのことです。例えば、USD/JPYの値幅は0.001円です。USD/JPYが1ドル79.595円の場合、値上がりするならば79.596円以上、値下がりするなら79.594円以下の値がつきます。値幅は通貨ペアにより異なり、EUR/USDの値幅は0.00001ドルになります。
通貨ペアには株式市場のようなストップ高やストップ安のような値幅制限はありません。しかし、外国為替市場に参加しているマーケットメイカーにより価格の均衡が保たれています。
次の表は、各通貨ペアの値幅の一覧です。
▼各通貨ペアの値幅一覧
通貨ペアには株式市場のようなストップ高やストップ安のような値幅制限はありません。しかし、外国為替市場に参加しているマーケットメイカーにより価格の均衡が保たれています。
次の表は、各通貨ペアの値幅の一覧です。
▼各通貨ペアの値幅一覧
| 通貨ペア | 日本語読み | 値幅 |
|---|---|---|
| AUD/CAD | 豪ドル/カナダドル | 0.00001 |
| AUD/CHF | 豪ドル/スイスフラン | 0.00001 |
| AUD/CZK | 豪ドル/チェココルナ | 0.001 |
| AUD/DKK | 豪ドル/デンマーククローネ | 0.0001 |
| AUD/EUR | 豪ドル/ユーロ | 0.00001 |
| AUD/GBP | 豪ドル/英ポンド | 0.00001 |
| AUD/HUF | 豪ドル/ハンガリーフォリント | 0.01 |
| AUD/JPY | 豪ドル/円 | 0.001 |
| AUD/MXN | 豪ドル/メキシコペソ | 0.0001 |
| AUD/NOK | 豪ドル/ノルウェークローネ | 0.0001 |
| AUD/NZD | 豪ドル/ニュージーランドドル | 0.00001 |
| AUD/PLN | 豪ドル/ポーランドズロチ | 0.0001 |
| AUD/SEK | 豪ドル/スウェーデンクローナ | 0.0001 |
| AUD/SGD | 豪ドル/シンガポールドル | 0.00001 |
| AUD/TRY | 豪ドル/トルコリラ | 0.0001 |
| AUD/USD | 豪ドル/米ドル | 0.00001 |
| AUD/ZAR | 豪ドル/南アフリカランド | 0.00001 |
| CAD/CHF | カナダドル/スイスフラン | 0.00001 |
| CAD/JPY | カナダドル/円 | 0.001 |
| CAD/MXN | カナダドル/メキシコペソ | 0.0001 |
| CAD/NOK | カナダドル/ノルウェークローネ | 0.00001 |
| CAD/PLN | カナダドル/ポーランドズロチ | 0.0001 |
| CAD/SEK | カナダドル/スウェーデンクローナ | 0.0001 |
| CAD/TRY | カナダドル/トルコリラ | 0.00001 |
| CAD/USD | カナダドル/米ドル | 0.00001 |
| CHF/AUD | スイスフラン/豪ドル | 0.00001 |
| CHF/CZK | スイスフラン/チェココルナ | 0.001 |
| CHF/DKK | スイスフラン/デンマーククローネ | 0.0001 |
| CHF/HUF | スイスフラン/ハンガリーフォリント | 0.001 |
| CHF/JPY | スイスフラン/円 | 0.001 |
| CHF/MXN | スイスフラン/メキシコペソ | 0.0001 |
| CHF/NOK | スイスフラン/ノルウェークローネ | 0.00001 |
| CHF/PLN | スイスフラン/ポーランドズロチ | 0.00001 |
| CHF/SEK | スイスフラン/スウェーデンクローナ | 0.00001 |
| CHF/TRY | スイスフラン/トルコリラ | 0.00001 |
| CHF/USD | スイスフラン/米ドル | 0.00001 |
| CHF/ZAR | スイスフラン/南アフリカランド | 0.0001 |
| CZK/PLN | チェココルナ/ポーランドズロチ | 0.00001 |
| DKK/CZK | デンマーククローネ/チェココルナ | 0.0001 |
| DKK/HUF | デンマーククローネ/ハンガリーフォリント | 0.01 |
| DKK/JPY | デンマーククローネ/円 | 0.001 |
| DKK/PLN | デンマーククローネ/ポーランドズロチ | 0.0001 |
| DKK/SGD | デンマーククローネ/シンガポールドル | 0.0001 |
| DKK/ZAR | デンマーククローネ/南アフリカランド | 0.0001 |
| EUR/AUD | ユーロ/豪ドル | 0.00001 |
| EUR/CAD | ユーロ/カナダドル | 0.00001 |
| EUR/CHF | ユーロ/スイスフラン | 0.00001 |
| EUR/CZK | ユーロ/チェココルナ | 0.0001 |
| EUR/DKK | ユーロ/デンマーククローネ | 0.00001 |
| EUR/GBP | ユーロ/英ポンド | 0.00001 |
| EUR/HKD | ユーロ/香港ドル | 0.00001 |
| EUR/HUF | ユーロ/ハンガリーフォリント | 0.01 |
| EUR/JPY | ユーロ/円 | 0.001 |
| EUR/LTL | ユーロ/リトアニアリタス | 0.0001 |
| EUR/MXN | ユーロ/メキシコペソ | 0.00001 |
| EUR/NOK | ユーロ/ノルウェークローネ | 0.0001 |
| EUR/NZD | ユーロ/ニュージーランドドル | 0.00001 |
| EUR/PLN | ユーロ/ポーランドズロチ | 0.00001 |
| EUR/RON | ユーロ/ルーマニアレウ | 0.0001 |
| EUR/RUB | ユーロ/ロシアルーブル | 0.0001 |
| EUR/SEK | ユーロ/スウェーデンクローナ | 0.00001 |
| EUR/SGD | ユーロ/シンガポールドル | 0.00001 |
| EUR/TRY | ユーロ/トルコリラ | 0.00001 |
| EUR/USD | ユーロ/米ドル | 0.00001 |
| EUR/ZAR | ユーロ/南アフリカランド | 0.00001 |
| GBP/AUD | 英ポンド/豪ドル | 0.00001 |
| GBP/CAD | 英ポンド/カナダドル | 0.00001 |
| GBP/CHF | 英ポンド/スイスフラン | 0.00001 |
| GBP/CZK | 英ポンド/チェココルナ | 0.0001 |
| GBP/DKK | 英ポンド/デンマーククローネ | 0.0001 |
| GBP/EUR | 英ポンド/ユーロ | 0.00001 |
| GBP/HUF | 英ポンド/ハンガリーフォリント | 0.001 |
| GBP/ILS | 英ポンド/イスラエルシュケル | 0.0001 |
| GBP/JPY | 英ポンド/円 | 0.001 |
| GBP/MXN | 英ポンド/メキシコペソ | 0.01 |
| GBP/NOK | 英ポンド/ノルウェークローネ | 0.0001 |
| GBP/NZD | 英ポンド/ニュージーランドドル | 0.00001 |
| GBP/PLN | 英ポンド/ポーランドズロチ | 0.00001 |
| GBP/SEK | 英ポンド/スウェーデンクローナ | 0.0001 |
| GBP/SGD | 英ポンド/シンガポールドル | 0.0001 |
| GBP/TRY | 英ポンド/トルコリラ | 0.00001 |
| GBP/USD | 英ポンド/米ドル | 0.00001 |
| GBP/ZAR | 英ポンド/南アフリカランド | 0.0001 |
| HKD/JPY | 香港ドル/円 | 0.0001 |
| HUF/JPY | ハンガリーフォリント/円 | 0.0001 |
| JPY/DKK | 円/デンマーククローネ | 0.000001 |
| JPY/NOK | 円/ノルウェークローネ | 0.000001 |
| JPY/USD | 円/米ドル | 0.0000001 |
| MXN/JPY | メキシコペソ/円 | 0.001 |
| NOK/DKK | ノルウェークローネ/デンマーククローネ | 0.00001 |
| NOK/JPY | ノルウェークローネ/円 | 0.0001 |
| NOK/SEK | ノルウェークローネ/スウェーデンクローナ | 0.00001 |
| NOK/USD | ノルウェークローネ/米ドル | 0.000001 |
| NZD/AUD | ニュージーランドドル/豪ドル | 0.00001 |
| NZD/CAD | ニュージーランドドル/カナダドル | 0.00001 |
| NZD/CHF | ニュージーランドドル/スイスフラン | 0.00001 |
| NZD/CZK | ニュージーランドドル/チェココルナ | 0.0001 |
| NZD/DKK | ニュージーランドドル/デンマーククローネ | 0.0001 |
| NZD/EUR | ニュージーランドドル/ユーロ | 0.00001 |
| NZD/GBP | ニュージーランドドル/英ポンド | 0.00001 |
| NZD/HUF | ニュージーランドドル/ハンガリーフォリント | 0.01 |
| NZD/JPY | ニュージーランドドル/円 | 0.001 |
| NZD/MXN | ニュージーランドドル/メキシコペソ | 0.0001 |
| NZD/NOK | ニュージーランドドル/ノルウェークローネ | 0.0001 |
| NZD/PLN | ニュージーランドドル/ポーランドズロチ | 0.0001 |
| NZD/SEK | ニュージーランドドル/スウェーデンクローナ | 0.0001 |
| NZD/SGD | ニュージーランドドル/シンガポールドル | 0.00001 |
| NZD/TRY | ニュージーランドドル/トルコリラ | 0.0001 |
| NZD/USD | ニュージーランドドル/米ドル | 0.00001 |
| NZD/ZAR | ニュージーランドドル/南アフリカランド | 0.0001 |
| PLN/DKK | ポーランドズロチ/デンマーククローネ | 0.0001 |
| PLN/HUF | ポーランドズロチ/ハンガリーフォリント | 0.001 |
| PLN/JPY | ポーランドズロチ/円 | 0.001 |
| PLN/SEK | ポーランドズロチ/スウェーデンクローナ | 0.0001 |
| SEK/DKK | スウェーデンクローナ/デンマーククローネ | 0.0001 |
| SEK/JPY | スウェーデンクローナ/円 | 0.0001 |
| SEK/NOK | スウェーデンクローナ/ノルウェークローネ | 0.00001 |
| SEK/PLN | スウェーデンクローナ/ポーランドズロチ | 0.0001 |
| SGD/HKD | シンガポールドル/香港ドル | 0.0001 |
| SGD/JPY | シンガポールドル/円 | 0.001 |
| TRY/DKK | トルコリラ/デンマーククローネ | 0.0001 |
| TRY/JPY | トルコリラ/円 | 0.01 |
| TRY/ZAR | トルコリラ/南アフリカランド | 0.0001 |
| USD/AED | 米ドル/アラブディルハム | 0.0001 |
| USD/BHD | 米ドル/バーレーンディナール | 0.00001 |
| USD/CAD | 米ドル/カナダドル | 0.00001 |
| USD/CHF | 米ドル/スイスフラン | 0.00001 |
| USD/CNH | 米ドル/中国元 | 0.0001 |
| USD/CZK | 米ドル/チェココルナ | 0.0001 |
| USD/DKK | 米ドル/デンマーククローネ | 0.00001 |
| USD/HKD | 米ドル/香港ドル | 0.00001 |
| USD/HUF | 米ドル/ハンガリーフォリント | 0.01 |
| USD/ILS | 米ドル/イスラエルシュケル | 0.0001 |
| USD/JOD | 米ドル/ヨルダンディナール | 0.0001 |
| USD/JPY | 米ドル/円 | 0.001 |
| USD/KWD | 米ドル/クェートディナール | 0.00001 |
| USD/LTL | 米ドル/リトアニアリタス | 0.0001 |
| USD/MXN | 米ドル/メキシコペソ | 0.0001 |
| USD/NOK | 米ドル/ノルウェークローネ | 0.00001 |
| USD/OMR | 米ドル/オマーンリアル | 0.00001 |
| USD/PLN | 米ドル/ポーランドズロチ | 0.00001 |
| USD/QAR | 米ドル/カタールリヤル | 0.0001 |
| USD/RON | 米ドル/ルーマニアレウ | 0.00001 |
| USD/RUB | 米ドル/ロシアルーブル | 0.0001 |
| USD/SAR | 米ドル/サウジリヤル | 0.0001 |
| USD/SEK | 米ドル/スウェーデンクローナ | 0.00001 |
| USD/SGD | 米ドル/シンガポールドル | 0.00001 |
| USD/THB | 米ドル/タイバーツ | 0.001 |
| USD/TRY | 米ドル/トルコリラ | 0.00001 |
| USD/ZAR | 米ドル/南アフリカランド | 0.00001 |
| ZAR/JPY | 南アフリカランド/円 | 0.001 |
登録:
投稿 (Atom)













