28 вересня 2026 · дослідження

Ваша паперова стратегія перезапустилася з іншою позицією: лист про відновлення стану

Ваша паперова стратегія перезапустилася з іншою позицією: лист про відновлення стану

Ви розповіли, що ваш процес паперової торгівлі вночі аварійно завершився. Ви перезапустили його до наступного рішення, не побачили помилок і вирішили, що він продовжив роботу з того самого місця. А потім він подав ордер на купівлю активу, який у вас уже був. Тепер ви хочете знати, чи є помилка у стратегії.

Можливо. Але спершу перевірте, чи знає перезапущений процес те саме, що й паперовий рахунок. Перезапуск — це проблема відновлення стану: позиції, кошти, відкриті ордери та вся пам’ять стратегії, що впливає на наступне рішення, мають збігатися. Повернути код до роботи — найлегша частина.

Що стратегія вважала правдою до збою?

Запишіть останнє рішення, яке процес ухвалив перед зупинкою. Для кожного інструмента, яким торгуєте, зафіксуйте цільову позицію, фактичну позицію на рахунку, невиконані ордери та стан сигналу, що впливатиме на наступну дію. Якщо таких записів немає, ви не зможете визначити, чи відновив перезапуск стан, чи лише запустив стратегію заново.

Уявімо, що ваша годинна стратегія купує 1 одиницю, коли сигнал тренду стає позитивним, а потім утримує позицію, доки сигнал не стане негативним. О 14:00 процес надсилає ордер на купівлю, але аварійно завершується, не встигнувши записати, що ордер прийнято. Паперова торгова платформа виконує ордер. Після перезапуску стратегія не бачить записаної позиції, а сигнал усе ще позитивний, тож надсилає ще один ордер на купівлю. Сигнал поводиться послідовно. А от дані про активи на рахунку застаріли.

Саме тому перед надсиланням нових ордерів потрібно звірити поточну позицію на рахунку зі збереженим станом стратегії. Локальний знімок стану може бути корисним, але джерелом істини щодо фактично виконаних ордерів є рахунок або торгова платформа.

Який стан має зберегтися після перезапуску?

Почніть зі стану, який може змінити наступний ордер. Для кожного оновлення зберігайте надійний запис із часовою міткою та версією; перш ніж змінювати логіку відновлення, створіть копію, щоб потім відтворити збій.

СтанЧому це важливоЩо перевірити під час відновлення
Позиції та коштиВони визначають рівень ризику й доступну купівельну спроможністьПорівняйте збережені значення з даними паперового рахунку
Відкриті ордериОрдер міг виконатися, поки процес не працювавЗапитайте статус ордерів і звірте часткові виконання
Пам’ять сигналівПеретини, періоди очікування та утримання позиції можуть охоплювати кілька рішеньВідновіть останні зафіксовані вхідні дані рішення
Остання оброблена подіяВона визначає, звідки стратегія продовжить обробляти даніВідтворіть події після цієї точки, не застосовуючи їх повторно

Про пам’ять сигналів легко забути. Стратегія, що торгує на перетині, може зберігати вчорашнє значення індикатора, щоб виявити новий перетин. Якщо вона стартує з порожнім значенням, то може сприйняти наявну умову за нову подію. З таймером періоду очікування та сама проблема: перезапуск не має непомітно скидати правило, яке мало діяти й надалі.

Як зробити відновлення відтворюваним?

Призначте кожному ордеру стабільний клієнтський ID, утворений на основі запуску стратегії та рішення, яке його породило. Якщо після тайм-ауту процес повторить спробу, він зможе перевірити, чи вже створив ордер для цього рішення, замість того щоб розміщувати дублікат. Фіксуйте зміни стану лише після підтвердження відповідної події на рахунку та зберігайте ID ордера й виконання, які пояснюють цю зміну.

Потім перевірте саме ту межу, на якій стався інцидент. Проведіть стратегію через рішення, збережіть стан, зупиніть її та відновіть, використовуючи позиції й історію ордерів паперового рахунку. Порівняйте наступне рішення та отримані ордери з безперервним запуском. Повторіть перевірку з частково виконаним ордером і зі збоєм між поданням ордера та підтвердженням його прийняття. Після відновлення стратегія не має вигадувати нову позицію чи повторювати вже виконану дію.

Ведіть журнал відновлення: остання оброблена подія, час знімка рахунку, статуси відкритих ордерів, відновлена версія стратегії та перше рішення після перезапуску. Так фразу «процес знову запустився» можна буде перевірити.

Чому можна довіряти після перезапуску?

Довіряйте процесу лише тоді, коли стан рахунку та стратегії узгоджений, статуси невиконаних ордерів відомі, а наступне рішення збігається з очікуваним для безперервного запуску. Якщо не можете пояснити розбіжність, призупиніть надсилання паперових ордерів і перевірте послідовність подій. Працюючий процес ще не означає, що стратегія відновилася.

Ви вже знайшли корисний бік цього збою: він виявив припущення, з яким звичайний запуск не змушував вас стикатися. Зробіть перезапуск сценарієм, який можна відтворити, і ви знатимете, що пам’ятає стратегія, перш ніж знову доручити їй торгувати.

паперова торгівлястан стратегіївідновленнябек-тестування
ПоділитисяXLinkedInFacebookRedditHacker NewsWhatsAppTelegramEmail
← Усі статті