This is inspired by the excellent answer by @Richard Lyons (which I upvoted) and the comment by @DSP Novice. It basically combines what they said. If the width of the 5000-amplitude pulse is always the same, then simply do as Richard Lyons suggested: it works fine. If the width varies, then the following scheme could be used:

I imported your raw data and put it into the simulation block at the left of the figure. I ran the simulation from 0 to 18.33 s, in increments ($\Delta t$) of 0.03 s. The results are shown in the next figure:

The black trace is the raw data, the red trace is processed to remove the hand movement artifact noise and the cyan trace is the differentiator output. The simple differentiator, with equation shown in the figure, had a differentiation time constant of 0.01 s. The differentiator's output was passed to a comparator, with fixed reference value of -300: this was arbitrarily selected by looking at the cyan trace.
The comparator output is a logic level: it is low so long as the comparator's input is above -300. It goes high when the differentiator's output, i.e., the comparator's input, goes below -300. The comparator's output was arbitrarily delayed by 6 simulation steps, i.e., 6 times 0.03 s, and then the delayed comparator output triggered a peak detector. The peak detector just serves as a data latch.
So, the peak detector's output was logic level zero while the delayed comparator output was logic level zero and this simply allowed the ramp and hold to pass the raw data through. But, once the delayed comparator output went logic level high, it triggered the ramp and hold so that the raw data, at the time of the trigger, was sampled and held.