金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 338|回复: 9

请帮改写成金字塔公式

[复制链接]

35

主题

86

帖子

86

积分

等级: 免费版

注册:
2021-12-10
曾用名:
发表于 2025-6-24 12:04 | 显示全部楼层 |阅读模式
请帮改写成金字塔公式,谢谢://------------------------------------------------------------------------Params        Integer PeriodDema(7); // DEMA周期    Integer PeriodAtr(14); // ATR周期    Numeric FactorAtr(1.7); // ATR因子Vars    // 核心变量    Series<Numeric> Source;              // 最终计算源数据    Series<Numeric> DemaAtr;             // DEMA调整后的ATR值    Numeric       TrueRange1;           // 真实波动范围    Numeric       Ema01;                // 第一层EMA    Numeric       Ema02;                // 第二层EMA    Numeric       DemaOut;             // DEMA输出    Numeric       TrueRangeUpper;      // 波动上轨    Numeric       TrueRangeLower;      // 波动下轨    Series<Numeric> MAOut;               // 移动平均输出    Bool          DemaAtrLong(False);  // 多头信号    Bool          DemaAtrShort(False); // 空头信号
Defs//此处添加公式函数
Events//此处实现事件函数
//初始化事件函数,策略运行期间,首先运行且只有一次        OnInit()        {
        }

//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组        OnBar(ArrayRef<Integer> indexs)        {// DEMA计算(双指数移动平均)                Source=Close;        Ema01 = XAverage(Source, PeriodDema);        Ema02 = XAverage(Ema01, PeriodDema);        DemaOut = 2 * Ema01 - Ema02;        // ATR计算(基于真实波幅)[1,3](@ref)        TrueRange1 = AvgTrueRange(PeriodAtr);
        // DEMA调整通道计算        TrueRangeUpper = DemaOut + TrueRange1 * FactorAtr;        TrueRangeLower = DemaOut - TrueRange1 * FactorAtr;        // 初始化DEMA ATR序列       if (CurrentBar == 0)        DemaAtr = DemaOut;       else      {       // DemaAtr = DemaAtr[1];  //源码由 公众号狮子量化lion 提供
        // 通道边界约束逻辑        if (TrueRangeLower > DemaAtr)             DemaAtr = TrueRangeLower;        else if (TrueRangeUpper < DemaAtr)            DemaAtr = TrueRangeUpper;       }
       If(DemaAtr > DemaAtr[1]) {PlotAuto("趋势线",DemaAtr,DemaAtr,Red, Enum_Line,Enum_Solid,Enum_2Pix);}            If(DemaAtr < DemaAtr[1]) {PlotAuto("趋势线",DemaAtr,DemaAtr,Green, Enum_Line,Enum_Solid,Enum_2Pix);}         }

//------------------------------------------------------------------------
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-6-24 12:05 | 显示全部楼层
请用中文描述策略需求
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

35

主题

86

帖子

86

积分

等级: 免费版

注册:
2021-12-10
曾用名:
 楼主| 发表于 2025-6-24 13:45 | 显示全部楼层
直接改成公式,如图简单,红色线开端开多,绿色端平多开空即可,并显示多空线

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-6-24 13:47 | 显示全部楼层
你上面公式没法直接转金字塔的
还请给出具体描述,或者你有金字塔内直接指标的话也可以提供
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

35

主题

86

帖子

86

积分

等级: 免费版

注册:
2021-12-10
曾用名:
 楼主| 发表于 2025-6-24 13:50 | 显示全部楼层
没有,这是网上找到的tb代码,转成金字塔用就行
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-6-24 13:51 | 显示全部楼层
抱歉您如果无法给出中文具体描述的话,这边没办法直接转
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

35

主题

86

帖子

86

积分

等级: 免费版

注册:
2021-12-10
曾用名:
 楼主| 发表于 2025-6-24 13:53 | 显示全部楼层
请参考,豆包转的通达信,也不成功,没你们厉害的:{DEMA Adjusted Average True Range指标 - 通达信最终版} {参数定义} PERIODDEMA:=7; {DEMA周期} PERIODATR:=14; {ATR周期} FACTORATR:=1.7; {ATR因子}
{核心变量计算}
EMA01:=EMA (CLOSE,PERIODDEMA);
EMA02:=EMA (EMA01,PERIODDEMA);
DEMAOUT:=2*EMA01-EMA02; {双指数移动平均计算}
TRUERANGE1:=MA (MAX (MAX (HIGH-LOW,ABS (HIGH-REF (CLOSE,1))),ABS (LOW-REF (CLOSE,1))),PERIODATR);
{通达信 ATR 计算等价于:(最高价 - 最低价、最高价 - 昨收、昨收 - 最低价的最大值) 的 N 日平均}
{通道计算}
TRUERANGEUPPER:=DEMAOUT+TRUERANGE1FACTORATR;
TRUERANGELOWER:=DEMAOUT-TRUERANGE1FACTORATR; {修复变量名拼写错误}
{DEMA ATR 序列计算 - 终极修复版}
DEMAATR:=IF (CURRBARSCOUNT=1,DEMAOUT,
IF (TRUERANGELOWER>REF (DEMAATR,1),TRUERANGELOWER,
IF (TRUERANGEUPPER<REF (DEMAATR,1),TRUERANGEUPPER,REF (DEMAATR,1))));
{趋势线绘制 - 红色上涨 / 绿色下跌}
DRAWLINE (DEMAATR>REF (DEMAATR,1),DEMAATR,DEMAATR>REF (DEMAATR,1),DEMAATR,COLORRED);
DRAWLINE (DEMAATR<REF (DEMAATR,1),DEMAATR,DEMAATR<REF (DEMAATR,1),DEMAATR,COLORGREEN);
{指标线输出}
DEMAOUT,COLORWHITE,LINETHICK1; {DEMA 中轨}
TRUERANGEUPPER,COLORYELLOW,LINETHICK1; {上轨}
TRUERANGELOWER,COLORYELLOW,LINETHICK1; {下轨}
DEMAATR,COLORMAGENTA,LINETHICK2; {动态 ATR 调整线}
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-6-24 13:58 | 显示全部楼层
请自己先理清逻辑,把程序条件描述清楚
不要代码直接一扔让工作人员去理清整个逻辑

程序是您这边自己要花时间去整理的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

8

主题

149

帖子

149

积分

等级: 免费版

注册:
2021-6-6
曾用名:
发表于 2025-6-26 09:42 | 显示全部楼层
//------------------------------------------------------------------------
// 参数定义
Integer PeriodDema(7);           // DEMA周期
Integer PeriodAtr(14);           // ATR周期
Numeric FactorAtr(1.7);          // ATR因子

// 变量定义
Vars
    Series<Numeric> Source;              // 最终计算源数据(收盘价)
    Series<Numeric> DemaAtr;             // DEMA调整后的ATR值
    Numeric TrueRange1;                  // 真实波动范围
    Numeric Ema01;                       // 第一层EMA
    Numeric Ema02;                       // 第二层EMA
    Numeric DemaOut;                     // DEMA输出
    Numeric TrueRangeUpper;              // 波动上轨
    Numeric TrueRangeLower;              // 波动下轨
    Series<Numeric> MAOut;               // 移动平均输出
    Bool DemaAtrLong(False);            // 多头信号
    Bool DemaAtrShort(False);           // 空头信号
End Vars

// 函数定义区域
Defs
    // 此处添加公式函数
End Defs

// 事件处理区域
Events

// 初始化事件函数:策略运行期间仅执行一次
OnInit()
{
}

// Bar更新事件函数:参数 indexs 表示变化的数据源图层ID数组
OnBar(ArrayRef<Integer> indexs)
{
    // DEMA计算(双指数移动平均)
    Source = Close;
    Ema01 = XAverage(Source, PeriodDema);
    Ema02 = XAverage(Ema01, PeriodDema);
    DemaOut = 2 * Ema01 - Ema02;

    // ATR计算(基于真实波幅)
    TrueRange1 = AvgTrueRange(PeriodAtr);

    // DEMA调整通道计算
    TrueRangeUpper = DemaOut + TrueRange1 * FactorAtr;
    TrueRangeLower = DemaOut - TrueRange1 * FactorAtr;

    // 初始化DEMA ATR序列
    if (CurrentBar == 0)
        DemaAtr = DemaOut;
    else
    {
        // 如果当前值不在通道范围内,则进行边界约束
        if (TrueRangeLower > DemaAtr)
            DemaAtr = TrueRangeLower;
        else if (TrueRangeUpper < DemaAtr)
            DemaAtr = TrueRangeUpper;
    }

    // 绘制趋势线(根据DemaAtr方向变化)
    If(DemaAtr > DemaAtr[1])
    {
        PlotAuto("趋势线", DemaAtr, DemaAtr, Red, Enum_Line, Enum_Solid, Enum_2Pix);
    }
    If(DemaAtr < DemaAtr[1])
    {
        PlotAuto("趋势线", DemaAtr, DemaAtr, Green, Enum_Line, Enum_Solid, Enum_2Pix);
    }
}

//------------------------------------------------------------------------
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-6-26 09:43 | 显示全部楼层
请给出文字描述
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-8 20:33 , Processed in 0.129174 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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