金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 160|回复: 1

大佬帮忙看一下为什么这编写不能显示运行是不是参数不对不能捕捉

[复制链接]

1

主题

1

帖子

1

积分

Rank: 1

等级: 新手上路

注册:
2025-3-8
曾用名:
发表于 2025-3-8 15:49 | 显示全部楼层 |阅读模式
// 参数定义
VARIABLE:BUY_SIGNAL=0, SELL_SIGNAL=0; // 买卖信号
VARIABLE:STOP_LOSS=0, STOP_PROFIT=0; // 止损和止盈点
VARIABLE:LAST_HIGH=0, LAST_LOW=0; // 前一根K线的最高价和最低价
VARIABLE:ENTRY_PRICE=0; // 进场价格

// 缓存REF的值
VARIABLE:REF_H1=REF(H, 1); // 前一根K线的最高价
VARIABLE:REF_H2=REF(H, 2); // 前两根K线的最高价
VARIABLE:REF_L1=REF(L, 1); // 前一根K线的最低价
VARIABLE:REF_L2=REF(L, 2); // 前两根K线的最低价

// 定义顶分型和底分型
TOP_PATTERN := REF_H2 > REF_H1 AND REF_H1 < H; // 顶分型:中间K线高点低于左右两侧
BOTTOM_PATTERN := REF_L2 < REF_L1 AND REF_L1 > L; // 底分型:中间K线低点高于左右两侧

// 多头进场条件:底分型第三根K线实体最低点买入
IF BOTTOM_PATTERN AND REF(BOTTOM_PATTERN, 1) = 0 THEN BEGIN
    BUY_SIGNAL := 1;
    ENTRY_PRICE := L; // 以底分型第三根K线最低点作为进场价格
    STOP_LOSS := L - 1; // 止损点为底分型最低点减去一个点
    LAST_LOW := REF_L1; // 记录前一根K线的最低点
END;

// 空头进场条件:顶分型第三根K线实体最高点卖出
IF TOP_PATTERN AND REF(TOP_PATTERN, 1) = 0 THEN BEGIN
    SELL_SIGNAL := 1;
    ENTRY_PRICE := H; // 以顶分型第三根K线最高点作为进场价格
    STOP_LOSS := H + 1; // 止损点为顶分型最高点加上一个点
    LAST_HIGH := REF_H1; // 记录前一根K线的最高点
END;

// 多头持仓管理
IF HOLDING > 0 THEN BEGIN
    // 动态止损:以最新K线的前一根K线最低点减去一个点为止损
    STOP_LOSS := MAX(STOP_LOSS, LAST_LOW - 1);

    // 止损条件
    IF C <= STOP_LOSS THEN BEGIN
        多损:SELL(1, 0, MARKET), ORDERQUEUE;
    END;

    // 止盈条件:以当前K线的前一根K线最低点减去一个点为止盈
    STOP_PROFIT := LAST_LOW - 1;
    IF C >= STOP_PROFIT THEN BEGIN
        多赢:SELL(1, 0, MARKET), ORDERQUEUE;
    END;
END;

// 空头持仓管理
IF HOLDING < 0 THEN BEGIN
    // 动态止损:以最新K线的前一根K线最高点加上一个点为止损
    STOP_LOSS := MIN(STOP_LOSS, LAST_HIGH + 1);

    // 止损条件
    IF C >= STOP_LOSS THEN BEGIN
        空损:SELLSHORT(1, 0, MARKET), ORDERQUEUE;
    END;

    // 止盈条件:以当前K线的前一根K线最高点加上一个点为止盈
    STOP_PROFIT := LAST_HIGH + 1;
    IF C <= STOP_PROFIT THEN BEGIN
        空赢:SELLSHORT(1, 0, MARKET), ORDERQUEUE;
    END;
END;

// 开多单
IF HOLDING = 0 AND BUY_SIGNAL = 1 THEN BEGIN
    多开:BUY(1, 1, MARKET), ORDERQUEUE;
    BUY_SIGNAL := 0; // 重置信号
END;

// 开空单
IF HOLDING = 0 AND SELL_SIGNAL = 1 THEN BEGIN
    空开:BUYSHORT(1, 1, MARKET), ORDERQUEUE;
    SELL_SIGNAL := 0; // 重置信号
END;

// 显示当前持仓和资产
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;

回复

使用道具 举报

37

主题

9804

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-3-10 08:39 | 显示全部楼层
因为开仓相关的条件恒不成立。例如
BOTTOM_PATTERN : REF_L2 < REF_L1 AND REF_L1 > L; // 底分型:中间K线低点高于左右两侧
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-12 10:42 , Processed in 0.119979 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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