
等级: 新手上路
- 注册:
- 2025-2-14
- 曾用名:
|

楼主 |
发表于 2025-2-14 13:34
|
显示全部楼层
下面是我现在的代码,求老师帮忙修改
// 定义跨周期变量
VARIABLE: 前日最高价 := 0, 前日最低价 := 0; // 前一日日线最高价、最低价
VARIABLE: 当日收盘价 := 0; // 当日日线收盘价
VARIABLE: 状态颜色 := 0; // 0=默认,1=红,-1=绿
NN1:=BARSLAST(DATE<>REF(DATE,1))+1;
NNC1:=COUNTSIG(BK,NN1)+COUNTSIG(SK,NN1)+COUNTSIG(BPK,NN1)+COUNTSIG(SPK,NN1);//表示当日的开仓次数
DNN:=BARSLAST(DATE<>REF(DATE,1));
DO:=REF(O,DNN),DOT,COLORWHITE;//D开盘价
DG:=REF(HHV(H,NN1),NN1),DOT,COLORMAGENTA;//昨日最高价格
DD:=REF(LLV(L,NN1),NN1),DOT,COLORGREEN;//昨日最低价格
DQS:BARSLAST(C>DG)<BARSLAST(C<DD),COLORWHITE;//收盘突破上日高点 定义日涨势定K
WQS:BARSLAST(CROSS(C,WG))<BARSLAST(CROSSDOWN(C,WD)),COLORYELLOW;//周强势
// 获取前一日日线数据
前日最高价 := DG; // 前一日最高价
前日最低价 := DD; // 前一日最低价
当日收盘价 := CLOSE ; // 当日日线收盘价
// 判断是否为日线收盘时刻(最后一根5分钟K线)
IS_DAY_CLOSE := TIME >= 1455 AND TIME<2100 ;
// 日线收盘时更新状态
IF IS_DAY_CLOSE THEN BEGIN
IF 当日收盘价 > 前日最高价 THEN
状态颜色 := 1; // 日线确认突破,锁定红色
ELSE IF 当日收盘价 < 前日最低价 THEN
状态颜色 := -1; // 日线确认跌破,锁定绿色
END
SCDG:BARSLAST(CROSS(C,DG));//记录上一次上穿前高到现在的周期数
XCDD:BARSLAST(CROSSDOWN(C,DD));//记录上一次下穿前低到现在的周期数
// 盘中实时逻辑(非日线收盘时生效)
IF IS_DAY_CLOSE=0 THEN BEGIN
// 突破前日高点:立即显示红色
IF CLOSE > 前日最高价 THEN
状态颜色 := 1;
// 跌破前日低点:立即显示绿色
ELSE IF CLOSE < 前日最低价 THEN
状态颜色 := -1;
// 假突破修正:恢复前一次有效状态
ELSE IF DQS=1 THEN
状态颜色 := REF(状态颜色, XCDD);
ELSE IF DQS=0 THEN
状态颜色 := REF(状态颜色, XCDD);
END
//状态颜色2:状态颜色;
// 根据状态绘制K线颜色
STICKLINE(DQS=1, O, C, 3, 0), COLORRED; // 红色实体
STICKLINE(DQS=0, O, C, 3, 0), COLORGREEN; // 绿色实体 |
|