This code is open source under the MIT license. If you have any improvements or corrections to suggest, please send me a pull request via the github repository https://github.com/casey-bowman/sar
For more details on the initial script, see , where the quotes are from Section II of J. Welles Wilder, Jr.'s book New Concepts in Technical Trading Systems (1978)
"The Parabolic Time / Price System derives its name from the fact that when charted, the
pattern formed by the stops resembles a parabola, or if you will, a French Curve. The system
allows room for the market to react for the first few days after a trade is initiated and then the
stop begins to move up more rapidly. The stop is not only a function of price but also a function
"The stop never backs up. It moves an incremental amount each day, only in the direction which
the trade has been initiated."
"The stop is also a function of price because the distance the stop moves up is relative to the
favorable distance the price has moved... specifically, the most favorable price reached since the
trade was initiated."
A. The calculation for a is:
Tomorrow’s SAR = Today’s SAR + AF (EP - Today’s SAR )
"Acceleration Factor ( AF ) is one of a progression of numbers beginning at 0.02 and ending at
0.20. The AF is increased by 0.02 each period that a new high is made" (if long) or new low is
made (if short).
EP is the "Extreme Price Point for the trade made so far. If Long, EP is the extreme high price for
the trade; if Short, EP is the extreme low price for the trade.”
Most websites will provide the above calculation for the but almost all of them
leave out this crucial detail:
B. "Never move the SAR into the previous day’s range or today’s range
"1. If Long, never move the SAR for tomorrow above the previous day’s low or
today’s low. If the SAR is calculated to be above the previous day’s low or
today’s low, then use the lower low between today and the previous day as
the new SAR . Make the next days calculations based upon this SAR .
"2. If Short, never move the SAR for tomorrow below the previous day’s high or
today’s high. If the SAR is calculated to be below the previous days’ high or
today’s high, then use the higher high between today and the previous day
as the new SAR . Make the next days calculations based upon this SAR ."
When a SAR is broken then it gets placed at the SIP (significant point) of the prior trend.
In otherwords it is placed above the current candle and at the price that was the SIP.
The inverse is true for the first SAR .
"This system is a true reversal system; that is, every stop point is also a reverse point." If breaking
through a SAR (one above price) that simultaneously signals to close a short and go
You have this:
reversal_state = 0
if reversal_state == 0
//Do Stuff A
else if reversal_state == 1
// Do Stuff B
// Do Stuff C
I'm having trouble understanding how B or C is ever executed. I'm new to Pine, so I'm probably missing some idiosyncrasy of the language. Can you help me to understand?
It's a bit tenuous for multiple candles out. You really need a guess as to how the prices will be moving, which is what I needed to furnish for figuring out my tweeted guess. Then I had to customize my code roughly, specifically for the price guesses I had in mind. It's complicated.
A forecast for just the next candle would be meaningful. It's on my list.
Today I'm working on some new features that Sawcruhteez has recommended (see my Sep 12 comment). If I can make the day-out forecast optional, I plan to try to include it, but the features recommended by Sawcruhteez are first priority for my work this time around. I also hope to add the color feature, too, and reversal alerts (see other comments below), though again they're not top priority this time. They'll be next on my list. I have two Rust reading groups to prepare for on Sunday and Monday evenings that I'll be switching my attention to, but maybe I'll be able to return to this work next week to handle the lower-priority features.
It is always humbling and a reminder that there are still so many good people in this world, when people such as yourself freely share the fruits of your labour with others.
I hope your programming reading groups go well and look forward to seeing what you create in the future.
There are only two SAR reverses ever created for one candle and they can toggle.
When one returns to a former SAR reverse, that SAR could be lower (higher) if there was a candle low (high) below (above) the SAR before that reversal if one is reversing from an uptrend (downtrend).
So in any one candle, the two SAR reverses would only spread farther apart with new highs and lows before a reversal. In other words, the low SAR might only move lower upon a reversal from the high SAR when there’s been an intervening new low for the candle, and the high SAR might only move higher upon a reversal from the low SAR when there’s been an intervening new high for the candle.
I have asked Sawcruhteez to give me feedback on this proposed intracandle rule.