Арилжаа

Зах зээл

Платформ

Хамтрах

Урамшуулал

Танд

Backtesting & Walk-forward validation хэрхэн хийх вэ?

2025-06-18

Форекс арилжаанд ашиг орлого тогтвортой байлгах, эрсдэлийг хянахын тулд стратеги турших, баталгаажуулах нь зайлшгүй шаардлагатай алхам юм. Стратеги маань өнгөрсөн зах зээлийн өгөгдөл дээр хэрхэн ажилласныг шалгахдаа бид Backtesting ашигладаг бол ирээдүйд бодит нөхцөлд хэрхэхийг урьдчилан үнэлэхдээ Walk-Forward Validation хэрэг болдог.

Backtesting & Walk-forward validation хэрхэн хийх вэ?

Эдгээр аргууд зөв хийгдэхгүй бол буруу найдвар төрүүлж, бодит арилжаанд алдагдал авчирч болзошгүй. Иймд энэхүү нийтлэлд та Backtesting болон Walk-Forward Validation-г хэрхэн оновчтой хийх, тэдгээрийн онцлог, алхмууд, ашиглалтын стратегиудыг нарийвчлан судлах болно.

1. Backtesting гэж юу вэ?

Backtesting нь тухайн арилжааны стратегийг өнгөрсөн зах зээлийн өгөгдөл дээр турших арга юм. Энэ нь:

  • Стратегийн үр ашиг, эрсдэл, өгөөжийг тооцоолох
  • Parameter (тогтмолууд)-ийн оновчлол хийх
  • Бодит арилжаанд туршилтын үр дүнг дүгнэх боломж олгодог

Жишээ нь, хэрэв танд 50 өдрийн moving average дагасан стратеги байвал 2015–2024 оны ханшийн өгөгдөл дээр энэ стратеги ашиглаж хэрхэн ажиллахыг шалгана.

1.1 Backtesting-ийн давуу тал

  • Эрсдэлгүй орчинд стратеги турших боломж
  • Стратегийн сул болон давуу талыг илрүүлэх
  • Хариу арга хэмжээ төлөвлөхөд дэмжлэг үзүүлдэг

1.2 Гэхдээ анхаарах зүйлс:

  • Өгөгдөл хэт өнгөрсөнд төвлөрсөн байж болно
  • "Overfitting" буюу өгөгдөлд хэт тааруулалт үүсч магадгүй
  • Зах зээлийн нөхцөл өөрчлөгдөж болохыг харгалзах ёстой

2. Backtesting хийх үндсэн алхмууд

2.1 Стратеги тодорхойлох

Хамгийн эхэнд таны арилжааны дүрэм, нэвтрэх ба гарах дохио, stop loss, take profit зэрэг бүрэн логик шаардлагатай. Тодорхойгүй логик бол backtest хийж болохгүй.

Жишээ стратеги:

  • Нэвтрэх: 20 MA-г 50 MA давж гарсан үед long
  • Гарах: 20 MA буцаж 50 MA-аас доош орсон үед
  • Stop Loss: 1.5%
  • Take Profit: 3%

2.2 Өгөгдөл бэлтгэх

Ямар ч алдаагүй, чанартай түүхэн ханшийн өгөгдөл чухал. Ихэвчлэн:

  • OHLCV (Open, High, Low, Close, Volume) мэдээлэл
  • 1H, 4H, Daily, Weekly timeframe ашигладаг

Санамж: Буруу data бол буруу дүгнэлт. Data-г цэвэрлэх, нягтлах, gap шалгах хэрэгтэй.

2.3 Кодчилол хийх

Python, R, MetaTrader, TradingView (Pine Script) зэрэг хэрэгслээр backtest хийнэ.

if ma20 > ma50 and position == None:
buy()
elif ma20 < ma50 and position == 'long':
close()

Энд програмчлалын үндэс шаардагдана. Python ашиглахад илүү уян хатан, нарийвчилсан статистик дүн шинжилгээ хийх боломжтой.

2.4 Гүйцэтгэлийг үнэлэх

Backtest-ийн үр дүнгээ дараах үзүүлэлтүүдээр дүгнэнэ:

  • Net Profit: Ашиг эсвэл алдагдал
  • Win Rate: Амжилттай арилжааны хувь
  • Max Drawdown: Хамгийн их уналт
  • Sharpe Ratio: Эсэргүүцэлтэй өгөөжийн хэмжүүр
  • Expectancy: Дундаж арилжаанаас хүлээгдэх үр дүн

3. Overfitting буюу хэт тааруулалтын аюул

Backtest сайн үр дүн гаргалаа гээд стратеги чинь сайн байна гэсэн үг биш. Заримдаа стратеги маань яг тухайн түүхэн өгөгдөлд л тохирсон буюу "overfitted" байж болдог. Энэ нь:

  • Үнэмлэхүй тохирсон дүрэм ашигласан
  • Parameter-уудыг дэндүү нарийн тааруулсан
  • Шалтгаант бус correlation ашигласан

Жишээ: 13.8 MA ашиглах нь 13, 14-өөс илүү үр дүнтэй харагдах ч бодит зах зээлд онцын ач холбогдолгүй байж магадгүй.

Энэ асуудлаас зайлсхийхийн тулд Walk-Forward Validation ашигладаг.

4. Walk-Forward Validation гэж юу вэ?

Walk-Forward Validation (WFV) нь backtest-ийн өргөтгөл хэлбэр бөгөөд стратегийг жижиг үе шатаар туршиж, тухайн үеийн тохируулгыг дараагийн хугацаанд турших аргыг хэлнэ.

Товчхондоо:

  • Train Window: Өнгөрсөн өгөгдөл дээр тохируулга хийж стратеги бүтээх
  • Test Window: Бодит нөхцөлд (ирээдүйн data дээр) шалгах
  • Walk Forward: Train-Test цонхоо урагш гулсуулах

4.1 Яагаад хэрэгтэй вэ?

  • Бодит арилжааны орчныг дуурайлган туршдаг
  • Зах зээлийн нөхцөл өөрчлөгдөхийг харгалздаг
  • Overfitting илрүүлэх хүчтэй арга

5. Walk-Forward Validation-ийн алхмууд

5.1 Өгөгдөл хуваах

Өгөгдлийг дараах байдлаар хуваана:

  • Training Period (сургалт): жишээ нь 1 жил
  • Testing Period (баталгаажуулалт): жишээ нь дараагийн 3 сар
  • Цаашлаад train-test цонхоо “алгадах” буюу "slide" хийж урагшлуулна

Жишээ болгон 12 сарын сургалтын хугацаа (training period), түүн дараах 3 сарын баталгаажуулалтын хугацаа (testing period)-ийн хослолыг авч үзье. Энэ загварыг алхам алхмаар урагшлуулна:

  • Эхний үе: 2018 оны 1 сараас 2018 оны 12 сар хүртэлх хугацааг сургалтад ашиглаж, дараагийн 2019 оны 1 сараас 3 сар хүртэлх хугацааг тест хийхэд хэрэглэнэ.
  • Хоёрдугаар үе: 2018 оны 4 сараас 2019 оны 3 сар хүртэл сургалтын өгөгдөл, 2019 оны 4 сараас 6 сар хүртэл тестийн өгөгдөл болно.
  • Цаашлаад энэ байдлаар сургалт болон тестийн хугацааг урагш гулсуулан (slide хийж) үргэлжлүүлнэ.

5.2 Стратеги оптимизаци

Training period дээр стратегийн тохиргоонуудыг (жишээ нь: moving average-ийн утга, stop loss ratio гэх мэт) хайж олно. Grid Search, Bayesian Optimization гэх мэт аргыг ашиглаж болно.

5.3 Туршилт хийх

Training period-ийн үндсэн дээр олдсон тохиргоог Testing period дээр шууд ашиглана. Энэ нь бодит арилжаатай хамгийн ойролцоо нөхцөл.

5.4 Олон давталт

Train-test циклийг олон удаа давтах тусам дүгнэлт улам найдвартай болно. Ямар үед стратеги сайн ажиллаж, ямар үед унаж байсныг тодорхойлно.

5.5 Aggregation буюу нийлүүлэлтийн шинжилгээ

Бүх test period-ийн дүнг нэгтгэн дараах параметрүүдийг гаргана:

  • Дундаж өгөөж
  • Эерэг үеийн хувь
  • Max Drawdown
  • Stability Score
  • Sharpe Ratio-ийн тархалт

6. Backtesting vs Walk-Forward Validation

Эдгээр хоёр аргыг дараах онцлогуудаар харьцуулж болно:

  1. Зорилго:
    • Backtesting нь стратегийн үндсэн гүйцэтгэлийг өнгөрсөн өгөгдөл дээр шалгах зорилготой.
    • Walk-Forward Validation нь стратегийг бодит нөхцөлд ажиллах эсэхийг баталгаажуулах зорилготой.
  2. Өгөгдөлд хандах хандлага:
    • Backtesting нь бүх хугацааны түүхэн өгөгдлийг нэг дор ашигладаг.
    • Walk-Forward Validation нь сургалтын болон тестийн өгөгдлийг урагш гулсах байдлаар (цонх болгон) ашигладаг.
  3. Overfitting илрүүлэх чадвар:
    • Backtesting нь overfitting илрүүлэхдээ сул.
    • Walk-Forward Validation нь overfitting-ийг илрүүлэх, сэргийлэхэд маш сайн тохиромжтой.
  4. Цаг хугацаа зарцуулалт:
    • Backtesting хийхэд харьцангуй хурдан.
    • Walk-Forward Validation нь илүү цаг, тооцоолол шаарддаг.
  5. Үр дүнгийн найдвартай байдал:
    • Backtesting нь хязгаарлагдмал итгэлтэй үр дүн өгч болдог.
    • Walk-Forward Validation нь илүү найдвартай, бодит нөхцөлд ойр үр дүн гаргаж чаддаг.

7. Програмчлалаар хэрэгжүүлэх тухай

Python ашиглах нь backtest, walk-forward validation хоёуланд тохиромжтой. Хамгийн түгээмэл сангууд:

  • Backtesting.py — классик backtest
  • bt — портфолио төвтэй стратеги
  • zipline — Quantopian-ийн үндсэн хөдөлгүүр
  • VectorBT — хэт хурдан, модульчлагдсан шинэлэг сан
  • Fastquant — дата интеграц сайтай

Walk-forward validation хийхэд хэрэглэгдэх кодчиллын зарчим:

for train_start, train_end, test_start, test_end in time_windows:
train_data = df[train_start:train_end]
test_data = df[test_start:test_end]

best_params = optimize_strategy(train_data)
results = run_strategy(test_data, params=best_params)
save_results(results)

8. Форекс арилжаанд хэрхэн ашиглах вэ?

8.1 Стратеги хөгжүүлэлт

Backtesting ашиглан анхны санаа, логикийг шалгах
Walk-forward validation-аар тухайн санаа бодит нөхцөлд тэсвэртэй эсэхийг баталгаажуулах

8.2 Проп фирмд тэнцэхийн тулд

FTMO, MyForexFunds зэрэг шалгалтууд дээр тогтвортой, Drawdown хязгаар давахгүй стратеги хэрэгтэй. Walk-forward validation хийх нь эдгээр шаардлагад нийцэх эсэхийг урьдчилан мэдэх гол арга.

8.3 Эрсдэлийн менежмент

Validation-д орсон бүх үеийн Drawdown, Expectancy зэргийг анализ хийснээр Position Sizing, Capital Allocation шийдвэрүүдийг гаргахад тус болно.

Дүгнэлт

Backtesting нь стратеги боловсруулах анхны алхам бол Walk-Forward Validation нь тухайн стратегийн бат бөх байдлыг шалгах хоёр дахь чухал үе шат юм. Эдгээр аргуудыг зөв хослуулснаар та зах зээлийн өөрчлөлтөд тэсвэртэй, бодит ашиг өгч чадах арилжааны системтэй болох боломжтой.

Гол санаанууд:

  • Backtest бол өнгөрсөн дээр турших арга, Walk-forward бол ирээдүйг дуурайлгах арга
  • Overfitting бол арилжааны стратегийн хамгийн том дайсан
  • Walk-forward validation хийхгүйгээр стратеги ашиглах нь "тэсэлгээтэй" арилжаанд орохтой адил

Эцэст нь хэлэхэд, зөвхөн өндөр үр дүнтэй биш, найдвартай, тогтвортой стратеги урт хугацаанд амжилт авчирна. Backtest болон Walk-Forward Validation бол үүний баталгааг хангах үндсэн багажууд юм.

Ижил төстэй блог