PureBytes Links
Trading Reference Links
|
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
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:
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
----- Original Message -----
From: ERKAN BISEVAC
To: amibroker@xxxxxxxxxxxxxxx
Sent: Saturday, April 26, 2003 5:40 AM
Subject: Re: [amibroker] CONES
UM
Can you show me how to fix it?
Thanks
Erkanuenal.mutlu@xxxxxxxxxxx wrote:
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
----- Original Message -----
From: ERKAN BISEVAC
To: amibroker@xxxxxxxxxxxxxxx
Sent: Saturday, April 26, 2003 1:51 AM
Subject: [amibroker] CONES
I am trying to translate one indicator but it's not working.
Can somebody look at this, please.
Thanks
Erkan
VolatilityLength=30/252;
SD=2;
VIX=Foreign("^Vix","C");
PriceRows=75;
BarColumns=75;
VolatilitySDev = SD*(0.01*VIX)*sqrt(volatilitylength);
MT = Close + (Close * VolatilitySDev);
MB = Close - (Close * VolatilitySDev);
RH = (MapTop - MapBottom) / PriceRows;
CL=Close;
for(I=1;i<=BARCOLUmns;i++)
{
PriceLevel = MB[I];
while (PriceLevel < MT[I])
{
if (PriceLevel < CL[I])
Probability = 1;
else
{
Probability = .5;
}
Plot(PriceLevel*(1-Probability),"UP",1,1);
Plot(PriceLevel*(1+Probability),"UP",1,1);
PriceLevel = PriceLevel + RH[I];
}
}
Send BUG REPORTS to bugs@xxxxxxxxxxxxxSend 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.
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.
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.
|