PARTNER SERWISU
qqrbxejs

Equivolume

ksiezniczkaLEJA
0
Dołączył: 2014-07-25
Wpisów: 4
Wysłane: 25 lipca 2014 16:53:33
Witam forumowiczów ; - )

Chciałbym korzystać z wykresów typu: EquiVolume, i moje pytanie brzmi jak to zrobić w AmiBrokerze ?

Z góry dziękuje za pomoc.
Pozdrawiam.

gucio
0
Dołączył: 2010-11-01
Wpisów: 314
Wysłane: 26 lipca 2014 09:51:57
Spróbuj na tym forum się dowiedzieć. Chyba to jest to czego szukasz.
www.aussiestockforums.com/foru...


anty_teresa
PREMIUM
522
Grupa: Zespół StockWatch.pl
Dołączył: 2008-10-24
Wpisów: 11 191


ksiezniczkaLEJA
0
Dołączył: 2014-07-25
Wpisów: 4
Wysłane: 26 lipca 2014 13:56:53
Dziękuję za odpowiedzi.

Jestem dość świeży w AmiBrokerze więc może to moja wina, ale formuła z tego linku który podała anty_teresa www.amibroker.com/library/deta... po wklejeniu w "Formula Editor" nie działa. Dokładniej daje taki efekt: zapodaj.net/895872f8da0c1.png....

anty_teresa
PREMIUM
522
Grupa: Zespół StockWatch.pl
Dołączył: 2008-10-24
Wpisów: 11 191
Wysłane: 26 lipca 2014 14:49:23
//Delikatnie przrobiłem - przeklej cały tekst

ChartType = ParamList ( "Chart Type", "CandleVolume,EquiVolume" );
Plot( C, "", 39, styleBar | styleNoDraw );
Maxy = Status( "axismaxy" );
Miny = Status ( "axisminy" );
pxchartheight = Status ( "pxchartheight" );
pxchartbottom = Status( "pxchartbottom" );
pxchartwidth = Status ( "pxchartwidth" );
pxchartleft = Status( "pxchartleft" );
fvb = Status ( "firstvisiblebar" );
Lvb = Status ( "lastvisiblebar" );

function LowestVisibleValue( array )
{
bv = Status("barvisible");
ll = 1e8;
for( i = 0; i < BarCount; i++ )
{
if( bv[ i ] AND array[ i ] < ll ) ll = array[ i ];
}
return ll;
}


function yConvert( Value )
{
return pxchartbottom - floor( 0.5 + ( Value - Miny ) * pxchartheight / (
Maxy - Miny ) );
}

MinVolume = LowestVisibleValue( Volume );
MinVolume = Max ( Minvolume, 1 );
//printf ( "Min Visibe Bar volume = %.f\n", Minvolume );

sigma = 0 ;

for ( i = BarCount - 1 ; i > fvb - 1 ; i -- )
{

ratio = Volume[i] / MinVolume;
sigma += ratio;
}

GfxSelectPen( colorBlack );

Space = 1; // space between candles
visiblebars = Lvb - fvb + 1;
totalspace = Visiblebars * space;

unitpx = ( pxchartwidth - totalSpace ) / sigma; // pixel
LastbarRatio = Volume [BarCount -1] / MinVolume;
delta = unitpx * Lastbarratio / 2;
start = pxchartleft + ( BarCount - fvb - 1 ) * pxchartwidth / Visiblebars +
delta;
Chg = C - O;

for ( i = BarCount - 1 ; i >= fvb && start > 0 ; i -- )
{

ratio = Volume[i] / MinVolume;
width = unitpx * ratio ;
width = Min ( width , pxchartwidth / 5 ); // limit max bar width in pixel to chartwidh/5

if ( ChartType == "CandleVolume" )
{
x = start - width / 2;
}

y1 = yConvert ( High[i] );
y2 = yConvert ( Low[i] );


if ( ChartType == "CandleVolume" )
{
GfxMoveTo ( x, y1 );
GfxLineTo( x, y2 );
}

x1 = start - width;
x2 = start ;

if ( ChartType == "CandleVolume" )
{
y1 = yConvert ( Open[i] );
y2 = yConvert ( Close[i] );
}

fillcolor = IIf ( Chg [i] > 0 , colorGreen, colorRed );
GfxSelectSolidBrush( fillcolor );
Hgt = y2 - y1;
if ( Hgt == 0 )
Hgt = 1;

y2 = y1 + Hgt;
GfxRectangle( x1, y1, x2, y2 );

start = x1 - Space;
//printf ( "\n%.f\t %.f px" , i, hgt );
}

Title = Charttype;
RequestTimedRefresh( 1 );
Edytowany: 26 lipca 2014 14:50

ksiezniczkaLEJA
0
Dołączył: 2014-07-25
Wpisów: 4
Wysłane: 26 lipca 2014 15:14:50
Teraz działa.
Dziękuje bardzo, duże piwo dla Ciebie anty_teresa!

Mam jeszcze jedno pytanie, co zrobić jeżeli chciałbym zwiększyć "wizualną czułość" wykresu na małe zmiany wielkości wolumenu ? Innymi słowy bardziej uwidocznić zmiany w szerokości świeczki(wolumenu) tak aby te niewielkie zmiany była łatwiej wyłapywane przez oko ? Nie wiem czy jasno to opisałem.


anty_teresa
PREMIUM
522
Grupa: Zespół StockWatch.pl
Dołączył: 2008-10-24
Wpisów: 11 191
Wysłane: 26 lipca 2014 15:48:13
Niestety aż tak dobrze nie znam AFL'a, aby w mig Ci na to odpowiedzieć.

Użytkownicy przeglądający ten wątek Gość



Na silniku Yet Another Forum.net wer. 1.9.1.8 (NET v2.0) - 2008-03-29
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.
Czas generowania strony: 0,199 sek.

umvgmqih
oikdinfy
pvullyzh
Portfel StockWatch
Data startu Różnica Wartość
Portfel 4 fazy rynku
01-01-2017 +75 454,67 zł +377,27% 95 454,67 zł
Portfel Dywidendowy
03-04-2020 +60 637,62 zł 254,44% 125 556,00 zł
Portfel ETF
01-12-2023 +4 212,35 zł 20,98% 24 333,09 zł
kiwzvjpd
hnnhlqcc
cookie-monstah

Serwis wykorzystuje ciasteczka w celu ułatwienia korzystania i realizacji niektórych funkcjonalności takich jak automatyczne logowanie powracającego użytkownika czy odbieranie statystycznych o oglądalności. Użytkownik może wyłączyć w swojej przeglądarce internetowej opcję przyjmowania ciasteczek, lub dostosować ich ustawienia.

Dostosuj   Ukryj komunikat