MT4で1.00000や100.000といったラウンドナンバーに水平ラインを手動で引くのは、意外と手間がかかりますよね。
こうした「節目の価格」は多くのトレーダーが意識するため、サポート・レジスタンスやブレイクアウトの基準として非常に重要です。
この記事では、**ラウンドナンバーに自動で水平線を描画する無料スクリプト「RoundNumbers」**をご紹介します。
導入方法から使い方、実際の戦略への活用法まで、初心者の方にもわかりやすく解説しています。
▼以下のボタンからスクリプトをダウンロードして、さっそくMT4でお試しください。
MT4でラウンドナンバーを自動描画するには?
MT4でチャートを分析する際、「1.00000」「100.000」などの**ラウンドナンバー(節目価格)**は、トレーダーの多くが注目する重要な水準です。
これらの価格帯は、サポートやレジスタンスとして機能することが多く、エントリーや利確・損切りの判断材料として非常に役立ちます。
しかし、こうしたラウンドナンバーを手動で1本ずつ水平ラインとして描くのは、時間と労力がかかる作業です。
そこでおすすめなのが、**チャートに表示されている価格範囲内のラウンドナンバーに、まとめて水平線を引いてくれる無料スクリプト「RoundNumbers」**の活用です。
ラウンドナンバーとは?なぜ重要なのか
ラウンドナンバーとは、「キリのいい数字」で構成された価格帯のことを指します。たとえば以下のような例が挙げられます:
- EUR/USD → 1.10000、1.12000 など
- USD/JPY → 140.000、145.000 など
これらの価格帯は視覚的に目立ち、人間の心理として意識されやすいため、機関投資家から個人トレーダーまで多くの注文が集中する傾向にあります。
その結果、ラウンドナンバーは以下のような役割を果たすことが多くなります:
- サポートライン(価格が下げ止まりやすい)
- レジスタンスライン(価格が上げ止まりやすい)
- ブレイクアウトの基準点(強い値動きの起点)
トレード戦略において、こうした心理的節目を事前に把握することは、リスク管理とエントリーポイントの精度向上に直結します。
水平ラインを手動で引く手間を解決
MT4には、ラインを手動で描画する機能が標準で搭載されていますが、ラウンドナンバーをすべて手作業で引いていくのは現実的ではありません。特にスケールを変えるたびに再調整が必要になると、作業の負担が増してしまいます。
**無料スクリプト「RoundNumbers」**を使えば、チャート上に表示されているラウンドナンバーに自動で水平ラインを引くことができます。スクリプトを一度実行するだけで、該当価格帯に美しく整列したラインが描画され、視認性の高いチャート分析が可能になります。
また、線の色・太さ・スタイルなどもパラメーターで自由にカスタマイズできるため、自分のトレードスタイルに合わせた設定も行えます。
無料スクリプト「RoundNumbers」の概要とできること
「RoundNumbers」は、MT4チャート上にラウンドナンバーの水平ラインを自動で描画する無料スクリプトです。
スクリプトを実行するだけで、現在表示されているチャート範囲内の節目価格(例:1.10000、100.000など)に、整った間隔でラインを引くことができます。
面倒な手動描画の作業を省略できるだけでなく、視覚的に重要な価格帯が明確に表示されることで、トレード判断の精度向上にもつながります。
このスクリプトは、次のような特徴を備えています:
- 表示範囲内の全てのラウンドナンバーに自動描画
- パラメーターでラインの色・スタイル・太さをカスタマイズ可能
- スクリプト実行ごとに古いラインは削除して再描画
- クロス円・ドルストレートなど、通貨ペアの桁数にも対応
対応通貨ペア・桁数の違いにも柔軟に対応
「RoundNumbers」は、表示中の通貨ペアの小数点以下の桁数を自動で検出し、それに応じたラウンドナンバーを描画する設計になっています。
たとえば:
- ドルストレート通貨(EUR/USDやGBP/USD) → 1.10000、1.10500など(5桁)
- クロス円通貨(USD/JPYやGBP/JPY) → 140.000、145.000など(3桁)
このように、どの通貨ペアでも桁数に応じて正確なラウンドナンバーを算出し、水平方向に自動でラインを描画します。特別な設定は不要で、あらゆる通貨ペアにそのまま対応できる点が魅力です。
描画タイミングと仕組み(チャート範囲のみ反映)
スクリプト「RoundNumbers」は、チャート上で現在表示されている価格範囲をもとに、必要なラインのみを描画します。
つまり、以下のような仕様になります:
- スクロールやズームイン/アウトによって表示範囲が変わると、描画されるラインも変化する
- 非表示の価格帯にはラインは引かれない(=描画負荷を抑える)
- 新たな価格範囲を分析したい場合は、スクリプトを再実行するだけで再描画
この設計により、チャートの軽量性を保ちつつ、視認性を損なわない点もポイントです。
RoundNumbersのダウンロードと導入手順(画像付き)
「RoundNumbers」は、スクリプト形式(.ex4ファイル)として提供されています。以下の手順に従えば、数分でMT4に導入して利用を開始できます。
スクリプトの配置場所(MT4のフォルダ構成)
- まずは、以下のボタンからスクリプトファイルをダウンロードします。
ファイル形式は.ex4
です。
👉 [RoundNumbersをダウンロード]
- MT4を起動し、メニューから以下の順にクリックします:
- [ファイル] → [データフォルダを開く]
- データフォルダが開いたら、以下の順に進んでください:
MQL4
フォルダ →Scripts
フォルダ
- ダウンロードした「RoundNumbers.ex4」ファイルを、
Scripts
フォルダにコピーします。

MT4への反映とスクリプトの起動方法
- スクリプトを配置したあとは、MT4を再起動してください。
これによりスクリプトが認識されます。 - 再起動後、**ナビゲーターウィンドウ(Ctrl+N)**を開きます。
- 「スクリプト」カテゴリ内に「RoundNumbers」が表示されていることを確認してください。
- スクリプトを使いたいチャート上にドラッグ&ドロップするか、ダブルクリックすると起動します。
- パラメーター画面が開きますので、必要に応じて線の色・太さ・スタイルなどを設定しましょう。
- 「OK」をクリックすると、チャート上にラウンドナンバーの水平ラインが描画されます。
RoundNumbersの使い方とカスタマイズ方法
「RoundNumbers」は、チャート上にドラッグ&ドロップまたはダブルクリックで実行できるシンプルなMT4スクリプトです。
一度実行すれば、表示されている価格帯にラウンドナンバーの水平ラインが自動で描画されます。
基本的な使い方は以下の通りです。
パラメーター設定:色・スタイル・太さの変更
スクリプトを起動すると、まずパラメーター設定ウィンドウが表示されます。
ここで、描画するラインの見た目を自由にカスタマイズできます。
項目名 | 説明 | 初期値 |
---|---|---|
LineColor | 水平ラインの色(例:赤、青など) | Red |
LineStyle | ラインのスタイル(実線・点線など) | ダッシュ |
LineWidth | ラインの太さ(数値が大きいほど太くなる) | 1 |

自分のチャート配色や視認性に合わせて、色やスタイルを変更するだけで、より使いやすくカスタマイズできます。
ライン描画の確認と自動再描画の仕様
パラメーターを設定後、「OK」をクリックすると、確認ダイアログが表示されます。

『ラウンドナンバーに水平線を引きますか?』
「はい」を選択すると、チャート上にラウンドナンバー(節目価格)ごとの水平ラインが自動的に描画されます。
描画の仕様は以下の通りです:
- 現在表示されているチャート範囲のみが対象
- 実行のたびに過去のラインは削除され、新たに描画される(自動更新)
- チャートの時間軸や縮尺を変更した場合は、再実行で再描画
このような仕組みにより、常に最新の表示範囲に合わせた整ったラウンドラインを維持することが可能です。
📝ヒント:
より多くのラウンドナンバーを一度に表示させたい場合は、日足以上の時間足でスクリプトを実行すると効果的です。
トレードに活かす!ラウンドナンバー活用戦略
チャートに描画されたラウンドナンバーのラインは、視覚的な補助線としてだけでなく、戦略的なトレード判断の基準としても大きな役割を果たします。
多くのトレーダーが意識する価格帯であるため、サポートやレジスタンスとして機能しやすく、反発やブレイクが起こりやすい特徴があります。
ここでは、ラウンドナンバーを活用した代表的な4つの戦略をご紹介します。
サポート・レジスタンスとしての活用
ラウンドナンバーは、価格が何度も止まりやすい水準=サポートやレジスタンスラインとして活用できます。
- サポートとしての活用例:
価格がラウンドナンバーに近づいたとき、過去にも反発しているようであれば買いエントリーを検討できる場面となり得ます。 - レジスタンスとしての活用例:
逆に価格が上昇してラウンドナンバーに接近した際、何度も抑えられていれば売りの反転ポイントとして意識されやすくなります。
📝ポイント:
過去に同じ水準で反発が繰り返されているかを確認すると、信頼性が高まります。
ブレイクアウト戦略への応用
ラウンドナンバーは、価格が一気に動く「ブレイクアウト」の起点としても注目される水準です。
とくに重要な節目を強い勢いで突破した場合、その方向に大きなトレンドが発生する可能性があります。
- ブレイク確認後に順張りでエントリー
- ボリュームの急増などをヒントにブレイクの信頼性を判断
- RSIやMACDなどの指標で裏付けを取る
✅補足:
ブレイクが本物かどうか見極めるには、ボリュームの増加や、直近高値・安値の突破を併せて見るのが有効です。
リトレースメントを狙う場合
ブレイクアウト後、価格が一時的に戻ってくる「リトレースメント」局面を狙う戦略です。
ラウンドナンバーが、新たなサポートまたはレジスタンスとして機能するかを確認しながらエントリーするのがポイントです。
- ブレイク直後はエントリーせず、価格が戻ってくるのを待つ
- ラウンドナンバーで再び反発の兆候が見られたらエントリー
- 損切りはラウンドナンバーを明確に割り込んだ地点に設定
この戦略は、「だましブレイク」による損失を回避しつつ、リスクを抑えた取引がしやすいのが特徴です。
損切り・利確の明確化
ラウンドナンバーは、エントリーポイントだけでなく、損切り(SL)や利確(TP)の基準としても非常に有効です。
- 損切りラインの設定:
ラウンドナンバーを超えてしまった場合に備え、直下(サポート時)または直上(レジスタンス時)に設定 - 利確ラインの設定:
次に意識されやすいラウンドナンバーを利益確定ポイントとして目安にすることで、計画的なトレードが可能になります。
📌例:
1.10000で反発して買いエントリー → 利確は1.10500、損切りは1.09850 など
戦略ごとの活用例(通貨ペア別に紹介)
ここでは、主要な通貨ペアにおけるラウンドナンバーの具体的な活用例をご紹介します。
エントリーや利確・損切りの位置づけに迷ったときは、以下のような視点を参考にすると、判断がしやすくなるでしょう。
EUR/USD|サポートラインの反発狙い
状況例:
チャートで EUR/USD が「1.10000」に近づいている局面。
観察ポイント:
- 1.10000付近で過去に複数回の反発が確認されている
- ローソク足のヒゲが下方向に伸び、実体が戻されている形が連続して出ている
- RSIが売られすぎ水準にある
活用例:
- 買い方向での反発狙い戦略を検討
- 損切りは「1.09950」などラウンドナンバーの少し下に設定
- 利確は「1.10500」など、次の節目価格を目安に
USD/JPY|レジスタンスの反転エントリー
状況例:
USD/JPY が「110.000」のラウンドナンバーに接近し、頭打ちの兆候が見られる場面。
観察ポイント:
- 過去に110.000で何度も反落している実績がある
- 高値圏でMACDのデッドクロスが発生している
- ボリュームが減少傾向
活用例:
- 売り方向での反転エントリーを検討
- 損切りは「110.050」などの直上、利確は「109.500」などの下位ラウンドナンバーを目安に
GBP/USD|ブレイクアウト戦略の一例
状況例:
GBP/USD が「1.30000」のラウンドナンバーに接近し、強い勢いで上抜けした場面。
観察ポイント:
- ブレイク時に出来高(ボリューム)が急増している
- 押し戻しが入らず、連続陽線で一気に1.30100を突破
- ブレイク直前にレンジ形成されていた
活用例:
- ブレイク確認後、「1.30100」付近から順張りでの買いエントリーを検討
- 損切りは「1.29850」、利確は「1.30500」などの次のラウンドナンバーを目安に設定
📌 注意:
これらの例は、あくまでラウンドナンバーの活用イメージを示すものであり、特定の取引を推奨するものではありません。実際のトレードにあたっては、ご自身のリスク管理や相場環境に応じて慎重に判断してください。
他ツールとの併用で分析精度を向上
「RoundNumbers」でラウンドナンバーを可視化しただけでも、チャートの視認性は大幅に向上します。
しかし、さらに一歩進んだ分析を行いたい場合は、他のMT4補助ツールと組み合わせることで、より実践的な判断が可能になります。
ここでは、特に相性の良い2つのツールをご紹介します。
時間帯ゾーン表示ツールとの組み合わせ
**市場の時間帯(東京・ロンドン・ニューヨーク)**ごとに形成される高値・安値や、ブレイクアウトゾーンを表示するツールは、RoundNumbersとの組み合わせで威力を発揮します。
たとえば:
- ラウンドナンバーとロンドン時間の高値が重なっている場合、そこが特に強く意識されるレジスタンスとなる可能性がある
- 時間帯ごとの高安レンジとラウンドナンバーの重複領域は、エントリー・利確の候補ポイントになりやすい
このように、**「時間的な意識ゾーン」と「価格的な意識ゾーン」を重ねて見る」**ことで、マーケットの注目度が高いエリアを直感的に捉えられます。
📝おすすめツール例:
MarketZone(時間帯ブレイクアウトラインを自動描画)
オブジェクト一括削除スクリプトの活用
RoundNumbersで描画された水平ラインは、スクリプトを再実行すると上書きされる仕様になっていますが、ラインの本数が増えると視認性が下がったり、手動での削除が煩雑になる場合があります。
そこで便利なのが、チャート上のオブジェクト(トレンドライン・水平線など)を一括削除するスクリプトです。
主なメリット:
- RoundNumbersで引かれた水平ラインをまとめて削除できる
- 分析の切り替え時にチャートを一度クリアできるため、作業効率がアップ
- 誤って手動で1本ずつ削除するリスクを防止
📝おすすめスクリプト名:
DeleteAllObjects または DeleteAll-or-Trendline など
このように、分析系ツール(ゾーン可視化)とメンテナンス系ツール(オブジェクト削除)を組み合わせることで、MT4チャートの操作性と戦略的分析の両方が高まります。
RoundNumbersのMQL4ソースコード全文と解説
以下は、MT4で動作する「RoundNumbers」スクリプトのMQL4ソースコード全文です。チャートに表示されている価格帯の中から、ラウンドナンバー(節目価格)に自動で水平ラインを描画するシンプルな構成となっています。
ソースコード全文(MQL4)
#property strict
#property show_inputs
input color LineColor = clrRed; // ラインの色
input ENUM_LINE_STYLE LineStyle = STYLE_DASH; // ラインのスタイル
input int LineWidth = 1; // ラインの太さ
void OnInit() {
int result = MessageBox("ラウンドナンバーに水平線を引きますか?", "確認", MB_YESNO | MB_ICONQUESTION);
if (result == IDNO) {
Print("スクリプトがキャンセルされました。");
return;
}
DrawRoundNumberLines();
}
void DrawRoundNumberLines() {
double minPrice = WindowPriceMin();
double maxPrice = WindowPriceMax();
int digits = (int)MarketInfo(Symbol(), MODE_DIGITS);
double step = MathPow(10, -digits);
for (double price = minPrice; price <= maxPrice; price += step) {
if (IsRoundNumber(price, digits)) {
string lineName = "RoundNumberLine_" + DoubleToString(price, digits);
DrawHorizontalLine(lineName, price);
}
}
}
bool IsRoundNumber(double price, int digits) {
int multiplier = (int)MathPow(10, digits);
int lastDigits = int(price * multiplier) % 1000;
return (lastDigits == 0);
}
void DrawHorizontalLine(string name, double price) {
if (ObjectFind(0, name) != -1) ObjectDelete(0, name);
ObjectCreate(0, name, OBJ_HLINE, 0, 0, price);
ObjectSetInteger(0, name, OBJPROP_COLOR, LineColor);
ObjectSetInteger(0, name, OBJPROP_STYLE, LineStyle);
ObjectSetInteger(0, name, OBJPROP_WIDTH, LineWidth);
ObjectSetInteger(0, name, OBJPROP_SELECTABLE, false);
ObjectSetInteger(0, name, OBJPROP_SELECTED, false);
ObjectSetInteger(0, name, OBJPROP_RAY_RIGHT, true);
}
void OnDeinit(const int reason) {
// スクリプト終了時の処理(必要に応じて)
}
void OnStart() {
// OnInitを使うためここでは処理なし
}
構成概要と重要関数の役割
このスクリプトは、以下のような流れで機能しています。
1. OnInit()
:初期化処理と描画開始
スクリプト実行時にユーザーへ確認ダイアログを表示し、OKなら描画関数を呼び出します。
2. DrawRoundNumberLines()
:価格帯を走査しラウンドナンバーを検出
チャートの表示範囲(min~max)を0.01や0.001単位で走査し、IsRoundNumber()
関数で節目を特定します。
3. IsRoundNumber()
:ラウンドナンバーの条件判定
価格の下3桁が「000」の場合をラウンドナンバーとみなすロジックです。小数点以下の桁数にも対応しています。
4. DrawHorizontalLine()
:水平ラインの描画処理
該当価格に指定された色・スタイル・太さで水平ラインを描画。同名オブジェクトがある場合は削除してから新規作成されます。
カスタマイズのポイントと注意点
✅ カスタマイズ例
- ライン間隔を広げる/減らすには?
下記のstep
を調整すると、ラウンドナンバーの密度を変更できます。 mql4コピーする編集するdouble step = MathPow(10, -digits) * 5; // 5倍の間隔で描画
- 500単位など別の節目にも対応したい場合: mql4コピーする編集する
return (lastDigits == 0 || lastDigits == 500); // 0 と 500 を節目と判定
- 描画対象を限定するには?(例:5分足以上に限定) mql4コピーする編集する
if (Period() < PERIOD_M5) return; // 5分足未満では描画しない
⚠ 注意点
- 描画されるのは表示中の価格帯のみ:
チャートの表示範囲を拡大すれば、より広い価格帯に描画できます。
高精度で分析したい場合は、日足や週足での実行がおすすめです。 - オブジェクト名が重複しないよう工夫されている:
"RoundNumberLine_" + price
を使った命名で管理されており、再実行時には既存ラインが削除されます。 - 描画結果は保存されない:
スクリプトなのでMT4の再起動やテンプレート変更時には消える可能性があるため、必要に応じてチャートの保存を。
このように、RoundNumbersはコードがシンプルでカスタマイズしやすく、学習にも実戦にも適したスクリプトです。
自身のトレードスタイルに合わせて、ライン間隔や条件を調整して活用してみてください。
よくある質問(FAQ)
- スクリプトを実行しても何も表示されません。なぜですか?
-
表示されるラウンドナンバーは、現在のチャート上に表示されている価格範囲に限定されます。
たとえば、価格が「1.09850~1.10100」の範囲で表示されている場合、「1.10000」は描画されますが、それ以外のラウンドナンバーは描画されません。
チャートのスケールを拡大するか、時間足を上げてから再実行してみてください。 - ラインが重複して表示されることはありますか?
-
いいえ、スクリプトは同じ価格のラインがすでに存在する場合、自動で削除してから再描画する設計になっています。
同名のオブジェクト(”RoundNumberLine_価格”)があれば上書きされるため、重複は基本的に起こりません。 - 自動売買はオンにしないと使えませんか?
-
のスクリプトは自動売買機能を使わない「Scripts」カテゴリのファイルなので、MT4の「自動売買」ボタンはオンにする必要はありません。
ただし、ナビゲーターウィンドウでスクリプトが見つからない場合は、MT4を再起動して反映させましょう。 - 描画されたラインを消したいときはどうすればよいですか?
-
スクリプトでは自動削除機能はありません。ラインを削除したい場合は、以下のいずれかの方法で対応できます:
- 手動でチャート上のラインを右クリックして削除
- オブジェクトを一括削除するスクリプト(例:
DeleteAllObjects
)を活用
- 自分のルールに合わせてラインの間隔を変えられますか?
-
はい、可能です。スクリプトのソースコードを編集することで、描画するラウンドナンバーの条件や間隔を自由に調整できます。
たとえば、「1000単位だけでなく500単位も描画したい」といったカスタマイズもできます(詳細は前章参照)。 - 他のインジケーターやEAと干渉することはありますか?
-
通常のインジケーターやEAとは干渉しにくいシンプルなスクリプトです。ただし、同じ名前のオブジェクトを生成する他ツールを同時に使う場合は注意が必要です。
オブジェクト名の重複を避けるため、プレフィックスを変更するなどの工夫を検討してください。
まとめ|ラウンドナンバーで精度の高いチャート分析を
ラウンドナンバーは、チャート上で視覚的に意識されやすい「節目価格」として、多くのトレーダーに注目されている重要な水準です。
こうした水準を見逃さず、明確に可視化することは、エントリー・利確・損切りといった判断の制度を高める大きな助けになります。
無料スクリプト「RoundNumbers」を活用すれば、手間なくラウンドナンバーを自動で描画でき、チャート分析の効率が格段にアップします。
また、時間帯ゾーン表示ツールやオブジェクト一括削除スクリプトなどと組み合わせることで、より洗練された環境が整います。
このツールは、裁量トレードの精度を高めたい方はもちろん、FX初心者にも扱いやすいシンプル設計となっています。
ぜひ実際のチャートで試しながら、自分なりの活用法を見つけてください。