納品物 v7(MT4 v2.21)レビュー資料
対象は share/delivery_mt4_2026-10-08_v7/ のうち、サインツール 2 本と検証ツール 2 本です。同じフォルダの EmaView・RsiView は今回の対象外です。
| 種類 | ③ 5 分足ベース | ① 1 分足ベース |
|---|---|---|
| サインツール | CustomerSign_GoldEmaRsi_M5_RsiM1.ex4 |
CustomerSign_GoldEmaRsi_M1.ex4 |
| 検証ツール | CustomerSign_Judge_GoldEmaRsi_M5_RsiM1.ex4 |
CustomerSign_Judge_GoldEmaRsi_M1.ex4 |
③ と ① の違いは、EMA を何分足で見るかだけです。ルールのコードは 1 本(mq4/CSJ4_Engine.mqh)を両方が使っています。版はどれも 2.21(画面の表記は v4.2.21)です。
v6(v2.20)からの変更は、開発レビューの R1〜R9 です(DEV_REVIEW.md・SPEC §20)。設定画面の項目を減らし、検証ツールの画面と損切り・利確の決着を直しました。サインのルールは変えていません。テスト用の入口で同じ値を渡すと、サインの一覧・記録が v2.20 とバイト単位で一致しました(14 本)。
テストはすべて通っています(run_all_tests_v221.log が ALL PASS、Python 118 件 pass、SPEC §20-11・§20-14)。この資料は「動くか」ではなく、「お客さんに渡して困らないか」を見るためのものです。
A1|サインツール:サインの挙動
いつサインが出るか(買い。売りは全部逆)
1 分足が閉じるたびに次の条件を見て、全部そろったらサインを出します。
| 条件 | ③ 5 分足ベース | ① 1 分足ベース |
|---|---|---|
| EMA のクロス | 5 分足の EMA3 が EMA10 を上に抜けた(閉じた足だけで見る) | 1 分足の EMA3 が EMA10 を上に抜けた |
| クロスからの猶予 | クロスした足を含めて 5 分足 3 本以内 | クロスした足を含めて 1 分足 3 本以内 |
| RSI(9)・1 分足 | 50 以上にいる | 同じ |
| 伸び切りの除外 | RSI が 70 未満(売りは 30 より上) | 同じ |
| 入る時間(日本時間) | 10:00-12:00、14:30-16:00、21:00-24:00。空欄にすると時間で絞らない | 同じ |
| 1 時間足の RSI(14) | 今の 1 時間足(作りかけ)の RSI が 50 以上(売りは 50 以下) | 同じ |
- 1 つのクロスから出るサインは 1 回だけです。
- 決済するまで、次のサインは出しません(ポジションは常に 1 つ)。
- 入る値段は、サインの次の 1 分足の始値です。
いつ決済とみなすか
今の 1 時間足の RSI(14) が 50 にタッチした最初の 1 分足で決済とみなします。買いは 50 以下、売りは 50 以上になった足です。ちょうど 50 も決済に含めます。決済の値段は、その次の 1 分足の始値です。含み益か含み損かは見ません(返信6 ■1・v2.20 から)。
決済までは次のサインを出さないので、試験データ(2026-08-11〜09-01)でのサインは ③ が 30 件、① が 58 件です。一番長い保有は ③ の 3075 本(約 2 日)です(SPEC §19-6)。
チャートの見え方

- 矢印の色は、③ が買い青・売り桃、① が買い水色・売り橙です。同じチャートに重ねて使えます。
- サインを出すと、参考損切り(③ は直近の 1 分足 50 本、① は 10 本の最安値・最高値)の点線と「参考損切り 4630.84」のような文字を出します。上の画像では、③ と ① の参考損切りが同じ値(4630.84)なので、文字が同じ位置で重なって読めなくなっています(画像の上端中央)。
- 起動時に、過去の 1 分足 20000 本(約 2 週間)ぶんの矢印を描きます。過去の矢印ではアラートを鳴らしません。
矢印にマウスを載せると、次のような説明が出ます(sim/out/screens_v220/c3/18_signtools_tooltips.txt から 1 件)。
買いサイン(EMA3/10×RSI9・H1 RSI の側 M1) | サイン足 2026.08.28 16:20~16:21(日本時間 22:20~22:21) | EMAクロス 16:20 のM1足 | 入る 16:21 の始値 4599.03 | サイン足の終値 4599.20 | RSI 54.7 EMA3 4598.30 / EMA10 4598.03 | H1 RSI 50.0 | 参考損切り 4593.48
決済のルール(1時間足RSI50)はこの説明に入っていません。行を足すと MT4 の文字数の上限を超えて、説明全体が空になるためです(SPEC §19-5 の 6、検収で承認済み)。
アラート
新しいサインが出ると、ポップアップと音で知らせます。v2.21 でスマホへのプッシュとメールは設定画面から外し、送らない設定で固定しました(R3)。文面は次の形です(mq4/CSJ4_SignBody.mqh:221)。
GOLD M5・RSI M1 買いサイン 09:35 価格 4285.05 参考損切り 4279.10
この時刻はサーバー時刻です(XM は日本時間より夏は 6 時間、冬は 7 時間遅い)。矢印の説明には日本時間も併記していますが、アラートには日本時間がありません。
A2|サインツール:パラメーター設定一覧
お客さんの設定画面に出る項目(3 つ)

| 項目 | 既定 | 中身 |
|---|---|---|
| 入る時間(日本時間・空欄なら絞らない) | 10:00-12:00,14:30-16:00,21:00-24:00 | カンマで区切って複数書ける。空欄にすると時間で絞らない。読めない書き方だけのときはサインを出さない(打ち間違いで全時間に出ないように) |
| 1時間足RSIフィルター(50の側だけ) | true | false にすると 1 時間足の RSI で向きを絞らない。決済は false でも 1 時間足 RSI 50 のまま |
| アラート(ポップアップと音) | true | ポップアップと音を 1 つのスイッチで切り替える |
見出しの行は v2.21 で消しました(R2)。v2.20 では見出し 3 行を含めて 10 行あり、縦のスクロールバーが出ていました。
固定した項目(設定画面に出さない)
ルールを変えられないように、次の値は先方用の .ex4 では固定しました(SPEC §19-3・§20-1)。
| 項目 | 固定した値 |
|---|---|
| EMA 速・遅 | 3・10 |
| RSI 期間(1 分足) | 9 |
| RSI のレベル | 30・50・70 |
| 伸び切りの除外 | する |
| クロスからの猶予 | 3 本 |
| 1 時間足の RSI 期間 | 14 |
| どの 1 時間足の RSI で見るか | 今の足(作りかけ) |
| 決済のルール | 1 時間足 RSI 50 |
| 出す向き | 買い・売りの両方 |
| 参考損切りの本数 | ③ 50 本・① 10 本(1 分足) |
| 過去の矢印の本数 | 20000 本 |
| 参考損切りの点線 | 出す |
| 入る時間で絞るかの切り替え | 絞る(空欄で代わりにする) |
| 日本時間との差 | 自動(サーバーの時計から求める) |
| スマホへのプッシュ・メール | 送らない |
| 音のファイル | alert.wav |
| サインを CSV に書く | 書かない |
B1|検証ツール:見た目
検証ツールは、過去のチャートをサインごとに 1 本ずつめくり、「入る/入らない」を記録するためのものです。発注はしません。
下の画像はテスト用のビルドで撮っています。見出しの「[テスト入口 on]」はテスト用のビルドにだけ出る文字で、お客さんの画面には出ません(mq4/CSJ4_JudgeBody.mqh:1024)。それ以外の見た目は先方用と同じです。
サインが来たとき

- 左上の 1 行目は見出しです(サイン判断の記録・版・ルールの名前・足)。
- 2 行目のボタンは [≪ 前のサイン] [< 1本戻る] [1本進む >] [次のサイン ≫] と、現在地・サインの件数・未回答の件数です。
- その下にサインの向きと終値と「入りますか?」が出て、[入る] [入らない] [保留] のボタンが並びます。
- 現在地より右(未来)のローソク足は黒い幕で隠れています。入る足(次の 1 分足)も、答えるまでは隠れたままです。
- この画像は v2.20 のものです。v2.21 では、パネルの大きな黒い背景をやめて文字ごとの小さな背景にし、今の足を左から約 8 割の位置に置くようにしました(R5・R7)。パネルの下でも過去の足が見えます。

① の検証ツールの矢印の色は、v2.21 でサインツールと同じ水色・橙にそろえました(R1)。v2.20 では青・桃で、① のサインツールと重ねると色が入れ替わって見えていました。
「入る」を押したとき

[入る] を押すと、損切り → 利確の順に、チャート上でクリックして置く位置を聞かれます。クリックした位置の近くに高値・安値があれば、そこに吸い寄せます。マウスの横に「エントリーから 615.4p / 9.77R」のように距離が出ます。[利確は置かない] [やり直し] も選べます。
「入らない」を押したとき

理由のボタンが 6 つ出ます。レンジ・BB巾が狭い・トレンドラインに合わない・MA200と逆・RSI伸び切り・急な値動きです。理由を選ばずに [次のサイン ≫] へ進むと「その他」で記録されます。[保留(記録しない)] も押せます。
答えた後と、決着の足(v2.21 で追加)

答えた後に [次のサイン ≫] を押すと、まずそのサインの決着の足へ移ります(R8)。そこで「この取引の結果」を出します(R9)。

「入らない」と答えたサインでは、損益を出さずに「この取引の結果 ── 入りませんでした」の 1 行だけを出します。理由も添えません。

上の 2 枚では、パネルの文字がローソク足の上に重なっています。文字ごとに小さな背景を敷いているので読めますが、足の一部が文字の下に隠れます(R7 で、足を大きく隠すより文字が重なる方を選んだ)。
トータル
[結果を隠す/見る] の下に、ここまでのトータルが出ます。中身は、入る・入らないの件数、勝ち負けと勝率、合計の pips、平均の R です。下に「※ コスト未控除(スプレッド・スワップ)」「※ 損切り・利確なしは1時間足RSI50まで保有」の注記が付きます。
画面の pips は 0.01 ドルを 1 pips として数えています(mq4/CSJ4_JudgeCalc.mqh:23)。上の画像の「+45.5 pips」は 0.455 ドルの動きです。
B2|検証ツール:挙動
めくり方
- 起動すると、設定画面の「リプレイの開始日時」から先を隠した状態で始まります。空欄なら、貼った時点の 1 週間前から始まります。時間足を切り替えたり開き直したりしても、同じ日時のままです。インジケーターを外して貼り直すと、その時点の 1 週間前になります。
- [1本進む >] [< 1本戻る] は 1 分足 1 本ずつ動きます。[≪ 前のサイン] はサインからサインへ戻ります。
- [次のサイン ≫] は、答えたサインでは 1 回目で決着の足へ、2 回目で決着より後の次の未回答のサインへ移ります。持っている間に出たサインは飛ばし、未回答のまま残ります(≪ で戻れば答えられる)。保留・未回答のサインでは、今までどおり次のサインへ移ります。
- データの終わりまで決着しない取引では、決着の足へは移らず「まだ決着していません。次のサインへ進みました。」と出して次のサインへ移ります。
- 動くたびに、今の足を画面の左から約 8 割の位置に置きます(70〜90% の間なら動かさない)。
- 戻ったときも、未来側にサインツールの矢印が残らないよう、幕を毎回作り直して一番手前に置きます(R4。v2.20 では一度見えた矢印が戻っても消えなかった)。
- サインの判定はサインツールと同じコードなので、同じ設定ならサインツールと同じ位置に矢印が出ます。そのため、入る時間と 1 時間足 RSI フィルターは検証ツールの設定画面にも出しています。
記録
- 答えは端末の
MQL4\Filesに CSV で残ります。ファイル名はCSJ_GOLD_M5_rM1_*.csv(③)とCSJ_GOLD_M1_*.csv(①)です。中身は signals・judge・outcome・bars の 4 つです。 - 一度答えたサインは答え直せません。画面に「記録済み(答え直しはできません)」と出ます。結果を見てから変えた答えが混ざるのを防ぐためです。
- 同じ銘柄で入る時間やフィルターを変えて試すと、同じファイルに記録が混ざります。お客さんには「設定を変えて試すときは
MQL4\FilesのCSJ_*.csvを別のフォルダへ移してから」と伝えることにしています(SPEC §19-9)。
決着の数え方
- 損切りか利確を 1 つでも置いた取引は、サインの決済(1 時間足 RSI 50)を見ずに、置いた値段に当たるまで持ちます(R6)。片方だけ置いたときは、その片方に当たるまでです。v2.20 まではサインの決済が先に来るとそこで決着にしていて、利確に後で届いた取引が負けと数えられていました。
- データの終わりまで置いた値段に当たらなければ「決着待ち」で、損益には数えません。
- 同じ 1 分足で損切りと利確の両方に触れた取引は、どちらが先か分からないので、トータルから外します。外した件数は注記に出ます。
- 何も置かなかった取引は、サインツールと同じく 1 時間足 RSI 50 で決済です。
- トータルに入るのは、決着した足が今の位置までにめくれている取引だけです。まだのものは「決着待ち N件」と出ます。未来の結果がトータルに混ざらないようにするためです(SPEC §17-5)。
- 1 時間後・3 時間後・6 時間後の損益も記録します(1 分足 60・180・360 本で数える)。
- outcome.csv には、損切り・利確ではなくサインの決済の結果を書きます(変えていない)。損切り・利確の結果は judge.csv の値から後で計算できます。
B3|検証ツール:パラメーター設定一覧
お客さんの設定画面に出る項目(3 つ)

| 項目 | 既定 | 中身 |
|---|---|---|
| 入る時間(日本時間・空欄なら絞らない) | 10:00-12:00,14:30-16:00,21:00-24:00 | サインツールと同じ |
| 1時間足RSIフィルター(50の側だけ) | true | サインツールと同じ |
| リプレイの開始日時(空欄=1週間前) | 空欄 | 空欄なら貼った時点の 1 週間前。日時を入れるとその日時から |
固定した項目(設定画面に出さない)
サインのルールにかかわる値は、サインツールと同じ値で固定しています。それ以外に、検証ツールだけで次の値を固定しました。
| 項目 | 固定した値 |
|---|---|
| リプレイ(未来を隠す) | する |
| 1 回で動く本数 | 1 分足 1 本 |
| 「入る」のとき損切り・利確を聞く | 聞く |
| 高値・安値へ吸い寄せる範囲 | 5 pips(0.05 ドル) |
| 現在地の右に残す余白 | 画面の約 2 割 |
| 走査する本数 | 20000 本 |
| 記録のファイル名の頭 | 空(自動で CSJ_<銘柄>_<足>) |
| 1/3/6 時間後の本数 | 60・180・360 |
| ライブでサインが出たときのアラート | 鳴らす |
| パネルの位置 | 左から 12・上から 34 |