Signed Transactions but executed after long periods given conditions


I am new here, so please treat as a 5yr old SC Dev.
Here is my question, is it possible (technically) to write an SC, that could enable you to sign a transaction (and lock funds) but execute the transaction only after a specific period of time (could be very long, say years), and given specific conditions ?

Example : User A interacts with the SC, locks 5K Ada in their wallet, and after one year, if the price of Ada is above 5$, then the transaction executes (funds leave the wallet, to buy something, or whatever…)

One use case i could think of, is pre buying things (limit prices), bets (custodial bets, where you keep your funds, and if you lose the bet, then the funds are taken away), etc …

Any examples are appreciated, thanks guys and gals !