PureBytes Links
Trading Reference Links
|
Hello,
As for linear regression and TSF and estimates:
TSF is exactly the estimate of LinearReg for the NEXT DAY.(it is
calculated as LinearReg PLUS LinRegSlope * 1 (bar))Plot(LinearReg(Close,
10 )+LinRegSlope(Close, 10), "Forecast for tommorrow", colorRed
);Plot(TSF(Close, 10 ), "Forecast for tommorrow 2", colorBlue );
Best regards,Tomasz Janeczkoamibroker.com
<BLOCKQUOTE
>
----- Original Message -----
<DIV
>From:
<A title=uenal.mutlu@xxxxxxxxxxx
href="">uenal.mutlu@xxxxxxxxxxx
To: <A title=amibroker@xxxxxxxxxxxxxxx
href="">amibroker@xxxxxxxxxxxxxxx
Sent: Wednesday, April 30, 2003 10:09
AM
Subject: Re: [amibroker] CONES
Hi Erkan,
I unfortunately don't know the other
programming
language. Therefore
there are still many question open.
For example the functionality of the
following functions
is unknown to AB:
StdDevSAnnualized(...)
ExtremePrice(...)<FONT
face="Times New Roman"> <FONT
face="Times New Roman">MinList()
I think I saw this in an issue of TASC. Maybe you
should
post a link to the original work. But, I must admit,
I personally don't have the time to convert the program
into AFL, but maybe someone else
will find it an interessting
challenge.
The idea is not bad, but it is more a graphical
programming,
which is not my strength. On the other hand, for me
personally
a calculated probability number (not plotting) for only
tommorrow would be
sufficient. Because this could be further
used in the decision making within a system.
The graphical "nice"(?)
picture plot I saw in the article IMHO didn't look much
usable (for me).
But the general idea is not that bad.
IMHO using Linear Regression (LR) <FONT
face=Arial>estimate or TimeSeriesForecast (TSF)
estimate of both the price <FONT
face=Arial>and the mean price will be much
easier
and IMHO better. The analysis of the estimates of
these numbers
and their rate, relative
movement etc. will allow to calculate such
probabilities.
But one drawback is that you need the "Estimate"
functionality of LR/TSF.
I'm not sure if they are available in AFL; In such cases
I'm using my own
C++ LR source from within an AB
pluging of my own, since in C++ I've full
access to the LR
algorithm. Of course same is true with the TSF
algorithm.
So, to make a long story short: what do you expect from
the code you
presented? Are you interessted in a probability
number for the next day's
outcome based on LR or TSF (or
both combined) or do you want a
graphical
plot of this on the chart as much like in the
article?
UM
<BLOCKQUOTE
>
----- Original Message -----
<DIV
>From:
ERKAN
BISEVAC
To: <A title=amibroker@xxxxxxxxxxxxxxx
href="">amibroker@xxxxxxxxxxxxxxx
Sent: Wednesday, April 30, 2003 4:11
AM
Subject: Re: [amibroker] CONES
Hi UM,
I just came back home after 3 days.
This is code from trade station
{Input definitions:VolatilityLength in the modified code is the
ratio of look-a-head days divided by trading days(252) in a year or all
days(365) in a year. For example use VolatilityLength(30/252) for a 30
day lookahead using trading days. SD(#)= number of standard
deviations for top and bottom of the ProbMapND. SD(1) captures
prices 68% of the time.SD(2) captures prices 95% of the time. SD(3)
captures prices 99.7 of the time. VIX(c of data2) is to provide
an implied volatility input from your datafeed or from a manual
inputwhen doing "what if" types of studies. For example if you
want to assume the market goes into a nosediveand implied volatility
rises to 50 then use VIX(50) instead of VIX(c of
data2). PriceRows(#) determines the number of horizontal lines
in the map.BarColumns(#) determines the number of price bars used in the
map. Format Window Bars to Right to "see" into the future.
********************************************************************} Inputs:
VolatilityLength(30/252),SD(2),VIX(c of data2), PriceRows(75),
BarColumns(75);Variables: Count(0), PriceLevel(0), RowHeight(0),
MapTop(0), MapBottom(0), VolatilitySDev(0), Probability(0),
UseLog(True); {VolatilitySDev =
StdDevSAnnualized(ExtremePrice(2,UseLog),VolatilityLength);}VolatilitySDev
= SD*(0.01*VIX)*squareroot(volatilitylength); If
CurrentBar>= 1 Then Begin MapTop = Close + (Close *
VolatilitySDev); MapBottom = Close - (Close *
VolatilitySDev); RowHeight = (MapTop - MapBottom) /
PriceRows; Count =
1; PM_SetLow(MapBottom); PM_SetHigh(MapTop); PM_SetRowHeight(RowHeight); PM_SetNumColumns(BarColumns);
While Count <= BarColumns Begin PriceLevel =
MapBottom; While PriceLevel < MapTop Begin
If PriceLevel < Close Then
Probability = ProbBelow(PriceLevel, Close, VolatilitySDev, Count) *
100 Else Probability =
ProbAbove(PriceLevel, Close, VolatilitySDev, Count) * 100;
PM_SetCellValue(Count, PriceLevel, Probability); PriceLevel
= PriceLevel + RowHeight; End; Count = Count +
1; End; End;
ProbAbove
<FONT
face=Arial>PriceTarget=1;CurrentPrice=1;VltyVal=1;BarsToGo=1;e=2.71828;
If MinList(PriceTarget, CurrentPrice, VltyVal, BarsToGo) <= 0
Then ProbBelow = 0ElseBeginVlty = VltyVal *
Sqrt(BarsToGo/(BarAnnualization^2));PriceRatio = Log(PriceTarget /
CurrentPrice);
If (Vlty <> 0) Then RawProb = PriceRatio /
Vlty; z1 = .3989423 *
(e^(-(RawProb^2)*.5); y1
= 1 / (1 + .23166419 *
Abs(RawProb)); x1 = 1 -
z1 * ((1.33027443 * (y1^5)) - (1.821256 * (y1^4)) +
(1.78147794 * (y1^3)) - (.3565638 * (y1^2)) + (.31938153 *
y1)); If RawProb > 0 Then ProbBelow =
x1 Else ProbBelow = 1 - x1;ProbAbove = 1 -
ProbBelow;ProbBetween = ProbBelow - ProbBelow;
ProbBelow
Inputs: PriceTarget(Numeric), CurrentPrice(Numeric), VltyVal(Numeric),
BarsToGo(Numeric);Variables: PriceRatio(0), Vlty(0), RawProb(0),
e(2.71828), z1(0), y1(0), x1(0);
If MinList(PriceTarget, CurrentPrice, VltyVal, BarsToGo) <= 0
Then ProbBelow = 0ElseBegin Vlty = VltyVal *
SquareRoot(BarsToGo/Square(BarAnnualization)); PriceRatio =
Log(PriceTarget / CurrentPrice);
If Vlty <> 0 Then RawProb = PriceRatio /
Vlty; z1 = .3989423 * Power(e, -Square(RawProb)*.5); y1 =
1 / (1 + .23166419 * AbsValue(RawProb)); x1 = 1 - z1 * ((1.33027443
* Power(y1, 5)) - (1.821256 * Power(y1, 4)) + (1.78147794 *
Power(y1, 3)) - (.3565638 * Power(y1, 2)) + (.31938153 *
y1)); If RawProb > 0 Then ProbBelow =
x1 Else ProbBelow = 1 - x1;
Thanks,
ErkanEnd;
uenal.mutlu@xxxxxxxxxxx wrote:
<BLOCKQUOTE
>
Hi, did you unterstand what the
syntax error message says?
At some places you have to
use the subscript operator (ie. myarray[i])
No, sorry, I don't have time to fix bugs, esp. of
code without any
explanation what it supposed to do. Shall I guess
and try the zillion
possibilities the coder could have
meant?
Sorry, more explanation is required if you want it
be fixed by anyone.
UM
<BLOCKQUOTE
>
----- Original Message -----
<DIV
>From:
ERKAN
BISEVAC
To: <A
title=amibroker@xxxxxxxxxxxxxxx
href="">amibroker@xxxxxxxxxxxxxxx
Sent: Saturday, April 26, 2003 5:40
AM
Subject: Re: [amibroker]
CONES
UM
Can you show me how to fix it?
Thanks
Erkan<A
href="">uenal.mutlu@xxxxxxxxxxx
wrote:
<BLOCKQUOTE
>
Hi Erkan,
the syntax error says:
Condition in IF, WHILE, FOR
statements has to be Numeric or Boolean type. You
can not use array here, please use [] (array subscript
operator) to access array elements
UM
<BLOCKQUOTE
>
----- Original Message -----
<DIV
>From:
ERKAN
BISEVAC
To: <A
title=amibroker@xxxxxxxxxxxxxxx
href="">amibroker@xxxxxxxxxxxxxxx
Sent: Saturday, April 26, 2003
1:51 AM
Subject: [amibroker]
CONES
<BLOCKQUOTE
>
I am trying to translate one indicator but it's not
working.
Can somebody look at this, please.
Thanks
Erkan
VolatilityLength=<FONT
color=#ff00ff size=1>30<FONT color=#000000
size=1>/252<FONT
color=#000000 size=1>;
SD=2<FONT
color=#000000 size=1>;
VIX=Foreign<FONT
color=#000000 size=1>(<FONT color=#ff00ff
size=1>"^Vix",<FONT
color=#ff00ff size=1>"C");
PriceRows=75<FONT
color=#000000 size=1>;
BarColumns=75<FONT
color=#000000 size=1>;
VolatilitySDev = SD*(<FONT color=#ff00ff
size=1>0.01*VIX)*<FONT
color=#0000ff size=1>sqrt<FONT color=#000000
size=1>(volatilitylength);
MT = Close + (Close * VolatilitySDev);
MB = Close - (Close * VolatilitySDev);
RH = (MapTop - MapBottom) / PriceRows;
<FONT face="Courier New" color=#000000
size=1>CL=Close;
<FONT color=#000000
size=1>
for(<FONT face="Courier New" color=#000000
size=1>I=<FONT
color=#ff00ff size=1>1<FONT color=#000000
size=1>;<FONT face="Courier New" color=#000000
size=1>i<=<FONT
face="Courier New" color=#000000 size=1>BARCOLU<FONT
color=#000000 size=1>mns;<FONT face="Courier New"
color=#000000 size=1>i++)
{
PriceLevel = M<FONT face="Courier New" color=#000000
size=1>B[I];
while (PriceLevel < MT<FONT face="Courier New"
color=#000000 size=1>[I])
{
if (PriceLevel < C<FONT face="Courier New"
color=#000000 size=1>L[I])
Probability = 1<FONT
face="Courier New" color=#000000 size=1>;
<FONT face=Arial
size=3><FONT face=Arial
size=3>
else
{
Probability = .5;
}
<FONT face=Arial
size=3>
Plot<FONT
color=#000000 size=1>(PriceLevel*(<FONT color=#ff00ff
size=1>1<FONT color=#000000
size=1>-Probability),<FONT color=#ff00ff
size=1>"UP",<FONT
color=#ff00ff size=1>1<FONT color=#000000
size=1>,1<FONT
color=#000000 size=1>);
Plot<FONT
color=#000000 size=1>(PriceLevel*(<FONT color=#ff00ff
size=1>1<FONT color=#000000
size=1>+Probability),<FONT color=#ff00ff
size=1>"UP",<FONT
color=#ff00ff size=1>1<FONT color=#000000
size=1>,1<FONT
color=#000000 size=1>);
PriceLevel = PriceLevel + RH<FONT face="Courier New"
color=#000000 size=1>[I];
}
}
<FONT face=Arial
size=3> Send
BUG REPORTS to bugs@xxxxxxxxxxxxxSend SUGGESTIONS to
suggest@xxxxxxxxxxxxx-----------------------------------------Post
AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: <A
href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check
group FAQ at: <A
href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Your use of Yahoo! Groups is subject to the <A
href="">Yahoo! Terms of Service.
Yahoo! Groups Sponsor
Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
|