每日一点

2012-9-6:

如果想知道你的对象是否获得焦点,可以用::GetFocus()函数的返回值与你的对象的this->m_hWnd来进行对比:

if(this->m_hWnd==::GetFocus())
{
     //说明已经获得焦点
}


2012-9-7:

判断窗口是否存在与显示:

BOOL IsWindow(HWND hWnd /);//判断该窗口是否存在
BOOL IsWindowVisible(HWND hWnd );//函数来判断某对话框是显示还是隐藏

2012-10-24:

CreateProcess函数

CreateProcess函数用于创建进程:
BOOL CreateProcess(
PCTSTR pszApplicationName,
PTSTR pszCommandLine,
PSECURITY_ATTRIBUTES psaProcess,
PSECURITY_ATTRIBUTES psaThread,
BOOL bInheritHandles,
DWORD fdwCreate,
PVOID pvEnvironment,
PCTSTR pszCurDir,
PSTARTUPINFO psiStartInfo,
PPROCESS_INFORMATION ppiProcInfo);

线程调用CreateProcess时,系统会创建一个进程内核对象,将其引用计数初始化为1(进程内核对象并不是进程本身,它只是操作系统用来管理进程的数据结构,其中包含了进程的一些统计信息)。然后系统为新进程开辟虚拟地址空间,并将可执行文件的代码和数据以及所需的DLL装载到该地址空间中。接着系统为进程主线程创建线程内核对象,并将其引用计数初始为1(同进程一样,线程内核对象也不是线程本身,而且操作系统用来管理线程的数据结构)。主线程将链接器设置的入口点函数作为C/C++运行时启动函数调用,这些启动函数最终又调用代码中的入口点函数如WinMain、wWinMain、main和 wmain。当操作系统成功创建了新的进程和主线程后,CreateProcess返回TRUE。以上是CreateProcess的简要介绍,下面我们来详细讨论它的参数。

pszApplicationName和pszCommandLine
  pszApplicationName和pszCommandLine分别表示进程使用的可执行文件名和向其传递的命令行字符串,我们先来看看 pszCommandLine参数。注意pszCommandLine是PTSTR,这意味着你必须为其传递指向非常量字符串的地址。(居然就犯了这样一个错误,果然是莫在浮沙筑高台啊!) CreateProcess内部会更改向其传递的命令行字符串,但在CreateProcess返回之前,它会将该字符串恢复原样。这一点是非常重要的,因为如果你向CreateProcess传递的命令行字符串位于进程的只读存储区,就会发生Access Violation错误。比如,下面的代码执行时会触发Access Violation,因为微软的C/C++编译器会把常量字符串放入只读存储区(注意早期的微软C/C++编译器会将常量字符串放在可读写存储区,因此下面的代码在旧的编译环境下不会出错):
STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;
CreateProcess(NULL, TEXT("NOTEPAD"), NULL, NULL,
FALSE, 0, NULL, NULL, &si, &pi);

解决这个问题的方法很简单,将命令行字符串复制到临时缓冲区既可,如下所示:
STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;
TCHAR szCommandLine[] = TEXT("NOTEPAD");
CreateProcess(NULL, szCommandLine, NULL, NULL,
FALSE, 0, NULL, NULL, &si, &pi);

微软在其C++编译器选项中提供了/GF开关,/GF打开时,程序中所有用到的常量字符串将只维护单一副本,且位于只读存储部分。在调用 CreateProcess时,开发人员应该打开/GF开关并使用缓冲区。我们希望微软在未来版本的Windows中会改进CreateProcess,使其接受常量字符串作为命令行参数,并在其内部分配/释放临时缓冲区而不是让API调用者来做。另外,假如你使用常量ANSI字符串作为 CreateProcess参数,并不会发生Access Violation错误,我们在前面的章节已经提到过,许多WinAPI函数的ANSI版本会将ANSI参数转换为UNIDOE编码后调用其 Unicode版本,CreateProcess会把ANSI字符串转换为Unicode编码后放在临时缓冲区,并调用Unicode版的 CreateProcess,因此不会触发Access Violation。
  pszCommandLine参数指定了 CreateProcess创建新进程所需的完整命令行。当CreateProcess解析该参数时,它会检查命令行参数中的第一个标记,并将其作为进程要执行的可执行文件名,如果该文件名没有指定后缀,函数将把它当作exe文件。CreateProcess会按下面的顺序查找该文件:
1. 包含当前进程可执行文件的目录
2. 当前进程的当前目录
3. Windows系统目录,既GetSystemDirectory返回的目录
4. Windows目录
5. PATH环境变量列出的目录
当然,如果文件名包含了完整路径,系统将会在该路径中查找文件而不会再做上面的搜索。如果系统找到了可执行文件,它会创建一个新的进程并把可执行文件的代码和数据映射到进程的地址空间,然后调用CRT启动函数(linker选项卡中的入口点函数),接着CRT启动函数检查命令行参数,过滤掉其中的可执行文件部分,并把剩下字符串的地址作为pszCmdLine传给wWinMain/WinMain。

以上情形都是在pszApplicationName为NULL时发生的。 pszApplicationName指定了进程要执行的可执行文件的名称,假如没有指定文件后缀,系统并不会做任何处理。 pszApplicationName不包含完整路径时,CreateProcess只从当前目录中查找可执行文件,查找失败时函数失败并返回 FALSE。即使指定了pszApplicationName,CreateProcess仍然会将pszCommandLine参数作为新进程的命令行。比如下面的代码:
// Make sure that the path is in a read/write section of memory.
TCHAR szPath[] = TEXT("WORDPAD README.TXT");

// Spawn the new process.
CreateProcess(TEXT("C:\\WINDOWS\\SYSTEM32\\NOTEPAD.EXE"),szPath,...);

执行上面代码时,系统会打开notepad.exe(记事本),但它的命令行却是WORDPAD README.TXT(WORDPAD是写字板),这看上去非常奇怪,但CreateProcess就是这样工作的。这种 pszApplicationName提供的特性被用来支持Windows的POSIX子系统。

2.12-10-26:

Asymptote Tips:

asymptote 是一种类似于metapost的科学绘图语言,由于其语法融合了C的特性,所以更加好学,而且asymptote有强大的3D绘图能力,尤其是可以绘制真3D图像,这个特性是metapost所不及的

 dot(pair,UnFill)中的UnFill是把点挖空,而不是填充为白色,这个特点是很独到的

 为了给角加标注,需要引入geometry宏包,为了方便画函数图,需要引入graph宏包,为绘制隐函数,需要引入contour宏包,阴影填充,引入patterns宏包

 for(int i=0, i<4; br="" /> %默认的线宽是0.5bp(1bp=1/72inch)

 ^^ 二元运算符,它要求画笔从左边路径的终点移动(而不绘制出来或影响终点的曲率)到右边路径的起点,可以用来将若干 Asymptote 路径汇集到一个 path[] 数组中

 Asymptote内部的变量名是大小写敏感的

 对于pair型变量p和triple型变量t而言,取分量可以简单的:p.x,p.y;t.x,t.y,t.z

 import three之后,X,Y,Z三个字母就已经被定义为单位向量了

b=3*++a;等价于: a=a+; b=3*a


2012-11-3:VC创建路径与判断路径存不存在 

以下程序得到运行程序的当前路径,并在当前路径文件夹下创建tmp文件夹,判断存不存在。

CString CurPath;
DWORD size=MAX_PATH;
::GetModuleFileName(NULL,CurPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
int pos=CurPath.ReverseFind('\\');
CurPath=CurPath.Left(pos+1);
CString tmp=CString("tmp\\");
CurPath+=tmp;
CFileFind find;
if(!find.FindFile(CurPath))
{
::CreateDirectory(CurPath,NULL);
}
m_tmpImagePath=CurPath;


2012-11-4 获得文件夹得路径

//选择文件夹
CString GetDirectory()
{
BROWSEINFO bi;
char name[MAX_PATH];
ZeroMemory(&bi,sizeof(BROWSEINFO));
bi.hwndOwner = AfxGetMainWnd()->GetSafeHwnd();
bi.pszDisplayName = name;
bi.lpszTitle = "选择文件夹目录";
bi.ulFlags = BIF_RETURNFSANCESTORS;
LPITEMIDLIST idl = SHBrowseForFolder(&bi);
if(idl == NULL)
return "";
CString strDirectoryPath;
SHGetPathFromIDList(idl, strDirectoryPath.GetBuffer(MAX_PATH));
strDirectoryPath.ReleaseBuffer();
if(strDirectoryPath.IsEmpty())
return "";
if(strDirectoryPath.Right(1)!="\\")
strDirectoryPath+="\\";

return strDirectoryPath;
}


2012-12-8 修改VC生成的exe的默认名称:

工程属性->链接器->常规->输出文件


{起爆时间} 委买:DYNAINFO(58)*C/100,LINETHICK0; 委卖:DYNAINFO(59)*C/100,LINETHICK0; 委差:DYNAINFO(58)-DYNAINFO(59)*C/100,LINETHICK0; 多空比:=DYNAINFO(58)/DYNAINFO(59)*C/100,LINETHICK0; 昨收:=DYNAINFO(3); HH:=DYNAINFO(5); LL:=DYNAINFO(6); FK:=MAX(HH-昨收,昨收-LL)*0.1; ZS:=昨收-FK*3.2; Q1:=昨收-FK*3.22; Q2:=昨收-1*FK*3.22; Q3:=昨收-5*FK*3.2; TJ:=FILTER(C,239)>0,NODRAW; TJJ:=SUM(TJ,0),NODRAW; TJA:=CONST(TJJ),NODRAW; 流通盘:=CAPITAL*100/100000000,NODRAW; 资金流入:=SUM(IF(C>REF(C,1),V,0),FROMOPEN),LINETHICK3,COLORRED; 资金流出:=-SUM(IF(C<REF(C,1),V,0),FROMOPEN),LINETHICK3,COLORWHITE; 资金出入:=资金流入+资金流出,LINETHICK3,COLORGREEN; HD:=HHV(资金出入,2400); LD:=LLV(资金出入,2400); 最高:=CONST(HD),NODRAW; 最低:=CONST(LD),NODRAW; HLMAX:=最高; HLMIN:=最低; HLMN1:=(HLMAX+HLMIN)/2; HLMN2:=HLMAX-HLMIN; HLMN3:=(100-0)/2*1.3; HLMN4:=(100-0)/1*1.3; 中间价轴:=(50-HLMN3)*HLMN2/HLMN4+HLMN1; 轴差:=最高-最低; STICKLINE(资金出入>0, 0+50000, 资金出入+50000, 1, 0), COLOR550055; STICKLINE(资金出入<0, 资金出入+50000, 0+50000, 1, 0), COLOR006400; DRAWBAND(资金出入,RGB(150,0,150),0,RGB(0,100,0)); 资金流量:=资金出入,COLORFFFFFF,LINETHICK1; 资金比:=资金出入/SUM(V,FROMOPEN)*100,COLOR00FFFF,LINETHICK1; 资金流量比:=IF(资金比>=0,(资金比+100)/2,100-ABS((资金比-100)/2)); 攻击量:=((HSL*0.50+REF(HSL,1)*0.33)+(REF(HSL,2)*0.17))*SUM(C,FROMOPEN)/FROMOPEN; 攻击量A:=SUM(IF(C>REF(C,1),攻击量*V,0),FROMOPEN),COLOR0000FF,LINETHICK0; 攻击量B:=-SUM(IF(C<REF(C,1),攻击量*V,0),FROMOPEN),COLOR00FF00,LINETHICK0; 攻击流量:攻击量A+攻击量B,COLORSTICK; NOTEXT攻击线:攻击流量,COLORYELLOW,LINETHICK1; 攻击比:攻击流量/SUM(V,FROMOPEN)*100,COLORRED,LINETHICK1; 资金攻击度:IF(攻击比>=0,(攻击比+50),100-ABS((攻击比-50))),COLORMAGENTA; {STICKLINE(资金流量A>0,资金流量A,0,1,0),COLOR0000FF; STICKLINE(资金流量B<0,资金流量B,0,1,0),COLORFF0000;} DRAWRECTREL(110,10,400,90,RGB(0,75,200)); DRAWRECTREL(110,10,250,90,RGB(0,250,50)); DRAWRECTREL(110,10,100+CONST(资金流量比*300/100),90,RGB(200,50,0)); DRAWTEXT_FIX(1,0.000,0.00,0,STRCAT(STRCAT('【资金流量比】',CON2STR(资金流量比,2)),'%买')),COLORYELLOW; DRAWRECTREL(610,10,900,90,RGB(0,75,200)); DRAWRECTREL(610,10,750,90,RGB(0,250,50)); DRAWRECTREL(610,10,600+CONST(资金攻击度*300/100),90,RGB(175,50,0)); DRAWTEXT_FIX(1,0.500,0.00,0,STRCAT(STRCAT('【资金攻击度】',CON2STR(资金攻击度,2)),' %买')),COLORYELLOW; 量:=VOL,VOLSTICK; 五日量:=MA(量,5),COLORWHITE; TT:=BARSCOUNT(C);{取得有效收盘价} 均价黄:=SUM(C*V,TT)/SUM(V,TT);{分时均线的取值} 量两步:=MA(V,5)>REF(MA(V,5),1) AND REF(MA(V,5),1)>REF(MA(V,5),2); 价两步:= C>=REF(C,1) AND REF(C,1)>REF(C,2); 价上岗量破5:=C>均价黄 AND V>MA(V,5); 量起爆:=V>=REF(V,1)*1; 价创新高:=C>=HHV(C,0); 量创新高:=V>=HHV(V,0); 对昨日涨幅:=(C/DYNAINFO(3)-1)*100<=1.50;{涨幅控制2个点以内} 每日一点:=量两步 AND 价两步 AND 价上岗量破5 AND 量起爆 AND 价创新高 AND 量创新高 AND 对昨日涨幅; {计算收益、已爆分钟} VV:=BARSSINCE(每日一点)+1; 首次起爆价:=REF(C,VV-1),NODRAW; 起爆收益:(DYNAINFO(7)-首次起爆价)/首次起爆价*100,NODRAW; 起爆时间:=REF(TIME/10000,VV),NODRAW; 已爆分钟:=VV-1,NODRAW; {画出底线和红球} 首次起爆量:=REF(VOL,VV-1); MMA30:=EMA(CLOSE,30); 强弱界定:=IF(PERIOD=0 ,EMA(CLOSE,900),DRAWNULL); 分时均价线:=SUM(C*V,240)/SUM(V,240),COLORYELLOW,LINETHICK2; GHYJKU:=BETWEEN(CLOSE/(SUM(AMOUNT,BARSCOUNT(CLOSE))/SUM(VOL*100,BARSCOUNT(CLOSE))),1.05,0.95); VBNH:=IF(0,MA(CLOSE,BARSCOUNT(CLOSE)),(SUM(AMOUNT,BARSCOUNT(CLOSE))/SUM(VOL*100,BARSCOUNT(CLOSE)))); 二十☆:=EXPMA((CLOSE/VBNH),20),COLORRED,LINETHICK1; 六十:=EXPMA((CLOSE/VBNH),60),COLORLIGREEN,LINETHICK1; FAA:=BARSLAST(TIME=100000); FCC:=REF(HHV(C,0),FAA+1); FVV:=REF(HHV(V,0),FAA+1); ZF:=FCC/DYNAINFO(3)<1.05; XG1:=CROSS(C,FCC) AND V>FVV AND ZF,COLORWHITE; FAA1:=BARSLAST(TIME=110000); FCC1:=REF(HHV(C,0),FAA1+1); FVV1:=REF(HHV(V,0),FAA1+1); ZF1:=FCC1/DYNAINFO(3)<1.05; XG2:=CROSS(C,FCC1) AND V>FVV1 AND ZF1,COLORYELLOW; 突破:=XG1 OR XG2,COLORRED; VT:=BARSSINCE(突破)+1; 首次突破价:=REF(C,VT-1),NODRAW; 突破收益:=(DYNAINFO(7)-首次突破价)/首次突破价*100,NODRAW; 拉升量:=IF(C>REF(C,1),VOL,0); 昨拉升最高值:=CONST(FINDHIGH(拉升量,FROMOPEN,240,1)),LINETHICK1,COLORMAGENTA; 今拉升最高值:=CONST(REF(HHV(拉升量,FROMOPEN),0)),COLORYELLOW,NODRAW; 攻击力度:=今拉升最高值/昨拉升最高值,NODRAW; STICKLINE(FILTER(CROSS(拉升量,昨拉升最高值),30),最低+轴差*0.80,最低,1,0),COLORCYAN; STICKLINE(每日一点,最低+轴差*0.65,最低,1,0),COLORMAGENTA; STICKLINE(突破,最低+轴差*0.50,最低,1,0),COLORWHITE; STICKLINE(FILTER(BARSLAST(C<MIN(MMA30,强弱界定))<=20 AND CROSS(C,MAX(MMA30,强弱界定)),30),最低,最低+轴差*0.2,1,0),COLORGREEN; DRAWICON(FILTER(CROSS(拉升量,昨拉升最高值),30),最低+轴差*0.80,1); DRAWICON(每日一点,最低+轴差*0.65,1); DRAWICON(突破,最低+轴差*0.50,17); DRAWICON(FILTER(BARSLAST(C<MIN(MMA30,强弱界定))<=20 AND CROSS(C,MAX(MMA30,强弱界定)),30),最低+轴差*0.2,9); 打压量:=IF(C<REF(C,1),VOL,0); 今打压最高值:=CONST(REF(HHV(打压量,FROMOPEN),0)),NODRAW; DRAWTEXT(FILTER(CROSS(拉升量,今打压最高值),30),最低+轴差*0.80,'攻'),COLORMAGENTA; DRAWTEXT(FILTER(CROSS(拉升量,今打压最高值),30),最低+轴差*0.60,'击'),COLORMAGENTA; DRAWTEXT(每日一点,最低+轴差*0.65,'起爆'),COLORGREEN; DRAWNUMBER(每日一点,最低+轴差*0.55,首次起爆价),COLORGREEN; DRAWTEXT(突破,最低+轴差*0.50,'分时突破'),COLORWHITE; DRAWNUMBER(突破,最低+轴差*0.40,首次突破价),COLORWHITE; DRAWTEXT(FILTER(BARSLAST(C<MIN(MMA30,强弱界定))<=20 AND CROSS(C,MAX(MMA30,强弱界定)),30),最低+轴差*0.2,'关注'),COLORMAGENTA; 大单买:(SUM(IF(C>REF(C,1) AND V>4000,V/1000,0),0))*1500,COLORRED,LINETHICK3; 大单卖:(SUM(IF(C<REF(C,1) AND V>4000,V/1000,0),0))*1500,COLORGREEN,LINETHICK3; DRAWTEXT(突破,最低+轴差*0.50,'分时突破'),COLORWHITE; 股价趋势:3*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100000,5,1)-2*SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100000,5,1),3,1),COLORYELLOW; 最后一句给在加一条线 通达信代码写一下
最新发布
11-28
<think> 根据用户提供的通达信代码,最后要求添加一条线。代码的最后一行是: 股价趋势:3*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100000,5,1)-2*SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100000,5,1),3,1),COLORYELLOW; 用户要求在此基础上再加一条线。由于没有具体说明加什么线,我们可以考虑添加一条移动平均线,例如5日移动平均线,或者根据上下文添加一条信号线(比如将上述指标进行平滑处理)。但是,由于原代码中已经有一个复杂的指标,我们可以考虑添加该指标的平均线,使其更平滑。 这里我选择添加上述“股价趋势”指标的3日简单移动平均线(SMA),并设置为另一种颜色(例如红色)。 修改后的代码为: 股价趋势:3*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100000,5,1)-2*SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100000,5,1),3,1),COLORYELLOW; 股价趋势均线:MA(股价趋势,3),COLORRED; 注意:由于“股价趋势”是一个自定义的指标线,我们可以在其后直接引用它来计算其移动平均线。 但是,需要注意的是,在通达信中,如果在一个指标公式中引用当前公式中定义的指标线,可以直接使用其名称。但是,这里我们给新添加的线起名为“股价趋势均线”,并计算其3日移动平均。 另外,原代码中已经有很多变量,我们只需在最后添加这一行即可。 因此,完整的修改就是在最后一行下面加上: 股价趋势均线:MA(股价趋势,3),COLORRED; 但是,请注意,原代码最后一行已经结束,我们需要确保新加的一行是独立的语句。 另外,原代码中使用了大量的变量和计算,我们添加的这条线是基于“股价趋势”的,所以不会影响前面的计算。 下面给出修改后的最后两行代码(原代码的最后一行保持不变,添加一行): ```通达信 股价趋势:3*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100000,5,1)-2*SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100000,5,1),3,1),COLORYELLOW; 股价趋势均线:MA(股价趋势,3),COLORRED; ``` 解释: - 第一行(原代码)计算了一个名为“股价趋势”的指标,该指标是一个经过两次平滑处理的相对位置指标(类似于随机指标KDJ的变形)。 - 第二行(新增)计算了“股价趋势”的3日简单移动平均,并命名为“股价趋势均线”,用红色线条表示。 这样,在图表上就会同时显示“股价趋势”和它的3日均线,有助于观察趋势的变化。 注意:由于原代码很长,我们只修改了最后两行。在将这段代码复制到通达信软件时,请确保前面的代码保持不变。 另外,由于原代码中使用了大量的函数和变量,如果出现重名或者语法错误,请检查。但这里新增的变量名“股价趋势均线”在原代码中没有出现,所以不会冲突。 如果用户希望添加其他类型的线(如指数移动平均线EMA),可以相应修改。这里使用的是简单移动平均(MA)。 最后,请用户根据实际需求调整参数和颜色。 §§相关问题§§: 1. 如何在通达信指标中添加多条均线? 2. 如何修改通达信指标中线条的粗细和样式? 3. 如何根据股价趋势指标设计交易信号(如金叉、死叉)? 4. 在通达信指标中,如何引用自定义公式中的中间变量? </think>根据您的要求,在原有代码基础上添加一条线的通达信代码如下。我在最后添加了一条"股价趋势均线"(3日移动平均线): ```通达信 {起爆时间} 委买:DYNAINFO(58)*C/100,LINETHICK0; 委卖:DYNAINFO(59)*C/100,LINETHICK0; 委差:DYNAINFO(58)-DYNAINFO(59)*C/100,LINETHICK0; 多空比:=DYNAINFO(58)/DYNAINFO(59)*C/100,LINETHICK0; 昨收:=DYNAINFO(3); HH:=DYNAINFO(5); LL:=DYNAINFO(6); FK:=MAX(HH-昨收,昨收-LL)*0.1; ZS:=昨收-FK*3.2; Q1:=昨收-FK*3.22; Q2:=昨收-1*FK*3.22; Q3:=昨收-5*FK*3.2; TJ:=FILTER(C,239)>0,NODRAW; TJJ:=SUM(TJ,0),NODRAW; TJA:=CONST(TJJ),NODRAW; 流通盘:=CAPITAL*100/100000000,NODRAW; 资金流入:=SUM(IF(C>REF(C,1),V,0),FROMOPEN),LINETHICK3,COLORRED; 资金流出:=-SUM(IF(C<REF(C,1),V,0),FROMOPEN),LINETHICK3,COLORWHITE; 资金出入:=资金流入+资金流出,LINETHICK3,COLORGREEN; HD:=HHV(资金出入,2400); LD:=LLV(资金出入,2400); 最高:=CONST(HD),NODRAW; 最低:=CONST(LD),NODRAW; HLMAX:=最高; HLMIN:=最低; HLMN1:=(HLMAX+HLMIN)/2; HLMN2:=HLMAX-HLMIN; HLMN3:=(100-0)/2*1.3; HLMN4:=(100-0)/1*1.3; 中间价轴:=(50-HLMN3)*HLMN2/HLMN4+HLMN1; 轴差:=最高-最低; STICKLINE(资金出入>0, 0+50000, 资金出入+50000, 1, 0), COLOR550055; STICKLINE(资金出入<0, 资金出入+50000, 0+50000, 1, 0), COLOR006400; DRAWBAND(资金出入,RGB(150,0,150),0,RGB(0,100,0)); 资金流量:=资金出入,COLORFFFFFF,LINETHICK1; 资金比:=资金出入/SUM(V,FROMOPEN)*100,COLOR00FFFF,LINETHICK1; 资金流量比:=IF(资金比>=0,(资金比+100)/2,100-ABS((资金比-100)/2)); 攻击量:=((HSL*0.50+REF(HSL,1)*0.33)+(REF(HSL,2)*0.17))*SUM(C,FROMOPEN)/FROMOPEN; 攻击量A:=SUM(IF(C>REF(C,1),攻击量*V,0),FROMOPEN),COLOR0000FF,LINETHICK0; 攻击量B:=-SUM(IF(C<REF(C,1),攻击量*V,0),FROMOPEN),COLOR00FF00,LINETHICK0; 攻击流量:攻击量A+攻击量B,COLORSTICK; NOTEXT攻击线:攻击流量,COLORYELLOW,LINETHICK1; 攻击比:攻击流量/SUM(V,FROMOPEN)*100,COLORRED,LINETHICK1; 资金攻击度:IF(攻击比>=0,(攻击比+50),100-ABS((攻击比-50))),COLORMAGENTA; DRAWRECTREL(110,10,400,90,RGB(0,75,200)); DRAWRECTREL(110,10,250,90,RGB(0,250,50)); DRAWRECTREL(110,10,100+CONST(资金流量比*300/100),90,RGB(200,50,0)); DRAWTEXT_FIX(1,0.000,0.00,0,STRCAT(STRCAT('【资金流量比】',CON2STR(资金流量比,2)),'%买')),COLORYELLOW; DRAWRECTREL(610,10,900,90,RGB(0,75,200)); DRAWRECTREL(610,10,750,90,RGB(0,250,50)); DRAWRECTREL(610,10,600+CONST(资金攻击度*300/100),90,RGB(175,50,0)); DRAWTEXT_FIX(1,0.500,0.00,0,STRCAT(STRCAT('【资金攻击度】',CON2STR(资金攻击度,2)),' %买')),COLORYELLOW; 量:=VOL,VOLSTICK; 五日量:=MA(量,5),COLORWHITE; TT:=BARSCOUNT(C);{取得有效收盘价} 均价黄:=SUM(C*V,TT)/SUM(V,TT);{分时均线的取值} 量两步:=MA(V,5)>REF(MA(V,5),1) AND REF(MA(V,5),1)>REF(MA(V,5),2); 价两步:= C>=REF(C,1) AND REF(C,1)>REF(C,2); 价上岗量破5:=C>均价黄 AND V>MA(V,5); 量起爆:=V>=REF(V,1)*1; 价创新高:=C>=HHV(C,0); 量创新高:=V>=HHV(V,0); 对昨日涨幅:=(C/DYNAINFO(3)-1)*100<=1.50;{涨幅控制2个点以内} 每日一点:=量两步 AND 价两步 AND 价上岗量破5 AND 量起爆 AND 价创新高 AND 量创新高 AND 对昨日涨幅; {计算收益、已爆分钟} VV:=BARSSINCE(每日一点)+1; 首次起爆价:=REF(C,VV-1),NODRAW; 起爆收益:(DYNAINFO(7)-首次起爆价)/首次起爆价*100,NODRAW; 起爆时间:=REF(TIME/10000,VV),NODRAW; 已爆分钟:=VV-1,NODRAW; {画出底线和红球} 首次起爆量:=REF(VOL,VV-1); MMA30:=EMA(CLOSE,30); 强弱界定:=IF(PERIOD=0 ,EMA(CLOSE,900),DRAWNULL); 分时均价线:=SUM(C*V,240)/SUM(V,240),COLORYELLOW,LINETHICK2; GHYJKU:=BETWEEN(CLOSE/(SUM(AMOUNT,BARSCOUNT(CLOSE))/SUM(VOL*100,BARSCOUNT(CLOSE))),1.05,0.95); VBNH:=IF(0,MA(CLOSE,BARSCOUNT(CLOSE)),(SUM(AMOUNT,BARSCOUNT(CLOSE))/SUM(VOL*100,BARSCOUNT(CLOSE)))); 二十☆:=EXPMA((CLOSE/VBNH),20),COLORRED,LINETHICK1; 六十:=EXPMA((CLOSE/VBNH),60),COLORLIGREEN,LINETHICK1; FAA:=BARSLAST(TIME=100000); FCC:=REF(HHV(C,0),FAA+1); FVV:=REF(HHV(V,0),FAA+1); ZF:=FCC/DYNAINFO(3)<1.05; XG1:=CROSS(C,FCC) AND V>FVV AND ZF,COLORWHITE; FAA1:=BARSLAST(TIME=110000); FCC1:=REF(HHV(C,0),FAA1+1); FVV1:=REF(HHV(V,0),FAA1+1); ZF1:=FCC1/DYNAINFO(3)<1.05; XG2:=CROSS(C,FCC1) AND V>FVV1 AND ZF1,COLORYELLOW; 突破:=XG1 OR XG2,COLORRED; VT:=BARSSINCE(突破)+1; 首次突破价:=REF(C,VT-1),NODRAW; 突破收益:=(DYNAINFO(7)-首次突破价)/首次突破价*100,NODRAW; 拉升量:=IF(C>REF(C,1),VOL,0); 昨拉升最高值:=CONST(FINDHIGH(拉升量,FROMOPEN,240,1)),LINETHICK1,COLORMAGENTA; 今拉升最高值:=CONST(REF(HHV(拉升量,FROMOPEN),0)),COLORYELLOW,NODRAW; 攻击力度:=今拉升最高值/昨拉升最高值,NODRAW; STICKLINE(FILTER(CROSS(拉升量,昨拉升最高值),30),最低+轴差*0.80,最低,1,0),COLORCYAN; STICKLINE(每日一点,最低+轴差*0.65,最低,1,0),COLORMAGENTA; STICKLINE(突破,最低+轴差*0.50,最低,1,0),COLORWHITE; STICKLINE(FILTER(BARSLAST(C<MIN(MMA30,强弱界定))<=20 AND CROSS(C,MAX(MMA30,强弱界定)),30),最低,最低+轴差*0.2,1,0),COLORGREEN; DRAWICON(FILTER(CROSS(拉升量,昨拉升最高值),30),最低+轴差*0.80,1); DRAWICON(每日一点,最低+轴差*0.65,1); DRAWICON(突破,最低+轴差*0.50,17); DRAWICON(FILTER(BARSLAST(C<MIN(MMA30,强弱界定))<=20 AND CROSS(C,MAX(MMA30,强弱界定)),30),最低+轴差*0.2,9); 打压量:=IF(C<REF(C,1),VOL,0); 今打压最高值:=CONST(REF(HHV(打压量,FROMOPEN),0)),NODRAW; DRAWTEXT(FILTER(CROSS(拉升量,今打压最高值),30),最低+轴差*0.80,'攻'),COLORMAGENTA; DRAWTEXT(FILTER(CROSS(拉升量,今打压最高值),30),最低+轴差*0.60,'击'),COLORMAGENTA; DRAWTEXT(每日一点,最低+轴差*0.65,'起爆'),COLORGREEN; DRAWNUMBER(每日一点,最低+轴差*0.55,首次起爆价),COLORGREEN; DRAWTEXT(突破,最低+轴差*0.50,'分时突破'),COLORWHITE; DRAWNUMBER(突破,最低+轴差*0.40,首次突破价),COLORWHITE; DRAWTEXT(FILTER(BARSLAST(C<MIN(MMA30,强弱界定))<=20 AND CROSS(C,MAX(MMA30,强弱界定)),30),最低+轴差*0.2,'关注'),COLORMAGENTA; 大单买:(SUM(IF(C>REF(C,1) AND V>4000,V/1000,0),0))*1500,COLORRED,LINETHICK3; 大单卖:(SUM(IF(C<REF(C,1) AND V>4000,V/1000,0),0))*1500,COLORGREEN,LINETHICK3; DRAWTEXT(突破,最低+轴差*0.50,'分时突破'),COLORWHITE; {新增的股价趋势均线} 股价趋势:3*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100000,5,1)-2*SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100000,5,1),3,1),COLORYELLOW; 股价趋势均线:MA(股价趋势,3),COLORRED,LINETHICK2; {新增的红色均线} ``` ### 代码说明: 1. **新增内容**: - 在最后添加了`股价趋势均线:MA(股价趋势,3),COLORRED,LINETHICK2;` - 这条线是原"股价趋势"指标的3日简单移动平均线 - 使用红色(COLORRED)显示 - 线宽设置为2(LINETHICK2),使其在图表中更明显 2. **功能**: - 这条均线可以帮助平滑"股价趋势"指标的波动 - 当股价趋势线上穿均线时,可能表示上升趋势增强 - 当股价趋势线下穿均线时,可能表示趋势减弱 - 红色均线与黄色股价趋势线形成双线系统,便于观察趋势变化 3. **参数说明**: - `MA(股价趋势,3)`:计算股价趋势的3日移动平均 - 数字3可根据需要修改为5、7等其它周期 - COLORRED可替换为其他颜色代码(如COLORGREEN等) 4. **使用建议**: - 可配合原指标的金叉/死叉策略使用 - 股价趋势线上穿红色均线可视为买入信号 - 股价趋势线下穿红色均线可视为卖出信号 - 可结合量能指标(如大单买/大单卖)验证信号强度
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值