通达信〖区间黄金分割〗改版大智慧黄金主图自动绘出黄金分割线源码
本指标在坛友分享的大智慧《黄金主图》基础上改写、编译而成,面向通达信用户,免去调用系统画线工具的步骤。使用时,只需在参数窗口中填入所选区间的K线根数,即可自动绘出黄金分割线及对应分割股价,方便研判股价运行趋势,并为操作提供参考。指标还提供切换开关,可从低点向高点递增显示,也可从高点向低点递减显示,使用更灵活。具体用法请参见附图。
区间周期:=60;
切换开关:=1;
AR1:=BARSCOUNT(C);
AR2:=CONST(AR1);
AR3:=AR2-AR1;
K线根数:AR3+1,NODRAW,COLORYELLOW;
N:=区间周期;
HH:=HHV(H,N);
LL:=LLV(L,N);
BH:=HHVBARS(H,N);
BL:=LLVBARS(L,N);
BH2:=CONST(BH);
BL2:=CONST(BL);
高点K:=CURRBARSCOUNT=BH2+1;
低点K:=CURRBARSCOUNT=BL2+1;
STICKLINE(高点K,O,C,3,0),COLORFF00FF,LINETHICK2;
STICKLINE(低点K,O,C,3,0),COLORYELLOW,LINETHICK2;
DRAWICON(高点K,H*1.004,35);
DRAWICON(低点K,L*0.996,34);
DRAWTEXT(高点K,H*1.012,'高点'),COLORRED;
DRAWTEXT(低点K,L*0.988,'低点'),COLORGREEN;
HL:=HH-LL;
A80A:=IF(切换开关=1,0.809*HL+LL,DRAWNULL);
A61A:=IF(切换开关=1,0.618*HL+LL,DRAWNULL);
A50A:=IF(切换开关=1,0.500*HL+LL,DRAWNULL);
A38A:=IF(切换开关=1,0.382*HL+LL,DRAWNULL);
A19A:=IF(切换开关=1,0.191*HL+LL,DRAWNULL);
A80B:=IF(切换开关=0,HH-0.191*HL,DRAWNULL);
A61B:=IF(切换开关=0,HH-0.382*HL,DRAWNULL);
A50B:=IF(切换开关=0,HH-0.500*HL,DRAWNULL);
A38B:=IF(切换开关=0,HH-0.618*HL,DRAWNULL);
A19B:=IF(切换开关=0,HH-0.809*HL,DRAWNULL);
最高线:REFDATE(HH,DATE),CIRCLEDOT,COLORRED;
八零九线A:IF(切换开关=1,REFDATE(A80A,DATE),DRAWNULL),DOTLINE,COLORLIRED;
六一八线A:IF(切换开关=1,REFDATE(A61A,DATE),DRAWNULL),DOTLINE,COLORLIRED;
五十线A:IF(切换开关=1,REFDATE(A50A,DATE),DRAWNULL),DOTLINE,COLORLIRED;
三八二线A:IF(切换开关=1,REFDATE(A38A,DATE),DRAWNULL),DOTLINE,COLORLIRED;
一九一线A:IF(切换开关=1,REFDATE(A19A,DATE),DRAWNULL),DOTLINE,COLORLIRED;
一九一线B:IF(切换开关=0,REFDATE(A80B,DATE),DRAWNULL),DOTLINE,COLORFF8800;
三八二线B:IF(切换开关=0,REFDATE(A61B,DATE),DRAWNULL),DOTLINE,COLORFF8800;
五十线B:IF(切换开关=0,REFDATE(A50B,DATE),DRAWNULL),DOTLINE,COLORFF8800;
六一八线B:IF(切换开关=0,REFDATE(A38B,DATE),DRAWNULL),DOTLINE,COLORFF8800;
八零九线B:IF(切换开关=0,REFDATE(A19B,DATE),DRAWNULL),DOTLINE,COLORFF8800;
最低线:REFDATE(LL,DATE),CIRCLEDOT,COLORGREEN;
A80C:=IF(切换开关=1,80.9,19.1);
A61C:=IF(切换开关=1,61.8,38.2);
A50C:=IF(切换开关=1,50,50);
A38C:=IF(切换开关=1,38.2,61.8);
A19C:=IF(切换开关=1,19.1,80.9);
A80D:=IF(切换开关=1,A80A,A80B);
A61D:=IF(切换开关=1,A61A,A61B);
A50D:=IF(切换开关=1,A50A,A50B);
A38D:=IF(切换开关=1,A38A,A38B);
A19D:=IF(切换开关=1,A19A,A19B);
DRAWTEXT(CURRBARSCOUNT=12,最高线,VARCAT('最高=',CON2STR(HH,2))),COLORYELLOW;
DRAWTEXT(CURRBARSCOUNT=12,八零九线A,VARCAT(' %=',CON2STR(A80D,2))),COLORWHITE;
DRAWTEXT(CURRBARSCOUNT=12,八零九线A,CON2STR(A80C,2)),COLORWHITE;
DRAWTEXT(CURRBARSCOUNT=12,六一八线A,VARCAT(' %=',CON2STR(A61D,2))),COLORWHITE;
DRAWTEXT(CURRBARSCOUNT=12,六一八线A,CON2STR(A61C,2)),COLORWHITE;
DRAWTEXT(CURRBARSCOUNT=12,五十线A,VARCAT(' %=',CON2STR(A50D,2))),COLORFF8800;
DRAWTEXT(CURRBARSCOUNT=12,五十线A,CON2STR(A50C,2)),COLORFF8800;
DRAWTEXT(CURRBARSCOUNT=12,三八二线A,VARCAT(' %=',CON2STR(A38D,2))),COLORWHITE;
DRAWTEXT(CURRBARSCOUNT=12,三八二线A,CON2STR(A38C,2)),COLORWHITE;
DRAWTEXT(CURRBARSCOUNT=12,一九一线A,VARCAT(' %=',CON2STR(A19D,2))),COLORWHITE;
DRAWTEXT(CURRBARSCOUNT=12,一九一线A,CON2STR(A19C,2)),COLORWHITE;
DRAWTEXT(CURRBARSCOUNT=12,一九一线B,VARCAT(' %=',CON2STR(A80D,2))),COLORYELLOW;
DRAWTEXT(CURRBARSCOUNT=12,一九一线B,CON2STR(A80C,2)),COLORYELLOW;
DRAWTEXT(CURRBARSCOUNT=12,三八二线B,VARCAT(' %=',CON2STR(A61D,2))),COLORYELLOW;
DRAWTEXT(CURRBARSCOUNT=12,三八二线B,CON2STR(A61C,2)),COLORYELLOW;
DRAWTEXT(CURRBARSCOUNT=12,五十线B,VARCAT(' %=',CON2STR(A50D,2))),COLORLIRED;
DRAWTEXT(CURRBARSCOUNT=12,五十线B,CON2STR(A50C,2)),COLORLIRED;
DRAWTEXT(CURRBARSCOUNT=12,六一八线B,VARCAT(' %=',CON2STR(A38D,2))),COLORYELLOW;
DRAWTEXT(CURRBARSCOUNT=12,六一八线B,CON2STR(A38C,2)),COLORYELLOW;
DRAWTEXT(CURRBARSCOUNT=12,八零九线B,VARCAT(' %=',CON2STR(A19D,2))),COLORYELLOW;
DRAWTEXT(CURRBARSCOUNT=12,八零九线B,CON2STR(A19C,2)),COLORYELLOW;
DRAWTEXT(CURRBARSCOUNT=12,最低线,VARCAT('最低=',CON2STR(LL,2))),DRAWABOVE,COLORGREEN;
A18:=区间周期;
DRAWTEXT_FIX(ISLASTBAR,0.01,0.01,0,'说明:【区间周期】参数是选定区间到今天的周期数,它可以通过移动鼠标到相应的K线,在标题栏“K线根数”显示出区间的根数值;【切换开关】为缺省"1"时,分割线由低点向高点递增,"0"时由高点向低点递减。'),COLORYELLOW;
DRAWTEXT_FIX(ISLASTBAR,0.01,0.05,0,'回调幅度在0.618内属强势调整后市方向不会改变'),COLORMAGENTA;
DRAWTEXT_FIX(ISLASTBAR,0.01,0.08,0,'回调超过0.618后市方向可能逆转'),COLORLIBLUE;
DRAWTEXT_FIX(ISLASTBAR,0.01,0.11,0,'反弹高度在0.382内属反弹行情后市方向不会改变'),COLORMAGENTA;
DRAWTEXT_FIX(ISLASTBAR,0.01,0.14,0,'反弹超过0.382后市方向可能逆转'),COLORLIBLUE;
DRAWTEXT_FIX(ISLASTBAR,0.85,0.01,0,VARCAT('目前周期参数为',VAR2STR(A18,0))),COLORMAGENTA;

未来函数检测结果
区间周期赋值:60
切换开关赋值:1
AR1赋值:收盘价的有效数据周期数
AR2赋值:AR1的最后一日取值设为常数
AR3赋值:AR2-AR1
输出K线根数:AR3+1,NODRAW,画黄色
N赋值:区间周期
HH赋值:N日内最高价的最高值
LL赋值:N日内最低价的最低值
BH赋值:N日内最高价距今天数
BL赋值:N日内最低价距今天数
BH2赋值:BH的最后一日取值设为常数
BL2赋值:BL的最后一日取值设为常数
高点K赋值:到最后交易的周期=BH2+1
低点K赋值:到最后交易的周期=BL2+1
当满足条件高点K时,在开盘价和收盘价位置之间画柱状线,宽度为3,0不为0则画空心柱.,COLORFF00FF,线宽为2
当满足条件低点K时,在开盘价和收盘价位置之间画柱状线,宽度为3,0不为0则画空心柱.,画黄色,线宽为2
当满足条件高点K时,在最高价*1.004位置画35号图标
当满足条件低点K时,在最低价*0.996位置画34号图标
当满足条件高点K时,在最高价*1.012位置书写文字,画红色
当满足条件低点K时,在最低价*0.988位置书写文字,画绿色
HL赋值:HH-LL
A80A赋值:如果切换开关=1,返回0.809*HL+LL,否则返回无效数
A61A赋值:如果切换开关=1,返回0.618*HL+LL,否则返回无效数
A50A赋值:如果切换开关=1,返回0.500*HL+LL,否则返回无效数
A38A赋值:如果切换开关=1,返回0.382*HL+LL,否则返回无效数
A19A赋值:如果切换开关=1,返回0.191*HL+LL,否则返回无效数
A80B赋值:如果切换开关=0,返回HH-0.191*HL,否则返回无效数
A61B赋值:如果切换开关=0,返回HH-0.382*HL,否则返回无效数
A50B赋值:如果切换开关=0,返回HH-0.500*HL,否则返回无效数
A38B赋值:如果切换开关=0,返回HH-0.618*HL,否则返回无效数
A19B赋值:如果切换开关=0,返回HH-0.809*HL,否则返回无效数
输出最高线:日期日HH,CIRCLEDOT,画红色
输出 八零九线A:如果切换开关=1,返回日期日A80A,否则返回无效数,DOTLINE,画淡红色
输出 六一八线A:如果切换开关=1,返回日期日A61A,否则返回无效数,DOTLINE,画淡红色
输出 五十线A:如果切换开关=1,返回日期日A50A,否则返回无效数,DOTLINE,画淡红色
输出 三八二线A:如果切换开关=1,返回日期日A38A,否则返回无效数,DOTLINE,画淡红色
输出一九一线A:如果切换开关=1,返回日期日A19A,否则返回无效数,DOTLINE,画淡红色
输出一九一线B:如果切换开关=0,返回日期日A80B,否则返回无效数,DOTLINE,COLORFF8800
输出 三八二线B:如果切换开关=0,返回日期日A61B,否则返回无效数,DOTLINE,COLORFF8800
输出 五十线B:如果切换开关=0,返回日期日A50B,否则返回无效数,DOTLINE,COLORFF8800
输出 六一八线B:如果切换开关=0,返回日期日A38B,否则返回无效数,DOTLINE,COLORFF8800
输出 八零九线B:如果切换开关=0,返回日期日A19B,否则返回无效数,DOTLINE,COLORFF8800
输出 最低线:日期日LL,CIRCLEDOT,画绿色
A80C赋值:如果切换开关=1,返回80.9,否则返回19.1
A61C赋值:如果切换开关=1,返回61.8,否则返回38.2
A50C赋值:如果切换开关=1,返回50,否则返回50
A38C赋值:如果切换开关=1,返回38.2,否则返回61.8
A19C赋值:如果切换开关=1,返回19.1,否则返回80.9
A80D赋值:如果切换开关=1,返回A80A,否则返回A80B
A61D赋值:如果切换开关=1,返回A61A,否则返回A61B
A50D赋值:如果切换开关=1,返回A50A,否则返回A50B
A38D赋值:如果切换开关=1,返回A38A,否则返回A38B
A19D赋值:如果切换开关=1,返回A19A,否则返回A19B
当满足条件到最后交易的周期=12时,在最高线位置书写文字,画黄色
当满足条件到最后交易的周期=12时,在八零九线A位置书写文字,画白色
当满足条件到最后交易的周期=12时,在八零九线A位置书写文字,画白色
当满足条件到最后交易的周期=12时,在六一八线A位置书写文字,画白色
当满足条件到最后交易的周期=12时,在六一八线A位置书写文字,画白色
当满足条件到最后交易的周期=12时,在五十线A位置书写文字,COLORFF8800
当满足条件到最后交易的周期=12时,在五十线A位置书写文字,COLORFF8800
当满足条件到最后交易的周期=12时,在三八二线A位置书写文字,画白色
当满足条件到最后交易的周期=12时,在三八二线A位置书写文字,画白色
当满足条件到最后交易的周期=12时,在一九一线A位置书写文字,画白色
当满足条件到最后交易的周期=12时,在一九一线A位置书写文字,画白色
当满足条件到最后交易的周期=12时,在一九一线B位置书写文字,画黄色
当满足条件到最后交易的周期=12时,在一九一线B位置书写文字,画黄色
当满足条件到最后交易的周期=12时,在三八二线B位置书写文字,画黄色
当满足条件到最后交易的周期=12时,在三八二线B位置书写文字,画黄色
当满足条件到最后交易的周期=12时,在五十线B位置书写文字,画淡红色
当满足条件到最后交易的周期=12时,在五十线B位置书写文字,画淡红色
当满足条件到最后交易的周期=12时,在六一八线B位置书写文字,画黄色
当满足条件到最后交易的周期=12时,在六一八线B位置书写文字,画黄色
当满足条件到最后交易的周期=12时,在八零九线B位置书写文字,画黄色
当满足条件到最后交易的周期=12时,在八零九线B位置书写文字,画黄色
当满足条件到最后交易的周期=12时,在最低线位置书写文字,显示在位置之上,画绿色
A18赋值:区间周期
当满足条件是否最后一个周期时,在横轴0.01纵轴0.01位置书写文字
【切换开关】为缺省"1"时,分割线由低点向高点递增,"0"时由高点向低点递减。'),画黄色
当满足条件是否最后一个周期时,在横轴0.01纵轴0.05位置书写文字,画洋红色
当满足条件是否最后一个周期时,在横轴0.01纵轴0.08位置书写文字,画淡蓝色
当满足条件是否最后一个周期时,在横轴0.01纵轴0.11位置书写文字,画洋红色
当满足条件是否最后一个周期时,在横轴0.01纵轴0.14位置书写文字,画淡蓝色
当满足条件是否最后一个周期时,在横轴0.85纵轴0.01位置书写文字,画洋红色