通达信画背景函数
一、背景介绍
通达信是一款广泛使用的股票分析软件,其画面清晰、操作简便,深受投资者的喜爱。在通达信中,可以通过编写函数来实现自定义的技术指标和图形展示。其中,画背景函数是一个非常常用的函数之一,它可以为图表添加各种背景、线条和文本等元素,让图表更加美观易读。
二、函数参数
画背景函数的参数比较多,需要根据具体需求进行设置。下面是一个常用的画背景函数及其参数:
通达信数字转字符串函数```c
void DrawBK(int nBKColor, int nLineType, int nLineWidth, int nTextColor, int nTextSize, string strText);
```
其中,各个参数的含义如下:
- nBKColor:背景颜(默认为黑);
- nLineType:线条类型(默认为虚线);
- nLineWidth:线条宽度(默认为1);
- nTextColor:文本颜(默认为白);
- nTextSize:文本大小(默认为12号字体);
- strText:文本内容。
三、函数实现
下面是一个完整的画背景函数实现代码:
```c
void DrawBK(int nBKColor = BLACK, int nLineType = LINESTYLE_DOTTED, int nLineWidth = 1, int nTextColor = WHITE, int nTextSize = 12, string strText = "")
{
int nBKStart = 0, nBKEnd = 0;
int nCount = GetRecordCount();
if (nCount <= 0) return;
// 计算背景起始和结束位置
for (int i = nCount - 1; i >= 0; i--)
{
if (GetDateTime(i) < GetTradingDayStart()) break;
if (GetClose(i) > GetOpen(i))
{
nBKEnd = i;
if (nBKStart == 0) nBKStart = i;
}
else
{
if (nBKEnd > 0)
{
DrawRegion(nBKStart, GetHigh(nBKStart), nBKEnd, GetLow(nBKEnd), nBKColor, EMPTY, DRAWSTYLE_SOLID);
DrawLine(nBKStart, GetHigh(nBKStart), nBKEnd, GetLow(nBKEnd), nLineColor,
nLineStyle, nLineWidth);
DrawText(strText + " " + DateToString(GetDate(i)), i + 1, GetLow(i), nTextColor);
break;
}
else
{
continue;
}
}
}
// 如果没有背景区域,则画一条水平线
if (nBKEnd == 0)
{
DrawLine(0, GetClose(0), Bars - 1, GetClose(Bars - 1), RED);
}
}
```
四、函数说明
上述代码中,首先定义了一个名为DrawBK的函数,它接受六个参数。其中,前五个参数都有默认值,可以根据实际需求进行修改。最后一个参数strText是一个字符串类型的参数,用于在背景区域上方显示文本内容。
接下来,函数中定义了三个变量nBKStart、nBKEnd和nCount。其中,nCount表示当前K线数量,nBKStart和nBKEnd分别表示背景区域的起始位置和结束位置。
然后,在for循环中,通过遍历K线数据,计算出符合条件的背景区域的起始和结束位置。具体来说,当收盘价大于开盘价时,则认为是一个上涨K线;当收盘价小于等于开盘价时,则认为这个上涨趋势已经结束。这样就可以计算出所有符合条件的背景区域,并对其进行绘制。
最后,在函数末尾判断如果没有到符合条件的背景区域,则画一条水平线。
五、总结
画背景函数是通达信中非常常用的一个函数,它可以为图表添加各种背景、线条和文本等元素,让图表更加美观易读。在编写画背景函数时,需要根据实际需求进行参数设置,并且需要注意计算背景区域的起始和结束位置。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论