金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 94|回复: 1

做空的时候老师在第二根K线就平仓,请问是什么原因?如何修改?

[复制链接]

3

主题

10

帖子

10

积分

Rank: 1

等级: 新手上路

注册:
2025-3-12
曾用名:
发表于 2025-5-10 18:52 | 显示全部楼层 |阅读模式
//@version=1
INPUT: MA240周期(240), MA20周期(20), MA60周期(60), 手数(6,1,100,1), 移动止损点数(50);

// 均线系统
MA240:=MA(CLOSE,MA240周期);
MA20:=MA(CLOSE,MA20周期);
MA60:=MA(CLOSE,MA60周期);

// 方向判断模块
多空方向 := IFF(CLOSE >= MA240, 1, -1);  // 1为多头方向,-1为空头方向

// 交易信号模块
金叉条件 := CROSS(MA20, MA60) AND CLOSE >= MA60;
死叉条件 := CROSS(MA60, MA20) AND CLOSE <= MA60;

// 止损模块(使用全局变量记录止损位)
EXTGBDATA('止损位');  // 初始化全局变量

IF HOLDING <> 0 THEN BEGIN
    // 多头仓位处理
    IF HOLDING > 0 THEN BEGIN
        IF (CLOSE - AVGENTERPRICE) >= 移动止损点数*MINDIFF THEN BEGIN
            EXTGBDATASET('止损位', AVGENTERPRICE);  // 移动止损至成本价(保本)
        END ELSE BEGIN
            EXTGBDATASET('止损位', AVGENTERPRICE - 移动止损点数*MINDIFF);  // 初始止损
        END
    END
    // 空头仓位处理(新增部分)
    ELSE BEGIN
        IF (AVGENTERPRICE - CLOSE) >= 移动止损点数*MINDIFF THEN BEGIN
            EXTGBDATASET('止损位', AVGENTERPRICE);  // 移动止损至成本价(保本)
        END ELSE BEGIN
            EXTGBDATASET('止损位', AVGENTERPRICE + 移动止损点数*MINDIFF);  // 初始止损
        END
    END
END

// 主交易系统
IF HOLDING = 0 THEN BEGIN
    // 开多条件(需同时满足方向和多头信号)
    IF 多空方向 = 1 AND 金叉条件 THEN BEGIN
        BUY(1, 手数, MARKET);
        EXTGBDATASET('止损位', CLOSE - 移动止损点数*MINDIFF);  // 设置初始止损
    END

    // 开空条件(需同时满足方向和空头信号)
    IF 多空方向 = -1 AND 死叉条件 THEN BEGIN
        BUYSHORT(1, 手数, MARKET);
        EXTGBDATASET('止损位', CLOSE + 移动止损点数*MINDIFF);  // 设置初始止损
    END
END ELSE BEGIN
    // 平仓条件
    IF (HOLDING > 0 AND (死叉条件 OR CLOSE <= EXTGBDATA('止损位'))) OR
       (HOLDING < 0 AND (金叉条件 OR CLOSE >= EXTGBDATA('止损位'))) THEN BEGIN
        SELL(1, ABS(HOLDING), MARKET);
        SELLSHORT(1, ABS(HOLDING), MARKET);
    END
END

// 仓位管理模块
IF HOLDING > 手数 THEN BEGIN
    SELL(1, HOLDING - 手数, MARKET);  // 强制保持最大持仓
END
IF HOLDING < -手数 THEN BEGIN
    SELLSHORT(1, ABS(HOLDING) - 手数, MARKET);
END

// 状态监控
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
止损价位:EXTGBDATA('止损位'),COLORRED;

纯碱回测提示!.png
回复

使用道具 举报

38

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-5-12 08:46 | 显示全部楼层
不要去使用exgbdata这种全局变量,图表的全局变量就这么写
variable:zs1:=0;


if 满足条件 then zs1:=CLOSE - 移动止损点数*MINDIFF;

aa:zs1;

赋值就用正常:=去赋值,然后使用时候就直接用zs1就行了,然后加载图表你去看下有疑问的地方输出下条件进行分析
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-24 22:23 , Processed in 0.206341 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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