Threaded View
-
12-08-2013 10:39 AM #34
Senior Member- Ngày tham gia
- Aug 2010
- Bài viết
- 648
- Được cám ơn 325 lần trong 218 bài gởi
Những series bài hay về phần mềm PTKT phân tích kỹ thuật AmiBroker
Gửi anh em chỉ báo phân tích kỹ thuật trong AmiBroker khá hay
Details:
Formula name: 3TF Candlestick Bar Chart
Author/Uploader: Jorgen Wallgren - jorgen.wallgren [at] gmail.com
Date/Time added: 2010-09-19 21:12:01
Origin: Got the basic idea from David's (dbwyatt_1999) 2 Timeframe chart code, using the PlotOHLC function with styleCloud, which was shared by him on the AmiBroker List.
Keywords: Timeframe, candlestick
Level: semi-advanced
Flags: indicator
DISCLAIMER: Most formulas present in AFL on-line library are submitted by the users and are provided here on an "as is" and "as available" basis. AmiBroker.com makes no representations or warranties of any kind to the contents or the operation of material presented here. We do not maintain nor provide technical support for 3rd party formulas.
Description:
Specially designed for use in day trading AND to save chart space. This chart will display 3 sets of candlestick bars. One for the time Interval set for your chart- for example 1 Minute. The higher timeframe candlestick bars are created by using gfx Low-level graphics and will display
according to the parameters you set- for example 5 and 15 minutes. This code can be very much improved and made faster, but I provide it as it is.
Formula:
_SECTION_BEGIN("3 TF Candlestick Bar Chart");
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX
// 3 TIMEFRAMES CANDLESTICK CHART
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX
Version(5.21);
SetChartOptions(2, chartShowDates);
Title = Name();
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX
// PARAMETERS AND SETTINGS:
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX
ChartLum = Param("Chart Background Color Intensity", 0, 0, 1, 0.01);
TFMinShort = Param("Short Timeframe (Minutes)", 1, 1, 60, 1);
TFMinMedium = Param("Medium Timeframe (Minutes)", 5, 1, 60, 1);
TFMinLong = Param("Long Timeframe (Minutes)", 15, 1, 60, 1);
OnSTFBars = ParamToggle("Short TF Bars", "Off, On", 1);
OnMTFBars = ParamToggle("Medium TF Bars", "Off, On", 1);
OnLTFBars = ParamToggle("Long TF Bars", "Off, On", 1);
BarLum1 = Param("Short TF Bar Color Intensity", 0, 0, 1, 0.01);
BarLum2 = Param("Medium TF Bar Color Intensity", 0.70, 0, 1, 0.01);
LTFLine = Param("Long TF Bar Line Thickness", 3, 0, 10, 1);
BarLum3 = Param("Long TF Bar Color Intensity", 0.50, 0, 1, 0.01);
// Bar Colors for the Short Timeframe candlestick bars:
LineColor = ColorBlend(colorBlack, colorWhite, BarLum1);
UpBarColor = ColorBlend(colorBrightGreen, colorWhite, BarLum1);
DnBarColor = ColorBlend(colorRed, colorWhite, BarLum1);
SetChartBkColor(ColorBlend(colorLightBlue, colorWhite, ChartLum));
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX
// FUNCTIONS:
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX
function GetVisibleBarCount()
lvb = Status("lastvisiblebar");
fvb = Status("firstvisiblebar");
return Min( Lvb - fvb, BarCount - fvb );
}
function GfxConvertBarToPixelX( bar )
lvb = Status("lastvisiblebar");
fvb = Status("firstvisiblebar");
pxchartleft = Status("pxchartleft");
pxchartwidth = Status("pxchartwidth");
return pxchartleft + bar * pxchartwidth / ( Lvb - fvb + 1 );
}
function GfxConvertValueToPixelY( Value )
local Miny, Maxy, pxchartbottom, pxchartheight;
Miny = Status("axisminy");
Maxy = Status("axismaxy");
pxchartbottom = Status("pxchartbottom");
pxchartheight = Status("pxchartheight");
return pxchartbottom - floor( 0.5 + ( Value - Miny ) * pxchartheight/ ( Maxy -
Miny ) );
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX
// MAIN PROGRAM:
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX
if(Interval() != TFMinShort * 60)
Title = Title + "\n" + "\n" + "ALERT, ALERT, ALERT!!!" + "\n" + "Set the chart
time interval to: " + NumToStr(TFMinShort, 1.0, 1) +
" Minute(s) or change the Short Timeframe Parameter setting.";
OnSTFBars = 0;
OnMTFBars = 0;
OnLTFBars = 0;
SetChartBkColor(colorRose);
}
if(TFMinShort >= TFMinLong)
Title = Title + "\n" + "\n" + "ALERT, ALERT, ALERT!!!" + "\n" + "The Long
Timeframe setting must be longer than the Short Timeframe!";
OnSTFBars = 0;
OnLTFBars = 0;
OnLTFBars = 0;
SetChartBkColor(colorRose);
}
if(OnSTFBars)
BarColor = IIf(Close > Open, UpBarColor, DnBarColor);
SetBarFillColor(BarColor);
Plot(Close, "", LineColor, styleCandle);
}
else
Plot(Close, "", colorBlack, styleCandle | styleNoDraw);
function PlotBars(TFMinLong, BarLum, Style)
// Bar Colors For The Medium and Long Timeframe candlestick bars:
TFLineColor = ColorBlend(colorBlack, colorWhite, BarLum - 0.1);
TFUpBarColor = ColorBlend(colorBrightGreen, colorWhite, BarLum);
TFDnBarColor = ColorBlend(colorRed, colorWhite, BarLum);
TFSec = in1Minute * TFMinLong;
TimeFrameSet(TFSec);
TFOpen = Open;
TFHigh = High;
TFLow = Low;
TFClose = Close;
TFBarIndex = BarIndex();
TFLastBarIndex = LastValue(BarIndex());
TimeFrameRestore();
TFOpen = TimeFrameExpand(TFOpen, TFSec, expandFirst);
TFHigh = TimeFrameExpand(TFHigh, TFSec, expandFirst);
TFLow = TimeFrameExpand(TFLow, TFSec, expandFirst);
TFClose = TimeFrameExpand(TFClose, TFSec, expandFirst);
TFBarIndex = TimeFrameExpand(TFBarIndex, TFSec, expandLast + 1);
TFLastBarIndex = TimeFrameExpand(TFLastBarIndex, TFSec, expandLast + 1);
CandleTop = Max(TFOpen, TFClose);
CandleBottom = Min(TFOpen, TFClose);
//================================================== ==========================
// GFX LOW-LEVEL GRAPHICS SECTION.
// DRAWING THE LONG TIMEFRAME CANDLESTICK BARS:
//================================================== ==========================
GfxSetOverlayMode(1);
AllVisibleBars = GetVisibleBarCount();
fvb = Status("firstvisiblebar");
ChartWidth = GfxConvertBarToPixelX(AllVisibleBars );
PixBar = ChartWidth / AllVisibleBars;
Adjust = Pixbar * 0.35;
TFMinutes = TFMinLong / TFMinShort;
NewTFBar = IIf(TFBarIndex != Ref(TFBarIndex, -1), 1, 0);
BarInd = BarIndex();
TFLastBarIndex = LastValue(TFLastBarIndex);
// DRAW BAR HISTORY AND THE CURRENT BAR:
for(i = 0; i < AllVisibleBars; i++)
x1 = GfxConvertBarToPixelX(i) * NewTFBar[i + fvb] - Adjust;
if(BarInd[i + fvb] < TFLastBarIndex AND NewTFBar[i + fvb] == 1)
Counter = 0;
for(n = i + 1; NewTFBar[n + fvb] == 0 AND n + fvb < BarCount-1; n++)
Counter++;
x2 = GfxConvertBarToPixelX(i + Counter) * NewTFBar[i + fvb] + 1 + Adjust;
}
if(TFBarIndex[i + fvb] == TFLastBarIndex)
x2 = GfxConvertBarToPixelX(i + TFMinutes - 1) * NewTFBar[i + fvb] + 1 +
Adjust;
y1 = GfxConvertValueToPixelY(CandleTop[i + fvb]);
y2 = GfxConvertValueToPixelY(CandleBottom[i + fvb]);
yH = GfxConvertValueToPixelY(TFHigh[i + fvb]);
yL = GfxConvertValueToPixelY(TFLow[i + fvb]);
// Candle Body:
FillColor = IIf(TFOpen[i + fvb] < TFClose[i + fvb], TFUpBarColor,
TFDnBarColor);
if(Style == "Fill")
GfxSelectPen(TFLineColor, 1);
GfxSelectSolidBrush(FillColor);
}
else
GfxSelectPen(FillColor, LTFLine);
GfxSelectSolidBrush(ColorBlend(colorLightBlue, colorWhite, ChartLum));
}
if(y1 == y2){y1 = y1 - Adjust; y2 = y2 + Adjust;
GfxSelectSolidBrush(TFLineColor);}
if(x1 > 0)
GfxRectangle( x1, y1, x2, y2);
// Candle High and Low:
GfxSelectPen(TFLineColor, 2);
GfxMoveTo(x2+(x1-x2)/2, y1);
GfxLineTo(x2+(x1-x2)/2, yH);
GfxMoveTo(x2+(x1-x2)/2, y2);
GfxLineTo(x2+(x1-x2)/2, yL);
RequestTimedRefresh(0);
}
}
}
if(OnLTFBars)
PlotBars(TFMinLong, BarLum3, "Line");
if(OnMTFBars)
PlotBars(TFMinMedium, BarLum2, "Fill");
_SECTION_END();
-
Những thành viên sau đã cám ơn :
tigeran (27-08-2013)
Thông tin của chủ đề
Users Browsing this Thread
Có 2 thành viên đang xem chủ đề này. (0 thành viên và 2 khách vãng lai)
Similar Threads
-
Một bài phân tích hay, có lý và khách quan
By Brainstorm in forum Thảo luận Tình hìnhTrả lời: 0Bài viết cuối: 17-06-2012, 11:41 PM -
Phần mềm phân tích kỹ thuật
By waterloo1815 in forum CLB Chứng khoánTrả lời: 2Bài viết cuối: 28-10-2009, 11:32 PM
Bookmarks