文章目录:
- 1、求中点画线算法的c++代码...
- 2、前期高低点画线代码有哪些?
- 3、求前期高低点画线代码?求前期高低高点自动画线代码?
- 4、求 通达信 高手 编写 主图 高点和高点 画线公式 低点和低点画线公式
- 5、通达信波段高低点显示公式,将历史的每个波段的高低点都在主图上显示。最好能加上每个波段的振幅提示。
求中点画线算法的c++代码...
直线方程:a*x+b*y+c=0, p1(x1,y1), p2(x2,y2)== a=y1-y2;b=x2-x1.
点到直线的距离:distance=|a*x0-b*y0+c|/sqrt(a*a + b*b)
设directionX,directionY分别为从(x1,y1)==(x2,y2)的单位变化量(+/-1)
当直线偏向X轴时,当前象素为(xk, yk),下一个象素可能为:(xk+directionX, yk)或者(xk+directionX,yk+directionY)这两点到直线的距离分别为:
d1=|a*xk+b*yk+c+a*directionX|/sqrt(a*a + b*b);
d2=|a*xk+b*yk+c+a*directionX+b*directonY|/sqrt(a*a + b*b);
便于运算,定义:f(xk,yk)= d2 * d2 - d1 * d1 (将d1和d2的分母去掉了的)
= b*b + 2*b*directonY*(a*xk+b*yk+c+a*directionX) ;
当f(xk,yk)0的时候,下一个点为(xk+directionX,yk+directionY):
f(xk+directionX,yk+directionY)=f(xk,yk) +2*b*b+2*a*b*directionX*directionY ;
当f(xk,yk)=0的时候,下一个点为(xk+directionX, yk) :
f(xk+directionX, yk) = f(xk,yk) + 2*a*b*directionX*directionY ;
当直线偏向Y轴时,当前象素为(xk, yk),下一个象素可能为:(xk, yk+directionY)或者(xk+directionX,yk+directionY)这两点到直线的距离分别为:
d1=|a*xk+b*yk+c+b*directionY|/sqrt(a*a + b*b);
d2=|a*xk+b*yk+c+b*directionY+a*directonX|/sqrt(a*a + b*b);
便于运算,定义:f(xk,yk)= d2 * d2 - d1 * d1 (将d1和d2的分母去掉了的)
= a*a + 2*a*directonX*(a*xk+b*yk+c+b*directionY) ;
当f(xk,yk)0的时候,下一个点为(xk+directionX,yk+directionY):
f(xk+directionX,yk+directionY)=f(xk,yk) +2*a*a+2*a*b*directionX*directionY ;
当f(xk,yk)=0的时候,下一个点为(xk+directionX, yk) :
f(xk+directionX, yk) = f(xk,yk) + 2*a*b*directionX*directionY ;
/*
* 中点画线算法
*/
void LineMLDA(HDC hdc, POINT ptSrc, POINT ptDec, COLORREF cr)
{
int a, b ;
a = ptSrc.y - ptDec.y ;
b = ptDec.x - ptSrc.x ;
int iDirectionX, iDirectionY ;
iDirectionX = iDirectionY = 1 ;
if(b0)
iDirectionX = -1 ;
if(a0)
iDirectionY = -1 ;
int iDistance,
iDeltaSmall, iDeltaBig ,
iCurrX, iCurrY ;
int iStep ;
iDeltaSmall = 2*a*b*iDirectionX*iDirectionY ;
iCurrX = ptSrc.x ;
iCurrY = ptSrc.y ;
if(abs(b) abs(a))
{
iDeltaBig = 2*b*b + iDeltaSmall ;
iDistance = b*b + iDeltaSmall ;
iStep = abs(b) ;
while (iStep-- 0)
{
SetPixel(hdc, iCurrX, iCurrY, cr) ;
iCurrX += iDirectionX ;
if(iDistance 0)
{
iCurrY += iDirectionY ;
iDistance += iDeltaBig ;
}
else
{
iDistance += iDeltaSmall ;
}
}
}
else
{
iDeltaBig = 2*a*a + iDeltaSmall ;
iDistance = a*a + iDeltaSmall ;
iStep = abs(a) ;
while (iStep-- 0)
{
SetPixel(hdc, iCurrX, iCurrY, cr) ;
iCurrY += iDirectionY ;
if(iDistance 0)
{
iCurrX += iDirectionX ;
iDistance += iDeltaBig ;
}
else
{
iDistance += iDeltaSmall ;
}
}
}
SetPixel(hdc, ptDec.x, ptDec.y, cr) ;
}
前期高低点画线代码有哪些?
前期高低点画线代码
将下面的代码加入均线系统中就OK了
一、通信达
VAR31:=BACKSET(REF(HIGH,2)=HHV(HIGH,5),3);
VAR41:=CROSS(VAR31,0.9);
VAR51:=BACKSET(REF(LOW,2)=LLV(LOW,5),3);
VAR61:=CROSS(VAR51,0.9);
压力:= REF(HIGH,BARSLAST(VAR41));
STICKLINE(C,REF(HIGH,BARSLAST(VAR41)),REF(HIGH,BARSLAST(VAR41)),8,1),COLOR00FFFF;
支撑:= REF(LOW,BARSLAST(VAR61));
STICKLINE(C,REF(LOW,BARSLAST(VAR61)),REF(LOW,BARSLAST(VAR61)),8,1),COLORRED;
DRAWICON(CROSS(C,压力),L*1.00,7);
DRAWICON(CROSS(支撑,C),H*1.00,8);
二、博易大师
VAR31:=BACKSET(REF(HIGH,2)=HHV(HIGH,5),3);
VAR41:=CROSS(VAR31,0.9);
VAR51:=BACKSET(REF(LOW,2)=LLV(LOW,5),3);
VAR61:=CROSS(VAR51,0.9);
压力:= REF(HIGH,BARSLAST(VAR41));
STICKLINE(C,REF(HIGH,BARSLAST(VAR41)),REF(HIGH,BARSLAST(VAR41)),8,1),COLOR00FFFF;
支撑:= REF(LOW,BARSLAST(VAR61));
STICKLINE(C,REF(LOW,BARSLAST(VAR61)),REF(LOW,BARSLAST(VAR61)),8,1),COLORRED;
DRAWICON(CROSS(C,压力),L*1.00,1);
DRAWICON(CROSS(支撑,C),H*1.00,2);
求前期高低点画线代码?求前期高低高点自动画线代码?
前期高低点画线代码
将下面的代码加入均线系统中就OK了
一、通信达
VAR31:=BACKSET(REF(HIGH,2)=HHV(HIGH,5),3);
VAR41:=CROSS(VAR31,0.9);
VAR51:=BACKSET(REF(LOW,2)=LLV(LOW,5),3);
VAR61:=CROSS(VAR51,0.9);
压力:= REF(HIGH,BARSLAST(VAR41));
STICKLINE(C,REF(HIGH,BARSLAST(VAR41)),REF(HIGH,BARSLAST(VAR41)),8,1),COLOR00FFFF;
支撑:= REF(LOW,BARSLAST(VAR61));
STICKLINE(C,REF(LOW,BARSLAST(VAR61)),REF(LOW,BARSLAST(VAR61)),8,1),COLORRED;
DRAWICON(CROSS(C,压力),L*1.00,7);
DRAWICON(CROSS(支撑,C),H*1.00,8);
二、博易大师
VAR31:=BACKSET(REF(HIGH,2)=HHV(HIGH,5),3);
VAR41:=CROSS(VAR31,0.9);
VAR51:=BACKSET(REF(LOW,2)=LLV(LOW,5),3);
VAR61:=CROSS(VAR51,0.9);
压力:= REF(HIGH,BARSLAST(VAR41));
STICKLINE(C,REF(HIGH,BARSLAST(VAR41)),REF(HIGH,BARSLAST(VAR41)),8,1),COLOR00FFFF;
支撑:= REF(LOW,BARSLAST(VAR61));
STICKLINE(C,REF(LOW,BARSLAST(VAR61)),REF(LOW,BARSLAST(VAR61)),8,1),COLORRED;
DRAWICON(CROSS(C,压力),L*1.00,1);
DRAWICON(CROSS(支撑,C),H*1.00,2);
求 通达信 高手 编写 主图 高点和高点 画线公式 低点和低点画线公式
通达信可以编写两个高点连线并且延长,两个低点连线并且延长,也可以显示成虚线,但这个看起来应该比较乱这点要注意,我没有你的源码,那就找一个高点指标公式是一个效果,高点连线显示黄色虚线,低点连线显示绿色虚线。
效果如下图。
通达信波段高低点显示公式,将历史的每个波段的高低点都在主图上显示。最好能加上每个波段的振幅提示。
你要先明确你的历史波段的高低点是以什么确定的,是跌涨幅大于百分之多少才定通义为顶点或谷点。以下是我给你写的公式,其中的N按你的想法来换数字,比如你的想法是涨跌超过10%才能算谷点或顶点,你就把N改为10。另外,判断顶点或谷点是后知后觉的,比如你看今天是最高了,但明天如果收盘更高,那今天的这个位置就不能算顶点,顶点要向后移了。因此,这个公式只能做参考,切莫以这个公式做选股用。以下的公式你先试试,应该没有问题。
折线:ZIG(3,N);
前波峰值:=PEAK(3,N,1);
前波谷值:=TROUGH(3,N,1);
DRAWNUMBER(折线REF(折线,1)
AND
REF(折线,1)REF(折线,2),REF(C,1),-(前波峰值-REF(C,1))/前波峰值*100);
DRAWNUMBER(折线REF(折线,1)
AND
REF(折线,1)REF(折线,2),REF(C,1),(REF(C,1)-前波谷值)/前波谷值*100);
ACKSET(REF(LOW,2)=LLV(LOW,5),3);VAR61:=CROSS(VAR51,0.9);压力:= REF(HIGH,BARSLAST(VAR41));STICKLINE(C,REF(HIGH,BARSLAST(VAR41)),REF(
f(xk+directionX,yk+directionY)=f(xk,yk) +2*a*a+2*a*b*directionX*directionY ;当f(xk,yk)=0的时候,下一个点为(xk+dir
rectionX,yk+directionY)=f(xk,yk) +2*a*a+2*a*b*directionX*directionY ;当f(xk,yk)=0的
REF(折线,1)REF(折线,2),REF(C,1),-(前波峰值-REF(C,1))/前波峰值*100);DRAWNUMBER(折线REF(折线,1)ANDREF(折线,1)REF(折线,2),REF(C,1),(REF(C,1)-前波谷值)/前波谷值*100);