Decided instead of looking for existing
solutions on my HDs to add an spike suppression auto adjustment. This allows
toggling between auto and manual spike suppression. The default is set for
manual, but can of course be changed to auto.
There are several ways to use those two
modes. Personally I would start with the manual adjustment and then step thru
the data. This has the advantage that you see where the suspect data are
located and then toggle to auto mode. If there are a lot of spikes, one change
to the auto mode, and toggle to the manual mode to see what the original data
look like.
//==============Spike Suppression:
Manual and Auto Suppression=============================
Title = EncodeColor(4)+ _DEFAULT_NAME()+";
"+EncodeColor(1) + StrFormat("{{NAME}} -
{{INTERVAL}}; {{DATE}};
O=%g, H=%g, L=%g, C=%g
(%.1f%%)
{{VALUES}}", O, H, L, C,
SelectedValue( ROC( C, 1 ) ) );
Auto_ManualSel=ParamToggle("Spike
Suppression","Manual|Auto",0);// Default: manual
ScaleAdjFactHigh=Param("Manual
Scale Adjust-High",1,0.9,1,0.0001);// Forex values; Manual
ScaleAdjFactLow=Param("Manual
Scale Adjust-Low",1,1,1.1,0.0001);// Forex values; Manual
ScaleAdjFact=Param("Auto
ScaleAdjFact",2,1.5,5,0.1);
//===============Manual
Selection====================
if(!Auto_ManualSel)//Select Manual
{
Hmax=HighestVisibleValue(H);
LMin=LowestVisibleValue(L);
Plot(C,"C",1,styleOwnScale|64,LMin*ScaleAdjFactLow,Hmax*ScaleAdjFactHigh);
}
//===============Auto
Selection====================
if(Auto_ManualSel)//Select Auto
{
ATRPer=Param("ATRPer",14,1,50,1);
fvb = Status("firstvisiblebar");
lvb = Status("lastvisiblebar");
for( i = fvb; i <= Lvb; i++ )
{
H=IIf(H>Ref(H,-1)*(1+ScaleAdjFact*ATR(ATRPer)),Ref(H,-1),H);
L=IIf(L<Ref(L,-1)*(1-ScaleAdjFact*ATR(ATRPer)),Ref(L,-1),L);
}
Plot(C, "Price", colorBlack,
64 );
}
From:
amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of Joris
Schuller
Sent: Saturday, December 05, 2009 6:13 PM
To: amibroker@xxxxxxxxxxxxxxx
Subject: RE: [amibroker] Trimming yahoo data bars from abnormally long to
reasonable size-How can we ?
The simplest solution is to adjust
manually using the simple code below. I prefer manually because I want to see
which data are adjusted and which data are real. I have generated some
dynamically adjusting alternatives. About 5 years ago when IqFeed data
were somewhat noisy I tested and submitted to AB 5 different approaches of
spike suppression to resolve the problem. More than 6 months later
Solution no 5( using deviation from ATR) was implemented in the menu).
Don’t know whether it is still there since I don’t use IQFeed at
the moment. I still have all the solutions somewhere on one of my hard drives
and if I can find them I will send them.
Incidentally the selected solution was the
one I only submitted for completeness and to pacify those who like to dabble in
statistics (typically non-scientists). This is about statistics, but of
removing spikes that prevent me from looking at the rest of the data. Whether
the spikes are statistically significant or not is irrelevant, since in all
cases they mask the surrounding data and thus have to be suppressed.
ScaleAdjFactHigh=Param("ScaleAdjFactHigh",1,0.9,1,0.0001);// Forex values;
ScaleAdjFactLow=Param("ScaleAdjFactLow",1,1,1.1,0.0001);// Forex values;
Hmax=HighestVisibleValue(H);
LMin=LowestVisibleValue(L);
Plot(C,"C",1,styleOwnScale|64,LMin*ScaleAdjFactLow,Hmax*ScaleAdjFactHigh);
From:
amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of rvlv
Sent: Saturday, December 05, 2009 9:49 AM
To: amibroker@xxxxxxxxxxxxxxx
Subject: [amibroker] Trimming yahoo data bars from abnormally long to
reasonable size-How can we ?
Hi afl experts and experienced coding specialists,
Please few minutes to address this problem that most Amibroker uses face.
summary
people use Amiquote and download stockdata on intraday,daily timeframes into a
separate database.
Then they like to apply certain pattern recognition afl on this data.
The formula does not give proper results.
Reason?
yahoo gives some times once in a while,an abnormal bar that is say 10 times
linger than normal bars. Once these oddsized bars appear, the newbies are in
confusion,pattern detection or following established simple trading rules
becomes not anymore possible.
There must be a simple solution to trim the oddsized abnormal bar using an
automatic trimming afl program.
My humble request to experts like Graham kavanagh(with whose educating afls we
learntr to make our baby steps),Herman,who gives very useful hints that save
lot of troubles,and many other generous
people like Mike,droskill,reinsley etc,who are willing to help always, please
give us a helping hand to deal with this problem.
One can say HEY MAN, Yahoo makes this odd sized data bars and they are least
bothered about quality. Why dont you buy some paid data?
My answer is just think about guys who wish to spend for paid broker data once
they cross the loosers hell zone(mostly they get losses and still struggling).
My point is whatever yahoo gives, I manage by trimming data at my end.
Please accept my gratitude in advance for your help.
regards
rvlv
__._,_.___
**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.
TO GET TECHNICAL SUPPORT send an e-mail directly to
SUPPORT {at} amibroker.com
TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)
For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
__,_._,___