NK225 バックテスト
1. 全体の構造
バックテストの売買ルールは、以下の構成になっています。
仕掛け はシグナル検出方式と約定方法の2つの軸を組み合わせて設定します。さらにインジケーターフィルターやローソク足フィルターで条件を絞り込めます。
決済条件 は複数の条件を同時に有効にでき、いずれか1つでも条件を満たした時点で決済されます。
2. シグナル検出方式
5つのシグナルから1つを選択します。
2-1. HLバンドシグナル
HLバンド(過去N本の高値の最高値・安値の最安値)のブレイクアウトでシグナルを発生させます。
- 買いシグナル: 価格がHLバンド上限を上抜け
- 売りシグナル: 価格がHLバンド下限を下抜け
- パラメータ: HLバンド期間(初期値: 7)
2-2. ピークボトムシグナル
HLバンドのピーク(高値の頂点)とボトム(安値の底点)を検出し、そのブレイクアウトまたはリターンでシグナルを発生させます。
- パラメータ: ピークボトム期間(初期値: 7)
ブレイク(初期値)
- 買いシグナル: 直前のピークを上抜け
- 売りシグナル: 直前のボトムを下抜け
- 買い→売り→買い…と交互にシグナルが発生
リターン
ブレイク後、1分足で確認してから再割り込みが発生した時点でシグナルとなります。
- 買いシグナル: ピーク上抜け後、確認してから再度ピーク以下に割り込み
- 売りシグナル: ボトム下抜け後、確認してから再度ボトム以上に復帰
| パラメータ | 説明 | 初期値 |
|---|---|---|
| 確認本数 | ブレイク後に確認として使用する1分足の本数 | 3 |
| オフセット | 再割り込み判定のオフセット(ポイント) | 0 |
2-3. IRシグナル
イニシャルレンジ(寄付き直後の指定時間帯における高値と安値)を基準にシグナルを発生させます。
- パラメータ: 開始時刻(初期値: 09:00)、終了時刻(初期値: 09:30)
- 制約: 60分足以下の時間足でのみ使用可能
ブレイク(初期値)
- 買いシグナル: 価格がイニシャルレンジの高値を上抜け
- 売りシグナル: 価格がイニシャルレンジの安値を下抜け
リターン
ブレイク後、1分足で確認してから再割り込みが発生した時点でシグナルとなります。
| パラメータ | 説明 | 初期値 |
|---|---|---|
| 確認本数 | ブレイク後に確認として使用する1分足の本数 | 3 |
| オフセット | 再割り込み判定のオフセット(ポイント) | 0 |
2-4. ローソク足ブレイク
前足のローソク足の高値や安値のブレイクでシグナルを発生させます。
モードA: 陽線/陰線判定(初期値)
前足のローソク足タイプに応じてブレイク方向が変わります。
- 前足が陰線(終値 < 始値)→ 当足が前足の高値を超えたら 買いシグナル
- 前足が陽線(終値 > 始値)→ 当足が前足の安値を割ったら 売りシグナル
モードB: 単純ブレイク
前足のタイプを問わず、単純に高値・安値のブレイクで判定します。
- 当足が前足の高値を超えたら 買いシグナル
- 当足が前足の安値を割ったら 売りシグナル
オプション
- 反転: シグナルの買い/売りを入れ替え
- 十字線を含める: 前足が十字線(始値=終値)の場合もブレイク判定を行う
2-5. インジケーターカスタム条件
インジケーターフィルターで設定した条件そのものを、エントリーシグナルとして使用します。条件が成立した時点でシグナルが発生します。
3. 約定方法
シグナル発生後、どのタイミングでエントリーするかを選択します。6種類から1つを選択します。
| 約定方法 | 説明 |
|---|---|
| 即仕掛け | シグナル発生時にすぐエントリー。1分足精度でブレイク価格を算出 |
| 当足の始値 | シグナル足の始値でエントリー(インジケーターカスタム条件のみ) |
| 当足の終値 | シグナルが発生した足の終値でエントリー |
| 翌足の始値 | シグナルが発生した足の次の足の始値でエントリー |
| シグナル足の高値安値(ブレイク) | シグナル足の高値/安値を突破したらエントリー。有効期限あり |
| シグナル足の高値安値(リターン) | シグナル足の反対側を突破したら逆方向でエントリー。有効期限あり |
シグナル足の高値安値(ブレイク)
シグナル足の高値(買い)または安値(売り)を、後続の足で突破した時点でエントリーします。
- 有効期限: シグナル足の翌足から起算して、指定本数以内に突破しなければスキップ(初期値: 5本)
- ギャップ対応: 始値がトリガー価格を超えて寄り付いた場合は始値でエントリー
シグナル足の高値安値(リターン)
ブレイクの逆バージョンです。シグナルの否定(反対側のブレイク)で逆方向にエントリーします。
- 買いシグナル発生時: シグナル足の安値を割ったら売りでエントリー
- 売りシグナル発生時: シグナル足の高値を超えたら買いでエントリー
- 有効期限: ブレイクと同じ(初期値: 5本)
4. インジケーターフィルター
エントリーシグナルが発生したトレードに対して、追加のインジケーター条件でフィルタリングします。条件を満たさないトレードは除外されます。
設定方法
- インジケーター種別ごとにカードを追加(複数追加可能)
- 各カードでパラメータと条件を設定
- 複数カード間の結合: AND(全条件一致)または OR(いずれか成立)
対応インジケーター
単純移動平均(SMA)
指定期間の終値の単純平均。
- ライン: 短期線、長期線
- パラメータ: 短期期間(初期値: 25)、長期期間(初期値: 75)
- 条件例: 短期線 > 長期線(ゴールデンクロス方向)
指数移動平均(EMA)
直近の値に重みを置いた移動平均。価格変動への反応が単純移動平均より速い。
- ライン: 短期線、長期線
- パラメータ: 短期期間(初期値: 12)、長期期間(初期値: 26)
- 条件例: 終値 > 短期線(価格が移動平均の上にある)
RSI(相対力指数)
一定期間の値上がり幅と値下がり幅から算出される、買われすぎ・売られすぎの指標。0〜100の範囲。
- ライン: 短期RSI、長期RSI
- パラメータ: 短期期間(初期値: 9)、長期期間(初期値: 25)、閾値(初期値: 70)
- 条件例: 短期RSI > レベル70
RCI(順位相関指数)
価格の順位と時間の順位の相関を示す指標。-100〜+100の範囲。
- ライン: 短期RCI、長期RCI
- パラメータ: 短期期間(初期値: 9)、長期期間(初期値: 25)、閾値(初期値: -80)
- 条件例: 短期RCI > レベル-80
MACD(移動平均収束拡散)
短期と長期の指数移動平均の差を利用した指標。
- ライン: MACD線、Signal線
- パラメータ: 短期(初期値: 12)、長期(初期値: 26)、シグナル期間(初期値: 9)
- 条件例: MACD線が Signal線を上抜け
ストキャスティクス
一定期間の価格帯における現在価格の位置を示す指標。
- ライン: %K、%D、Slow%D
- パラメータ: %K期間(初期値: 13)、%D期間(初期値: 5)、スローイング(初期値: 4)、閾値(初期値: 80)
- 条件例: %D > レベル80
イニシャルレンジ
寄付き直後の指定時間帯の高値と安値。
- ライン: IR High、IR Low
- パラメータ: 開始時刻(初期値: 09:00)、終了時刻(初期値: 09:30)
- 条件例: 終値 > IR High
PBトレンド
HLバンドのピーク・ボトムからトレンドの方向を判定する指標。
- ライン: トレンド値
- パラメータ: HLバンド期間(初期値: 7)
| 条件 | 説明 |
|---|---|
| 上昇トレンド | 高値・安値ともに切り上がっている状態 |
| 下降トレンド | 高値・安値ともに切り下がっている状態 |
| トレンドレス | 方向感のない状態 |
| 高値切り上げ | 直前のピークが前回より高い |
| 高値切り下げ | 直前のピークが前回より低い |
| 安値切り上げ | 直前のボトムが前回より高い |
| 安値切り下げ | 直前のボトムが前回より低い |
| 上昇波動 | HLバンド陽転中(Hバンド上抜け後〜Lバンド下抜けまで) |
| 下落波動 | HLバンド陰転中(Lバンド下抜け後〜Hバンド上抜けまで) |
共通オプション
演算子
| 演算子 | 説明 |
|---|---|
| >(より上) | 左辺が右辺を上回っている |
| <(より下) | 左辺が右辺を下回っている |
| 上抜け | 前足では下回っていたものが、当足で上回った |
| 下抜け | 前足では上回っていたものが、当足で下回った |
売買別(自動反転)
有効にすると、売りトレードの判定時に条件が自動的に反転されます。
- > → <
- 上抜け → 下抜け
- PBトレンドの場合: 上昇トレンド ↔ 下降トレンド、切り上げ ↔ 切り下げ、上昇波動 ↔ 下落波動
交差のルックバック
交差条件(上抜け・下抜け)において、直前N本以内に交差があれば条件成立とする設定です。0の場合は当足のみで判定します。
5. ローソク足フィルター
エントリーシグナルが発生したトレードに対して、シグナル足の前のローソク足の形状でフィルタリングします。
設定方法
- カードUIで追加・削除
- 1枚のカード内でチェックした条件はすべて AND(全条件を満たす必要あり)
- 複数カード間の結合: AND(全カード通過)または OR(いずれか1枚通過)
対象足
- N本前: シグナル足からN本前の足を対象(初期値: 1)
- 比較対象: N本前の足と、N+1本前の足を比較
条件
| 条件 | 判定内容 |
|---|---|
| 高値切り上げ | N本前の高値がN+1本前の高値より高い |
| 高値切り下げ | N本前の高値がN+1本前の高値より低い |
| 安値切り上げ | N本前の安値がN+1本前の安値より高い |
| 安値切り下げ | N本前の安値がN+1本前の安値より低い |
| 陽線 | N本前の終値が始値より高い |
| 陰線 | N本前の終値が始値より低い |
| 十字線 | N本前の終値と始値が同値 |
オプション
- 売買別: 売りトレード時に条件を自動反転(高値切り上げ ↔ 切り下げ、安値切り上げ ↔ 切り下げ、陽線 ↔ 陰線)
- 反転: フィルター結果全体を反転(通過→除外、除外→通過)
6. 決済条件
ポジションを決済する条件です。複数の条件を同時に有効にでき、いずれか1つでも条件を満たした時点で決済されます。
利食い幅
指定した値幅(ポイント)以上の利益が出たら決済します。
- パラメータ: 利食い幅(初期値: 300)
- 初期状態で有効
損切り幅
指定した値幅以上の損失が出たら決済します。
- パラメータ: 損切り幅(初期値: 200)
シグナル足基準損切り
エントリーシグナルが出た足の高値/安値を基準にした損切りです。
- 買いの場合: シグナル足の安値からオフセット分だけ下に逆行したら損切り
- 売りの場合: シグナル足の高値からオフセット分だけ上に逆行したら損切り
- パラメータ: オフセット(初期値: 10)
トレイリングストップ
利益が指定閾値に到達した後、最高含み益から指定した幅だけ逆行したら決済します。利益を伸ばしつつ、一定の逆行で利益を確定する手法です。
| パラメータ | 説明 | 初期値 |
|---|---|---|
| 開始利益 | トレイリングが有効になる含み益 | 200 |
| 逆行幅 | 最高含み益からの許容逆行幅 | 100 |
時間切れ手仕舞い
エントリーから指定本数のローソク足が経過したら決済します。
- パラメータ: 経過本数(初期値: 10)
指定時刻手仕舞い
指定した時刻に到達したら決済します。
- パラメータ: 時刻(初期値: 15:10)
セッション終了手仕舞い
取引セッションの終了時にポジションを決済します。
- 日中セッション: 日中の取引終了時に決済
- ナイトセッション: ナイトの取引終了時に決済
- 決済価格はセッション最終足の終値
条件付きセッション終了
日中/ナイトのいずれかを有効にした状態で「条件付き」を有効にすると、含み損益に基づく条件判定を追加できます。
- 判定: セッション終了の価格 / セッション終了1本前
- 条件: ◯円以上 / ◯円以下 / ◯円〜◯円の範囲(含み損益基準)
- 返済: セッション終了 / 翌セッション開始
条件を満たした場合のみ決済が実行されます。条件を満たさない場合はセッション終了では決済されず、他の決済条件または逆シグナルまでポジションが維持されます。
HLバンド逆ブレイク決済
エントリー方向と反対側のHLバンドをブレイクしたら決済します。エントリーのHLバンド期間とは別に、決済用の期間を指定できます。
- 買いポジション: HLバンド下限を下抜けたら決済
- 売りポジション: HLバンド上限を上抜けたら決済
- パラメータ: HLバンド期間(初期値: 2)
逆シグナル手仕舞い
保有ポジションと逆方向のシグナルが発生したら決済します。常に有効です。
- 買いポジション保有中に売りシグナルが発生 → 決済
- 売りポジション保有中に買いシグナルが発生 → 決済
7. 決済の判定ルール
基本原則
有効にした決済条件のうち、最も早く条件を満たしたもので決済されます。
同一足内で複数条件が該当した場合
同一足内で複数の条件が同時に成立した場合は、以下の優先順位で判定します。
- 損切り — 足の途中で損切りラインに先に到達したか
- 利食い — 足の途中で利食いラインに先に到達したか
- トレイリング — 利益閾値到達後の逆行で判定
- HLバンド逆ブレイク — HLバンドの反対側ブレイクで判定
- セッション終了 — セッション終了時刻で判定(条件付きの場合は含み損益を評価)
- 時間切れ — 経過本数で判定
- 指定時刻 — 指定時刻到達で判定
- 逆シグナル — 逆方向シグナル発生で判定
8. 仕掛けオプション
売買方向
| 設定 | 説明 |
|---|---|
| 買い・売り両方 | 買いシグナルと売りシグナルの両方でエントリー |
| 買いのみ | 買いシグナルのみでエントリー |
| 売りのみ | 売りシグナルのみでエントリー |
時間帯フィルター
指定した時間帯でエントリーを制限します。
- 限定モード: 指定時間帯のみ仕掛ける
- 除外モード: 指定時間帯は仕掛けない
- 時刻範囲: 2つまで設定可能
- 日跨ぎ対応: 23:00〜06:00のような日をまたぐ範囲も指定可能
9. パラメータ初期値一覧
基本パラメータ
| パラメータ | 初期値 |
|---|---|
| HLバンド期間 | 7 |
| 時間足 | 240分(4時間) |
| 開始日 | 2025-01-01 |
| 売買方向 | 買い・売り両方 |
シグナル検出
| パラメータ | 初期値 |
|---|---|
| シグナル検出方式 | HLバンドシグナル |
| 約定方法 | 即仕掛け |
| 有効期限(高値安値ブレイク/リターン時) | 5本 |
| ピークボトム期間 | 7 |
| IR開始時刻 | 09:00 |
| IR終了時刻 | 09:30 |
| リターン確認本数 | 3 |
| リターンオフセット | 0 |
| ローソク足ブレイクモード | 陽線/陰線判定 |
決済条件
| パラメータ | 初期値 | 初期状態 |
|---|---|---|
| 利食い幅 | 300 | 有効 |
| 損切り幅 | 200 | — |
| シグナル足基準損切りオフセット | 10 | — |
| トレイリング開始利益 | 200 | — |
| トレイリング逆行幅 | 100 | — |
| 時間切れ経過本数 | 10 | — |
| 指定時刻 | 15:10 | — |
| セッション終了(日中/ナイト) | — | — |
| HLバンド逆ブレイク期間 | 2 | — |
インジケーターフィルター
| インジケーター | パラメータ1 | パラメータ2 | その他 |
|---|---|---|---|
| 単純移動平均 | 短期: 25 | 長期: 75 | — |
| 指数移動平均 | 短期: 12 | 長期: 26 | — |
| RSI | 短期: 9 | 長期: 25 | 閾値: 70 |
| RCI | 短期: 9 | 長期: 25 | 閾値: -80 |
| MACD | 短期: 12 | 長期: 26 | シグナル: 9 |
| ストキャスティクス | %K: 13 | %D: 5 | スローイング: 4、閾値: 80 |
| イニシャルレンジ | 開始: 09:00 | 終了: 09:30 | — |
| PBトレンド | 期間: 7 | — | 閾値: 0.5 |
| ローソク足フィルター | N本前: 1 | — | — |