金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1422|回复: 1

帮助修改一下为金字塔

[复制链接]

2

主题

3

帖子

3

积分

Rank: 1

等级: 新手上路

注册:
2023-5-12
曾用名:
发表于 2024-3-14 09:41 | 显示全部楼层 |阅读模式
//#MAINCHART
INPUT:
        LineWidth(2,1,5,1), // 格线的粗细
        BaseDate('20130129'), // 第一根红线开始日期
        StartTime(930,900,930,1); // 每天第一根K线开始的时间

#Define PR_GVAR 'v201412281526'
#Define LCNT PR_GVAR+'icnt_g' // 全局变量记录格线数
#Define FIRLINE PR_GVAR+'var0_g' // 全局变量记录是否找到图表上的第一根格线,0:末找到,1:找到
#Define BEFDATE PR_GVAR+'var1_g' // 全局变量记录上一根格线的日期

Variables:
        nColorIndex(0),nLineWidth(1),
        bCon(0),nDateDif(0),nColor,bFirst(0),bNext(0),
        nBy(0),nBm(0),nBd(0);

nBy = STRTONUM(STRLEFT(BaseDate,4));
nBm = STRTONUM(STRMID(BaseDate,5,2));
nBd = STRTONUM(STRRIGHT(BaseDate,2));
//aa:nBy;
//bb:nBm;
//cc:nBd;
// 确定第一根红线
bCon = YEAR > nBy;
bCon = bCon || (YEAR==nBy && MONTH>nBm);
bCon = bCon || (YEAR==nBy && MONTH==nBm && DAY>nBd);
bCon = bCon || (YEAR==nBy && MONTH==nBm && DAY==nBd && TIME >= StartTime*100);
IF !bCon THEN RETURN;
// 初始化
IF YEAR==nBy && MONTH==nBm && DAY==nBd && TIME == StartTime*100 THEN BEGIN
        SETGLOBALVAR(LCNT,0);
        SETGLOBALVAR(FIRLINE,0);
        SETGLOBALVAR(BEFDATE,DATE);
END
// 设置格线粗细
switch LineWidth BEGIN
        CASE 1: nLineWidth = LineThick1;
        CASE 2: nLineWidth = LineThick2;
        CASE 3: nLineWidth = LineThick3;
        CASE 4: nLineWidth = LineThick4;
        CASE 5: nLineWidth = LineThick5;
END
// 画格线
bCon = (TIME == StartTime*100);
nDateDif = DateDiff(GETGLOBALVAR(BEFDATE),DATE);
IF bCon THEN BEGIN
        IF 0 == GETGLOBALVAR(FIRLINE) THEN BEGIN
                // 找到第一根格线的位置
                nColorIndex = 0;
                SETGLOBALVAR(LCNT,0);
                SETGLOBALVAR(FIRLINE,1);
                SETGLOBALVAR(BEFDATE,DATE);
        END ELSE BEGIN
                // 找到其它格线的位置
                nColorIndex = MOD(GETGLOBALVAR(LCNT) + nDateDif,4);               
                SETGLOBALVAR(LCNT,MOD(nColorIndex,4));
                SETGLOBALVAR(BEFDATE,DATE);
        END
END
VERTLINE(bCon && 0 == nColorIndex),nLineWidth,ColorRed;       
VERTLINE(bCon && 1 == nColorIndex),nLineWidth,ColorBlue;       
VERTLINE(bCon && 2 == nColorIndex),nLineWidth,ColorGreen;       
VERTLINE(bCon && 3 == nColorIndex),nLineWidth,ColorMagenta;       

回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-3-14 09:45 | 显示全部楼层
建议能把需求用中文描述出来,光看这个代码的话有很多地方不通用的,不是那么好转换
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-7-31 14:29 , Processed in 0.127091 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表