График цены и объема

Подробнее
8 года 11 мес. назад - 8 года 11 мес. назад #430 от Александр
Выкладываю свой рабочий график цены и объема для AMI. Объем масштабируется отдельно от цены и выведен толстыми линиями гистограмм. Белые столбики объема соответствуют условию Close == Open
Последнее редактирование: 8 года 11 мес. назад пользователем Александр.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
8 года 11 мес. назад #431 от admin
admin ответил в теме График цены и объема
А где график-то, Александр? :whistle:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
8 года 11 мес. назад - 8 года 11 мес. назад #432 от admin
admin ответил в теме График цены и объема
вот потерянное от Александра:




//Title = "";
_SECTION_BEGIN("Setup");
Bkg = ParamToggle ("Фон", "Голубой|Системный", 1);
if (Bkg == 0) { SetChartBkGradientFill( ColorRGB(102,153,204), ColorRGB(0,51,102), ColorRGB(102,153,204)); }
else {}
SetChartOptions(0,chartShowArrows|chartShowDates);
UpColor = colorBrightGreen;
DownColor = colorRed;
FlatColor = colorAqua;
InfoColor = colorYellow;
//GraphXSpace = 4;
_SECTION_END();

_SECTION_BEGIN("Основной график");
// Цена
SetBarFillColor (IIf(C>O,UpColor, IIf(C<=O,DownColor,FlatColor)));
Plot(C,Date()+"Close", IIf(Close > Open, UpColor, DownColor), styleCandle|styleLine);

// Масштабируемый объем
ShowVol = ParamToggle("Показать объем", "Да|Нет", 0);
VolScale = Param("Масштаб шкалы объема", 5, 1, 20, 0.5);
if ( ShowVol == 0 )
{
Color = IIf(C==O, colorWhite, IIf(C>O, colorGreen, colorBrown));
SetBarFillColor(Color);
PlotOHLC(0,V,V,V,"Volume", color, styleCandle|styleOwnScale|styleThick, VolScale);
} else {}

// MA
MAPeriod = Param("Период MA", 14, 8, 200, 1);
MAcolor = IIf (MA(C,MAPeriod) > Ref(MA(C,MAPeriod),-1), colorLime, colorRed);
ShowMA = ParamToggle("Показать MA", "Да|Нет", 1);
if (ShowMA == 0 )
{ Plot (MA(C, MAPeriod), "MA", InfoColor, styleThick|styleNoRescale); }
else { }
_SECTION_END();


// Инфо
GfxSetBkMode(1);
GfxSelectFont("Tahoma", 12, 400, italic=False);
GfxSetTextColor(InfoColor);
GfxTextOut(Name(), 8, 20);
GfxTextOut( "MA ("+ MAPeriod+" )", 8, 40);

_SECTION_BEGIN("Дневные отметки");
// Дневные отметки
SegColor = 53;
ShowSeg = ParamToggle ("Показать дневные метки", "Да|Нет", 0);
if ( ShowSeg == 0 )
{
Segments = IIf( Interval() < inDaily, Day(), Month() );
Segments = segments != Ref(Segments, -1);
Plot (Segments, "", colorYellow, styleHistogram|styleDashed|styleOwnScale|styleNoLabel);

} else {}
_SECTION_END();
Вложения:
Последнее редактирование: 8 года 11 мес. назад пользователем admin.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
8 года 11 мес. назад - 8 года 11 мес. назад #434 от admin
admin ответил в теме График цены и объема
Идея мне понравилась, решил разукрасить :)

В левой части графика рисуем эдакий псевдо-скроллбар, тыкая на который можно масштабировать график объема





И вот как оно выглядит на AFL

RequestTimedRefresh(1);
VolumeScale = Max(Nz(StaticVarGet("VolumeScale")),0.1);


YHeight = Status("pxchartheight");
if (GetCursorMouseButtons() == 9)
{ MousePx = GetCursorXPosition(1);
MousePy = GetCursorYPosition(1);
if (MousePx >= 1 AND MousePx <= 20)
{ VolumeScale = (YHeight - MousePy) / YHeight;
StaticVarSet("VolumeScale",VolumeScale);
}
}
VolHeight = (1-VolumeScale)*YHeight;

GfxSetOverlayMode( 0 );
GfxSelectPen( colorBlack );
GfxSelectSolidBrush( colorWhite );

GfxRoundRect( 1, 1, 20, YHeight , 3, 3);

GfxSelectSolidBrush( colorBlue );
GfxRoundRect( 1, VolHeight , 20, YHeight , 5, 5);


_SECTION_BEGIN("Price");
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot( C, "Close", ParamColor("Color", colorDefault ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
_SECTION_END();

_SECTION_BEGIN("Volume");
MaxVolume = HighestVisibleValue(Volume);
Plot( Volume, _DEFAULT_NAME(), IIf( C > O, ParamColor("Up Color", colorGreen ), ParamColor("Down Color", colorRed ) ), ParamStyle( "Style", styleHistogram | styleThick, maskHistogram ) | styleOwnScale ,0, MaxVolume / VolumeScale );
_SECTION_END();
Вложения:
Последнее редактирование: 8 года 11 мес. назад пользователем admin.
Спасибо сказали: darshan

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Модераторы: admin