金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 28|回复: 3

自编策略提示函数未定义

[复制链接]

1

主题

2

帖子

2

积分

Rank: 1

等级: 新手上路

注册:
2024-12-24
曾用名:
发表于 2025-7-21 17:01 | 显示全部楼层 |阅读模式
以下是通过deepseek编写的代码,为什么总是提示 函数未定义?

// ===== 全局变量声明(策略开头) =====
VAR:
    emaSlow(0), emaFast(0),       // EMA指标变量[1,6](@ref)
    trendDirection(0),            // 趋势方向
    upperBand(0), lowerBand(0),   // 通道突破上下轨
    exitLine(0), atrValue(0),     // 出场线与波动率
    positionSize(0),              // 动态仓位
    stopLoss(0), takeProfit(0);   // 止损止盈

// ===== 参数定义 =====
INPUT:
    TrendPeriod(50), EntryPeriod(20),
    ExitPeriod(10), ATRPeriod(14),
    RiskPercent(1.0), MaxRisk(3.0),
    TradeHourStart(900), TradeHourEnd(1500);

// ===== 指标计算 =====
// EMA计算(修正函数未定义错误)[4,7](@ref)
emaSlow := EMA(CLOSE, TrendPeriod);    // 使用内置EMA函数
emaFast := EMA(CLOSE, Round(TrendPeriod * 0.6));

// 趋势方向判断
trendDirection := IFF(emaFast > emaSlow, 1,
                   IFF(emaFast < emaSlow, -1, 0));

// 通道突破信号
upperBand := HHV(HIGH, EntryPeriod);
lowerBand := LLV(LOW, EntryPeriod);

// ===== 交易逻辑 =====
IF TIME >= TradeHourStart AND TIME < TradeHourEnd THEN BEGIN
    // 开仓条件(修复赋值语句无效错误)[4](@ref)
    IF CLOSE > REF(upperBand, 1) AND trendDirection > 0 AND HOLDING = 0 THEN BEGIN
        // 动态仓位计算(基于ATR风险控制)[9](@ref)
        positionSize := MinList(
            Floor((AccountEquity * MaxRisk / 100) / (ATR(ATRPeriod) * BigPointValue)),
            MaxPosition(1)
        );
        BUY(positionSize, 1, MARKET);
        stopLoss := ENTERPRICE - ATR(ATRPeriod) * 1.5; // 止损
        takeProfit := ENTERPRICE + ATR(ATRPeriod) * 3; // 止盈
    END

    // 动态出场(跟踪止损)[11](@ref)
    IF HOLDING > 0 THEN BEGIN
        exitLine := LLV(LOW, ExitPeriod);
        IF CLOSE < exitLine THEN SELL(1, HOLDING, MARKET);
    END
END

// ===== 风控模块 =====
// 最大回撤熔断[1](@ref)
IF AccountDrawdown >= MaxRisk THEN BEGIN
    SELL(1, HOLDING, MARKET);
    SELLSHORT(1, ABS(HOLDING), MARKET);
    COMMENT("最大回撤保护触发!");
END

// ===== 可视化 =====
DRAWLINE1(emaSlow, COLORGRAY, "慢速EMA");
DRAWLINE1(upperBand, COLORMAGENTA, "上轨");
DRAWLINE1(stopLoss, COLORRED, "止损线");

回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

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

使用道具 举报

1

主题

2

帖子

2

积分

Rank: 1

等级: 新手上路

注册:
2024-12-24
曾用名:
 楼主| 发表于 2025-7-22 16:51 | 显示全部楼层
技术008 发表于 2025-7-21 17:38
ai出来不能直接用的,请给出策略文字描述

谢谢~

策略使用双重EMA(50周期和30周期)来判断趋势方向。当快速EMA上穿慢速EMA时判定为多头趋势,反之为空头趋势。

入场信号采用通道突破机制:在多头趋势中,当价格突破前20期最高价时做多;在空头趋势中,当价格跌破前20期最低价时做空。

出场设计:
1) 动态跟踪止损:多头时取10期最低价作为止损线,空头时取10期最高价作为止损线;2) 固定止损止盈:基于ATR设置1.5倍ATR止损和3倍ATR止盈;
3) 日终强制平仓:在交易时段结束时平掉所有仓位

风险管理:
1) 基于波动率的仓位控制:根据ATR和账户风险计算头寸大小;
2) 最大回撤熔断:当账户回撤超过设定值(默认3%)时停止交易;
3) 趋势强化机制:当盈利达到2倍ATR时顺势加仓。
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-7-23 09:18 | 显示全部楼层
// 参数设置
FAST_EMA:=30;  // 快速EMA周期
SLOW_EMA:=50;  // 慢速EMA周期
CHANNEL_LEN:=20;  // 通道长度
STOP_LEN:=10;     // 动态止损长度
ATR_LEN:=14;      // ATR计算周期
RISK_PCT:=1;      // 单笔风险百分比(1%)
MAX_DD_PCT:=3;    // 最大回撤熔断百分比(3%)

// 指标计算
EMA_FAST:=EMA(CLOSE,FAST_EMA);  // 快速EMA[^3]
EMA_SLOW:=EMA(CLOSE,SLOW_EMA);  // 慢速EMA[^3]
TR1:=MAX(MAX(HIGH-LOW,ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));  // 真实波幅
ATR:=MA(TR1,ATR_LEN);  // ATR指标[^3]
UPPER_BAND:=REF(HHV(HIGH,CHANNEL_LEN),1);  // 上轨(前20周期最高价)[^16]
LOWER_BAND:=REF(LLV(LOW,CHANNEL_LEN),1);   // 下轨(前20周期最低价)[^16]

// 趋势判断
TREND_UP:=CROSS(EMA_FAST,EMA_SLOW);  // 多头趋势(快线上穿慢线)[^3]
TREND_DOWN:=CROSS(EMA_SLOW,EMA_FAST);  // 空头趋势(慢线上穿快线)[^3]

// 入场信号
LONG_ENTRY:=TREND_UP AND CLOSE>UPPER_BAND;  // 多头入场[^16]
SHORT_ENTRY:=TREND_DOWN AND CLOSE<LOWER_BAND;  // 空头入场[^16]

// 出场信号
TRAILING_STOP_LONG:=LLV(LOW,STOP_LEN);  // 多头动态止损(10周期最低价)[^16]
TRAILING_STOP_SHORT:=HHV(HIGH,STOP_LEN);  // 空头动态止损(10周期最高价)[^16]

FIXED_STOP_LOSS:=1.5*ATR;  // 固定止损(1.5倍ATR)[^3]
FIXED_TAKE_PROFIT:=3*ATR;  // 固定止盈(3倍ATR)[^3]

// 仓位计算(基于波动率)
POS_SIZE:=INTPART((CASH(0)*RISK_PCT/100)/(ATR*MULTIPLIER));  // 计算头寸大小[^5][^13]
POS_SIZE:=MAX(POS_SIZE,1);  // 至少1手

// 趋势强化(盈利达到2倍ATR时加仓)
ADD_POS_COND:=OPENPROFIT>2*ATR*MULTIPLIER*HOLDING;  // 盈利达到2倍ATR[^2]

// 最大回撤熔断
DD_PCT:=MAXDRAWDOWNPCT;  // 当前最大回撤百分比[^3]
IF DD_PCT>=MAX_DD_PCT THEN SETTRADESIGN(0);  // 回撤超限停止交易[^11]

// 交易系统
// 多头交易
BUY(LONG_ENTRY AND HOLDING=0,POS_SIZE,MARKETR);  // 初始开多[^17]
BUY(ADD_POS_COND AND HOLDING>0,POS_SIZE,MARKETR);  // 趋势强化加仓[^17]

// 空头交易
BUYSHORT(SHORT_ENTRY AND HOLDING=0,POS_SIZE,MARKETR);  // 初始开空[^14]
BUYSHORT(ADD_POS_COND AND HOLDING<0,POS_SIZE,MARKETR);  // 趋势强化加仓[^14]

// 多头平仓(动态止损 OR 固定止损止盈 OR 日终平仓)
SELL(HOLDING>0 AND (LOW<=TRAILING_STOP_LONG OR
     (ENTERPRICE-CLOSE)>=FIXED_STOP_LOSS OR
     (CLOSE-ENTERPRICE)>=FIXED_TAKE_PROFIT OR
     TIME>=145900),0,MARKETR);  // 平多条件[^7]

// 空头平仓(动态止损 OR 固定止损止盈 OR 日终平仓)
SELLSHORT(HOLDING<0 AND (HIGH>=TRAILING_STOP_SHORT OR
         (CLOSE-ENTERPRICE)>=FIXED_STOP_LOSS OR
         (ENTERPRICE-CLOSE)>=FIXED_TAKE_PROFIT OR
         TIME>=145900),0,MARKETR);  // 平空条件[^7]
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-23 12:31 , Processed in 0.124921 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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