44 lines
1.7 KiB
Markdown
44 lines
1.7 KiB
Markdown
# Survival
| |||
| |||
Survival analysis over your own MetaTrader 5 deal history. Answers how long
| |||
trades last and when they are most likely to die, which a win rate cannot tell
| |||
you.
| |||
| |||
Companion code for the MQL5 article: https://www.mql5.com/en/articles/23928
| |||
| |||
## What it does
| |||
| |||
A win rate collapses a trade's whole life into one bit. It cannot say whether
| |||
losers die early or bleed out slowly, whether an edge decays after a certain
| |||
holding time, or whether a stop is sitting in the worst possible place.
| |||
| |||
Survival analysis is built for exactly that question, and it handles censoring,
| |||
which is the part naive approaches get wrong. A trade still open when the
| |||
history ends has not "not failed". It is censored, and dropping it or counting
| |||
it as a survivor both bias the result.
| |||
| |||
The engine reads deal history into observations, then produces the Kaplan-Meier
| |||
survival curve, the hazard rate and the cumulative hazard from a single sweep.
| |||
`SurvivalPanel.mq5` draws them.
| |||
| |||
The article covers the edge cases, which is where this kind of analysis usually
| |||
goes wrong: partial closes, hedged positions and thin samples.
| |||
| |||
## Layout
| |||
| |||
```
| |||
Include/Survival/SurvivalTypes.mqh shared types
| |||
Include/Survival/TradeHistory.mqh deal history into observations
| |||
Include/Survival/SurvivalCore.mqh Kaplan-Meier, hazard, cumulative hazard
| |||
Indicators/Survival/SurvivalPanel.mq5 the panel
| |||
Experts/Survival/SurvivalDemo.mq5 demonstration expert
| |||
```
| |||
| |||
The panel reads your account's own history, so it needs deals to be present
| |||
before it shows anything.
| |||
| |||
## Disclaimer
| |||
| |||
Educational code. Past behaviour of any model or dataset says nothing about
| |||
future results. Test on your own data and broker conditions before drawing
| |||
conclusions.
|