Look-ahead Bias — це помилка, за якої інформація, доступна пізніше, впливає на раніше ухвалене рішення, навчання моделі або вибір правила. Важливо, коли відомості справді можна було знати, а не лише яку дату має рядок таблиці. Виміряти згодом результат уже ухваленого рішення — саме по собі не помилка.
Петро перевіряє на комп’ютері, як його правило торгувало б у минулому. Таблиця вже містить усю історію, тому програма може випадково прочитати те, чого Петро тоді знати не міг. Саме так QuantConnect пояснює Look-ahead Bias. Для кожного вхідного значення слід запитати: чи було воно доступне в момент рішення? Самої дати може бути замало. Подія могла статися вранці, повідомлення вийти пізніше, а до трейдера дійти ще згодом. Тест має дотримуватися цієї послідовності, а не просто впорядкувати рядки за датою. [2]
Цінова свічка підсумовує певний період: ціни відкриття й закриття, максимум, мінімум та обсяг. Поки період триває, остаточні значення невідомі. Тому Петро не може купити на його початку за сигналом від остаточного максимуму цієї ж свічки. LEAN, рушій QuantConnect, передає завершені дані відповідно до EndTime, тобто часу закінчення. Поєднуючи короткі й довгі періоди, доступність потрібно перевірити для кожного ряду окремо. Зсув на рядок допомагає лише тоді, коли справді відповідає доступності даних з урахуванням часових поясів і затримок. [1]
Петро завантажує економічні показники з датами минулих місяців. Деякі числа відтоді виправили. Використавши сьогоднішнє уточнене значення в давнішому рішенні, він додасть знання, якого тоді не було. Тому St. Louis Fed розрізняє сучасний погляд на минуле у FRED та історичні версії, доступні через ALFRED. Для таких даних потрібна версія, оприлюднена на той час. Дати місяця, якого стосується показник, недостатньо; навіть історична версія з денною датою не доводить точної доступності протягом цього дня. [3]
Петро відокремлює старіші навчальні дані від новіших тестових. Але потім обчислює середнє всієї таблиці для перетворення входів. Майбутнє повернулося іншим шляхом. Документація бібліотеки машинного навчання scikit-learn тому вимагає налаштовувати перетворення лише на навчальній частині й потім застосовувати їх до тестової. Так само перевіряємо заповнення пропусків і вибір вхідних ознак. Важливі також результати, на яких модель навчається: щойно відкрита угода ще не має відомого підсумку. Оцінити його пізніше можна, але повернути до давнішого навчання — ні. [4]
Історична свічка показує максимум і мінімум, але сама не відтворює повної послідовності реальних угод. Тому TradingView пояснює припущення симулятора про рух ціни всередині свічки. Петро має розрізняти появу сигналу, надсилання заявки та можливе її виконання. Продаж на пізніше виявленому максимумі не стає доступним правилом лише тому, що симуляція може знайти таку ціну. Витік майбутніх відомостей і надто сприятливе припущення про виконання — різні помилки. Докладніші дані можуть допомогти, але не гарантують реального виконання. [5]
Freqtrade Lookahead Analysis порівнює повторні тести та шукає зміни індикаторів або сигналів. Він може виявити обчислення, що читає майбутні рядки. Однак не перевірить гілку рішень, яка під час тесту взагалі не спрацювала. Тому поряд із результатом треба знати покриття. Документація також попереджає про хибні спрацьовування, наприклад коли стратегія поводиться по-різному на одному ринку й на цілій групі. Чистий результат не підтверджує всього, а виявлену різницю треба пояснити. Перевірка походження даних залишається частиною роботи. [6]
Петро прибирає майбутній вхід, і чудовий результат погіршується. Старий звіт уже не можна видавати за результат виправленої процедури. Але й після виправлення робота не закінчена. TradingView відрізняє Look-ahead Bias від Overfitting: перенавчена модель надто пристосувалася до особливостей даних, на яких її налаштовували. Це може статися без майбутніх відомостей. Натомість помилка часу можлива навіть у простому правилі. Сама різниця між історичним і пізнішим результатом не пояснює, яка з помилок або зміна ринку її спричинила. [5]
Корисний запис дозволяє відновити знання Петра на той момент: версію даних, правила, стан рахунку, доступні входи й надіслані заявки. До нього додають припущення виконання та витрати. Paper Trading, тобто тренувальна торгівля без справжніх грошей, може забезпечити поточні записи, але симуляція залишається відмінною від реальної торгівлі. Американська організація National Futures Association (NFA) вказує на обмеження гіпотетичних результатів щодо ліквідності, різниці між очікуваною ціною й ціною виконання та рішень під тиском збитків; її правила реклами стосуються визначених членів. Прибрати помилку часу означає отримати чесніший тест, а не обіцянку майбутнього прибутку. [7]
Коли тест уже знає, який період зростатиме
Для повної картини прочитайте також Backtesting, Overfitting, Walk-forward Analysis, Survivorship Bias, Paper Trading. На цю статтю також посилаються Walk-forward Analysis, Overfitting, Survivorship Bias, On-chain Analysis.
01Чи достатньо зсунути індикатори на один рядок?+
Іноді це виправляє конкретну помилку, але не є універсальним рішенням. Дані могли опублікувати із затримкою, пізніше виправити або вже використати під час підготовки всієї таблиці. Визначальною є доступність кожного входу в момент рішення.
02Чи можна використовувати пізніший результат для оцінки?+
Так. Щоб оцінити давніший прогноз, потрібно знати подальший результат. Помилка виникає тоді, коли результат повертають у минуле: він впливає на попереднє рішення, навчання або вибір правила, хоча тоді ще не був відомий.