リペイント
描いているバーより後のバーを必要とする指標は、すでに描いたものを動かす。そしてその動きはノイズではない。構造上、必ずあなたに有利な向きへ動く。次のバーが高いという理由であるバーを安値と印づける規則は、あなたに不利な方向へは修正されえない。シグナルを生む条件が、そのまま後の価格をより良くする条件だからだ。ずれの符号はひとつしかありえず、それを決めているのは規則そのものである。このモジュールの六十本の終値の上で、二バーのピボット規則は七つの往復売買を印づける。仕上がったチャートが示す位置で取れば、七戦七勝、建値に対して一ティックも逆行せず、合計20.40ポイントになる。それぞれが最初に知りえた時点で取れば、七戦四勝、合計3.90になる。あのbacktestの五分の四は、後から動いたチャートだった。しかもバーが動いている間、同じ規則はチャート上に生き残らない印をつける——二バーでは十三のうち四つ、三バーでは八つのうち四つ、五バーでは六つのうち三つが消える。
前提条件: レッスン48。その締めくくりの検査——あるバーに描かれた値は、それより後のバーに依存しているか——が、ここでの主題そのものである。次にレッスン17。リペイントが水増しするのは期待値であり、それが動くのを見るには、まずそれを述べられなければならない。そしてレッスン19。ひとつの主張に何回の観測が要るかというその算術が、末尾の検出テストに値をつける。
まだ暫定であるシグナル
リペイントは狭い一つのことであり、例がそれを広げる前に狭く述べておく価値がある。シグナルがリペイントするとは、あるバーに描かれた値が、そのバーが引けたあとに変わることをいう。別の価格に移るか、別のバーに移るか、あるいは消える。いま見ているチャートと一か月後に見るチャートは同じチャートではなく、取引できたのはそのうち一方だけだ。
仕組みは、欺きであることはまれで、たいていは算術である。どのプラットフォームにもある最もありふれたスイング規則を取ろう。あるバーは、その前のk本より安く、かつその後のk本より安ければ、ピボット安値である。左側の条件はそのバーで確かめられる。右側の条件はさらにk本先まで確かめられない。したがって印を正直に描けるのはバーt+kになってからであり、バーtに描くチャートはどれも、まだ出ていないバーから結論を引き出している。
動いているチャート上では、これはちらつきとして現れる。一本のバーが高く引けた瞬間、その前のバーは右側条件の一部を満たし、暫定の印が現れる。ウィンドウの中の後のバーがそれを下回れば、その印は誤りであり消える。このモジュールの六十本の終値では、二バー規則はどこかの時点で十三本の別々のバーに印をつけ、生き残るのは九本だけだ。三バー規則は八本に印をつけて四本を残し、五バー規則は六本に印をつけて三本を残す。バーが動いている間に見えているもののうち、十のうち三から二つに一つは、あとには残らない。
その長さは正確で、覚えて帰る価値がある。印はt+1で初めて現れ、t+kで確定するので、k本先を見る規則は、どのシグナルも最初に現れてからさらにk-1本のあいだ暫定のままにする。五バーのピボットは四本ちらつく。それは実装の欠陥ではない。定義がそう求めているのだ。
ずれに逆の符号はありえない
面白いのは、シグナルが動くことではない。動きが一方向にしか向かないこと、そしてその理由が統計的ではなく論理的であることだ。
ピボット安値の条件を書き出してみよう。バーtがシグナルであるのは、t+1からt+kまでの終値がすべてそれより上にあるからだ。ならばt+kの価格はtの価格より上である——必然的に。それこそがtをシグナルにした条項のひとつなのだから。チャートが見せる価格と、あなたが実際に払えたはずの価格との差は、一度の例外もなく正である。標本がどれだけ大きくても小さくても、それは変わらない。これは規則の性質であって、規則を走らせた市場の性質ではない。
大きさのほうは経験的な部分であり、表はそれを、選ばれなかったバーが同じ区間で示す値から切り分けている。最後の列は同じk本分の変化を、シグナルが乗りえたすべてのバー、すなわち先頭からk本、末尾からk本を除いたすべてのバーで測ったものだ。つまり、ずれが本当にノイズだったなら期待されるはずの姿である。どの集合を取るかは、聞こえるより効く。代わりに六十本すべてで平均すると三つの数字は0.19、0.30、0.48となり、下の段落の最後の比は6.0から3.9に変わる。
| 先読みのバー数 | シグナル | 平均のずれ | 最小 | 同じ区間、任意のバー |
|---|---|---|---|---|
| 二 | 9 | +1.00 | +0.50 | +0.18 |
| 三 | 4 | +0.80 | +0.20 | +0.21 |
| 五 | 3 | +1.87 | +0.70 | +0.31 |
平均のずれを最後の列と突き合わせて読んでほしい。ノイズならゼロをまたいで散らばり、同じ区間で任意のバーが示す値とだいたい同じところに落ち着くはずだ。これはそのどちらでもない。最小のずれがどのウィンドウの長さでも正であって、平均だけの話ではない。しかも平均は、上から順に、選ばれなかった値の5.4倍、3.9倍、6.0倍である。三つの行どうしを本当に比べることはできない——四つのシグナルは四つのシグナルだ——が、どの行も隣の列とは比べられ、三つとも同じことを言っている。
手仕舞い側でも同じ議論が裏返しに働く。ピボット高値とは、その後の終値がすべてその下を通るバーのことだから、それを後知恵で売るのは、実際に得られたはずの値より上で売ることになる。下の七つの往復売買では、建値は平均して1.03ポイントあなたに有利にずれ、手仕舞いは1.33ずれる。この二つを七回の売買にわたって合わせると、二つの版のあいだの16.50ポイントの差がそっくり説明され、余りは出ない。
それがbacktestの数字にすること
ずれた建値は、結果をずらすだけでは済まない。あなたがそれを判断するのに使うあらゆる数字を作り変える。しかも、人が最も説得されやすい向きに作り変える。
最初に歪むのは勝率だ。定義上その両側二本より安いバーで建てるということは、取引が局所的な最小値から始まるということであり、小さな負けになっていたはずの取引が小さな勝ちに変わる。下の七つの取引では、リペイント版は七つとも勝ち、正直版は四つ勝つ。ここでの勝率百パーセントは、並外れた規則の証拠ではない。後から選ばれた建値の証拠である。
次に歪むのはプロフィットファクターで、こちらはもっと大きく歪む。負け取引がひとつもなければ、総利益を総損失で割った値に分母はない。だからリペイント版のプロフィットファクターは大きいのではなく、定義されないのだ。正直版は2.39で出てくる。これは人が合理的に行動しうる、まっとうな数字である。この二つの読みの違いは、程度の違いではない。
ほとんどの人が挙げる手がかりは勝率だが、本当の手がかりはdrawdownである。各取引が最初の二本のバーで建値に対してどこまで逆行したかを測ってみよう。リペイントされた建値では、その値は七つすべてでちょうどゼロだ。ピボット安値とはその近傍で最も安い終値であり、その下に価格が行ける場所はないからである。正直な建値は平均0.33逆行し、最悪では1.40に達する。逆行がまったくない資産曲線は、たいてい痛みを避ける方法を見つけたのではない。たいてい、結果の向こう側から建値を選んだのだ。
もうひとつの入り口——早く読みすぎた上位足
ピボットの場合は印が飛ぶので目に見える。もうひとつのよくある経路は静かで、それこそ計算する価値がある。チャート上では何ひとつちらつかないからだ。
このモジュールの六十本の終値を、五本ずつ十二のブロックにまとめよう。五分足が二十五分足にまとまるのと同じことだ。各ブロックには終値があり、それは五本のうち最後のバーのものである。待てと言われていないその値の要求は、ブロックの最後のバーではなく最初のバーでそれをあなたに渡す。つまりブロック内のどのバーでも、あなたのチャートはブロックがどこで終わるかをすでに知っている。
それに値をつけよう。ブロックは最初のバーから終値まで平均1.675ポイント動き、その向きは十二すべてで四本早く分かっている。ブロックの最初のバーからそのブロック自身の向きに従う規則は、したがってシリーズ全体で20.10ポイントを、勝率百パーセントで計上する。シリーズ全体でも総額71.00ポイント、正味5.80ポイントしか動かないのだから、この漏れはシリーズが含む全運動量の28.3%に相当する。しかもそれは、画面上で印がひとつも動かないまま積み上がる。
だからプラットフォームの文書にある修正は、ひとつではなく二つの変更からなる。先読みを切って上位足の値を要求し、そのうえで現在の値ではなく直前の確定値を取る。前者は、まだ終わっていないバーを要求が返すのを防ぐ。後者は、まだ開いているバーを返すのを防ぐ。片方だけをやって片方をやらない道具は依然として漏れており、しかも静かに漏れる。
同じ規則に、二度値をつける
議論の全体を、ひとつの戦略として示す。同じ六十個の数の上を、同じ規則と同じ手仕舞いで、二通りに走らせたものだ。二バーのピボット安値でロングに入り、次の二バーのピボット高値で出る。二つの列で違うのは、シグナルをいつから知ってよいことにするか、それだけである。
リペイントする版はチャートがやることをやる。建値をピボットのバーに、ピボットの価格で置く。仕上がったチャートが印を示しているのがそこだからだ。正直な版はそれを二本あとの、そのバーの終値に置く。それが、まだ出ていないバーに問い合わせずにピボットを特定できた最初の瞬間である。ほかには何も変えない。同じ規則、同じシリーズ、同じ七つの往復売買だ。
| 建てのバー | 仕舞いのバー | 描かれたとおり | 知りえたとおり |
|---|---|---|---|
| 2 | 5 | +3.70 | +0.60 |
| 7 | 10 | +4.60 | −0.70 |
| 18 | 25 | +0.10 | −1.30 |
| 26 | 29 | +1.20 | +0.30 |
| 30 | 36 | +3.90 | +2.10 |
| 39 | 52 | +5.60 | +3.70 |
| 54 | 55 | +1.30 | −0.80 |
リペイントする列は七つの取引で合計20.40ポイント、平均2.91、勝ち七つ、負けはひとつもない。正直な列は合計3.90、平均0.56、勝ち四つ、負け三つである。修正は戦略を壊さない。プロフィットファクター2.39で3.90ポイントというのは破滅ではなく本物の結果だ——もっとも、七つの往復売買で3.90ポイントとなると、レッスン10のコストはもはやそれに対する丸め誤差ではなくなっている。消えたのは、この戦略を目覚ましく見せていた部分であり、その部分こそ二バーのずれだった。宣伝されていた合計のうち五分の一が残る。
どの取引が損害を負っているかに注目してほしい。二つめは4.60ポイントから0.70の負けに、三つめは0.10から1.30の負けに変わる。どちらも、見かけの利益がずれより小さかった限界的な取引だったからだ。大きな勝ち二つは縮んだ形で生き残る。これが一般的な姿である。リペイントは結果を一様に縮めるのではなく、限界的な取引を負けから勝ちに変える。そして規則に優位があるかどうかを決めるのは、まさにその集団なのだ。
正直な留保をひとつ。七つの取引は例示であって推定ではないし、モジュールのシリーズは市場ではなく六十個の数である。移るのは80.9%ではない。移るのは、ずれの符号がどの取引でも一定だったこと、その大きさが規則が先読みしたちょうどその本数分の値動きだったこと、そして二つの列が完全に突き合うことである。建値側の1.03と手仕舞い側の1.33が16.50ポイントの差を説明し、説明できないものは残らない。
いくつのシグナルを見ればよいか
誰もが勧める検査は、正しい検査だ。バーが動いている間にシグナルがどこにあるかを書き留め、引けたあとにもう一度見て、まだそこにあるかを確かめる。誰もそれに添えないのが、観測の回数である。それがないと、この検査は安心させる方向に人を誤らせうる。
どのシグナルも、動く確率が未知の独立な試行だと考えよう。五つのシグナルを見れば、その半分を動かす道具は0.97の確率で捕まる。だから三つから五つを見よという通例の助言は、ひどく壊れている場合には理にかなう。軽い場合には理にかなわない。十にひとつのシグナルを動かす道具を百回のうち95回でよいから捕まえるには二十九のシグナルが要り、二十にひとつなら五十九が要る。
逆から読むともっと役に立つ。興味深いのは、検査を通ってしまう道具のほうだからだ。きれいな観測五回が排除するのは45.1%を超えるリペイント率だけで、それ以上ではない。十回で25.9%、二十回で13.9%、五十回で5.8%を排除する。つまり一日の午後だけ見てきれいだった道具とは、壊滅的には壊れていないと示せた道具のことであり、それは知る価値があるが、決定論的だと示したこととは別である。
二つのことが、これを聞こえるほど高くつかないものにしている。第一に、バーリプレイは待ち時間を圧縮する。五分足の三日分を一晩で歩かせて、五回ではなく三十回の観測を集められる。第二に、ソースコードが手に入るなら、標本を取る代わりに問題を一挙に決着させられる——前方にずらしたバーを参照する規則や、待ちのない上位足要求は、一部の割合ではなくすべてのシグナルでリペイントするのであり、一度読めば、五十回の観測が範囲を絞るだけのことに答えが出る。
これで片づかないこと
リペイントする指標は不誠実だ、ということ。その大半は意図ではなく既定の動作である。上位足を読む手軽なやり方は、別途指定しないかぎり未完成のバーを返すし、標準のスイング関数は両側のバーで定義されている。つまり当たり前のことを書いた作者は、そう決めたわけでもなくリペイントする道具を出荷する。これはあなたの対応にとって重要だ。道具に向ける問いは、それが何をするかであって、作者が何を意図したかではない。上の検査は、二つめに答えなくても一つめに答えてくれる。
待つことが、この訂正の唯一の代価だということ。正直な列は確かに売買できる。ピボットの二本後には、そのピボットが確定したかどうかが分かるからだ。そしてそれは、チャートが誘っているやり方ではない。チャートは、マーカーが画面に出ているあいだにそれで動けと誘う。同じ六十本の終値でそうしてみよう — 十三個の暫定的な安値マーカーそれぞれの次の終値で買い、その後の最初の暫定的な高値マーカーの次の終値で売る — すると同じルールは十回の往復で合計マイナス5.50ポイント、十のうち三勝、プロフィットファクター0.59になる。つまり、描かれた列と知りうる列とのあいだの16.50ポイントは、リペイントが記録から奪うぶんであり、知りうる列とこの列とのあいだの9.40は、画面の求めるとおりに動くトレーダーから奪うぶんである。このレッスンが測っているのは前者の差だ。後者のほうが大きく、ここでは測っていない。
中心化した規則や前を見る規則は、だから役に立たない、ということ。右側に二本を要するピボットは、過去の記述として申し分なく、研究の入力としても申し分ない。それがリペイントになるのは、まだ知りえないバーの上に描かれたときだけだ。自分が先読みするのと同じ本数だけ遅らせれば、リペイントは完全になくなり、情報量は少しも減らない——上の正直な列こそ、その同じ規則であり、依然として利益が出ている。欠陥はタイムスタンプにあって、式にはない。
80.9%があなたの銘柄にも当てはまる、ということ。当てはまらないし、20.40も当てはまらない。構成された六十本の終値の上の七つの往復売買は、再計算できるように作られた実演であって、何かの推定ではない。移るのは構造のほうだ。ずれの符号は規則が決めており、その大きさは規則が条件に取ったちょうどその本数分の値動きであり、損害が集まるのは限界的な取引である。この表がやるとおりに自分の銘柄を測れば、自分の数字が出る。
目視の検査に通れば道具が決定論的になる、ということ。それはリペイント率を挟み込むだけで、それ以上ではない。しかも短い試行から出る境界はゆるい。きれいなシグナル五つは45.1%までの率を生かしたままにし、二十でも13.9%を残す。道具は、あなたが標本に取らなかった条件でだけリペイントすることもありうる——上位足でだけ、セッションの境をまたぐときだけ、二つの条件が重なるときだけ。標本抽出ではそれを排除できない。コードを読めばできる。
これで戦略の良し悪しが決まる、ということ。決まるのは、そもそもあなたが戦略を見ているかどうかだ。リペイントしない道具は、建値が実際に利用可能だったbacktestを与えてくれる。それは問いの前提であって答えではない——そして正直な数字は、その規則が悪いと言うかもしれない。それを裁くのはレッスン17の期待値と、結果が定まるまでにどれだけかかるかについてのレッスン19の算術である。このレッスンがするのは、裁かれる記録が実際に起きたことの記録であると確かめることだけだ。
練習問題
- いちばん信頼している道具のずれに、値をつける。列を三つ用意する。バーが動いている間に、各シグナルとそれが置かれている価格を書く。バーが引けたあと、その同じシグナルがいまどこにあるかを書く。三列目には、その差に自分の銘柄の一ポイントあたりの価値を掛けたものを入れる。三回ではなく二十回の観測がたまるまで続けること。きれいな二十回はリペイント率を13.9%未満に抑えるが、三回では63%未満のすべてがなお可能なまま残る。三列目の合計こそ、戦略が判断される前にその道具があなたに負わせている費用である。
- 定義の中の先読みを見つけ、ちょうどその分だけ遅らせる。チャート上の各指標について、その式が印をつけたバーより何本あとまで参照しているかを書き出す。ゼロなら、この経路ではリペイントしえない。ゼロより大きければ、それがシグナルが暫定のままでいる本数であり、ずれが積み上がる区間である。そのうえで、各シグナルをその本数だけ遅らせて規則を走らせ直し、二つの資産曲線を比べる。その差はあなたが見つけた不具合ではない。もとの結果のうち、決して手に入らなかった部分である。
- 勝率を見る前にdrawdownを見る。検討中のbacktestを何でもよいから取り、各取引が最初の数本で建値に対してどこまで逆行したかを測る。長い一連の取引にわたってその値がゼロ近くなら、何が建値を選んでいるのかを問うべきだ。後のバーを参照せずに選ばれた建値は、ときにタイミングが悪くなるはずであり、記録はそれを示すはずだからである。逆行がまったくない曲線は、結果を見てしまった規則の最も強い単独の症状であり、指標の仕組みを何ひとつ知らなくても目に見える。
出典。 Athanasios Orphanides「Monetary Policy Rules Based on Real-Time Data」(American Economic Review、2001年)は、取引の外にある同じ失敗について。改訂後のデータでは筋が通って見える政策の処方が、当時実際に公表されていた数字で計算し直すと逆転する。 Dean Croushore と Tom Stark「A Real-Time Data Set for Macroeconomists」(Journal of Econometrics、2001年)は、系列のあらゆる版を保存しておく実務について。研究を、いま分かっていることではなく当時分かっていたことの上で走らせられるようにするためである。 Halbert White、「A Reality Check for Data Snooping」(Econometrica、2000年)は、結果を知ったうえで選ばれた結果が、そうでない結果とは異なる立証の基準を要する理由について。 David H. Bailey, Jonathan M. Borwein, Marcos López de Prado と Qiji Jim Zhu「Pseudo-Mathematics and Financial Charlatanism」(Notices of the American Mathematical Society、2014年)は、誰かが不正らしきことを何ひとつしないうちに、標本内の記録がどこまで水増しされうるかについて。 TradingView, Pine Script v5 User Manualのリペイントの節は、どの構文が未完成のバーを返すのか、そして二つの修正が何であるのかについての一次的な記述である。
検査は、チャート上のあらゆる線に投げかける一つの問いに尽きる——ここに描かれた値は、まだ起きていなかった何かに依存しているか。答えがいいえなら、目の前の記録は実際に利用可能だった決定の記録であり、それが良い決定だったかというより難しい問いに進める。答えがはいなら、その記録は戦略についての弱い証拠なのではない。別の戦略についての証拠である——結果が分かったあとで選ばれた価格で建てた戦略の。そしてそれをどれだけ積み上げても、あなたが実際に手がける戦略についての知識にはならない。レッスン50は、どのチャートにもある最も使われる線を取り上げ、その接触を数える。このモジュールの六十本の終値で3回、あるいは22回。どのプラットフォームも表示しない許容幅しだいだ。そして保持率は53パーセント、線を一本も引かずにテープが返してくる45に対しての数字である。
教育目的のみ。 トレードには重大な損失リスクが伴います。金融助言ではありません。過去の実績は将来の結果を保証するものではありません。
💬 ディスカッション(コメント0件)
コメントを読み込んでいます…