金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 20|回复: 1

开仓平仓写法

[复制链接]

12

主题

19

帖子

19

积分

Rank: 1

等级: 新手上路

注册:
2025-7-26
曾用名:
发表于 2025-9-17 17:12 | 显示全部楼层 |阅读模式
老师,帮忙写一下如下开平仓,程序加载在5分钟周期上。

开仓:A>30 买开  B>30 卖开  如果同根K线上A和B都满足条件那么取大的那个值执行开仓。

平仓:如果持有多单,那么满足B>30平多开空;如果持有空单,那么满足A>30平空开多。

每根K线只要满足条件都要执行开平仓指令。

如果前面有持仓,在每段最后一根K线(就是2300,1130,1500这三根K线)全部平仓。
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-9-18 09:01 | 显示全部楼层
// 参数设置
INPUT:A_THRESHOLD(30,1,100,1);  // A指标阈值
INPUT:B_THRESHOLD(30,1,100,1);  // B指标阈值

// 判断是否为收盘K线(2300、1130、1500)
IS_CLOSE_K := TIME = 230000 OR TIME = 113000 OR TIME = 150000;

// 开仓信号
BUY_SIGNAL := A > A_THRESHOLD;
SELL_SIGNAL := B > B_THRESHOLD;

// 同根K线同时满足时的处理
IF BUY_SIGNAL AND SELL_SIGNAL THEN BEGIN
    IF A > B THEN BEGIN
        BUY_SIGNAL := 1;
        SELL_SIGNAL := 0;
    END ELSE BEGIN
        BUY_SIGNAL := 0;
        SELL_SIGNAL := 1;
    END;
END;

// 交易执行逻辑
// 强制平仓
IF IS_CLOSE_K AND HOLDING > 0 THEN BEGIN
    SELL(1, HOLDING, MARKET);
END;
IF IS_CLOSE_K AND HOLDING < 0 THEN BEGIN
    SELLSHORT(1, HOLDING, MARKET);
END;

// 正常开平仓逻辑
IF HOLDING = 0 THEN BEGIN
    // 无持仓时开仓
    IF BUY_SIGNAL THEN BEGIN
        BUY(1, 1, MARKET);
    END;
    IF SELL_SIGNAL THEN BEGIN
        BUYSHORT(1, 1, MARKET);
    END;
END ELSE IF HOLDING > 0 THEN BEGIN
    // 持有多单时平多开空
    IF SELL_SIGNAL THEN BEGIN
        SELL(1, HOLDING, MARKET);
        BUYSHORT(1, 1, MARKET);
    END;
END ELSE IF HOLDING < 0 THEN BEGIN
    // 持有空单时平空开多
    IF BUY_SIGNAL THEN BEGIN
        SELLSHORT(1, HOLDING, MARKET);
        BUY(1, 1, MARKET);
    END;
END;

金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-18 19:10 , Processed in 0.109728 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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