金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 482|回复: 2

以下代码在回测时显示LMT为交易控制符,只能在交易系统函数的第三个中使用求更改

[复制链接]

19

主题

52

帖子

52

积分

等级: 免费版

注册:
2024-6-4
曾用名:
发表于 2024-12-26 21:23 | 显示全部楼层 |阅读模式


VARIABLE:A=0;
VARIABLE:止盈止损计数=0;
VARIABLE:上次交易结果=0; // 0 表示初始状态,1 表示止盈,-1 表示止损

// 计算MA10日均线
MA10:MA(CLOSE,10);

// 判断开仓条件
CONDBUY:=MA10<CLOSE; // 10日均线在K线下方,做多
CONDSELL:=MA10>CLOSE; // 10日均线在K线上方,做空

// 平仓逻辑
IF (DYNAINFO(7)-TAVGENTERPRICEEX2(ZH1,PZ1,0)>6*MINDIFF OR TAVGENTERPRICEEX2(ZH1,PZ1,0)-C>6*MINDIFF) THEN BEGIN
    TSELL(1,TBUYHOLDINGEX(ZH1,PZ1,0),MKT,0,ZH1,PZ1);
    止盈止损计数:=止盈止损计数+1; // 记录止盈止损次数
    IF DYNAINFO(7)-TAVGENTERPRICEEX2(ZH1,PZ1,0)>6*MINDIFF THEN 上次交易结果:=1; // 止盈
    ELSE 上次交易结果:=-1; // 止损
END

// 开仓逻辑
IF (CONDBUY OR CONDSELL) THEN BEGIN
    IF TBUYHOLDINGEX(ZH1,PZ1,0)=0 THEN BEGIN // 如果空仓,则开仓
        IF 上次交易结果=1 THEN BEGIN // 如果上次止盈,则买入1手
            TBUY(1,LMT,CLOSE,0,ZH1,PZ1);
        END ELSE IF 上次交易结果=-1 THEN BEGIN // 如果上次止损,则买入2手
            TBUY(2,LMT,CLOSE,0,ZH1,PZ1);
        END ELSE BEGIN // 初始状态,买入1手
            TBUY(1,LMT,CLOSE,0,ZH1,PZ1);
        END;
    END;
END

// 加减仓逻辑
IF TBUYHOLDINGEX(ZH1,PZ1,0)>0 THEN BEGIN
    IF 上次交易结果=1 AND TBUYHOLDINGEX(ZH1,PZ1,0)=2 THEN BEGIN // 如果止盈且持仓为2手,则平掉1手
        TSELL(1,TBUYHOLDINGEX(ZH1,PZ1,0),MKT,0,ZH1,PZ1);
    END;
    IF (止盈止损计数 MOD 2) = 0 AND 上次交易结果=-1 THEN BEGIN // 如果止盈止损次数为偶数且上次止损,则平掉所有仓位
        TSELL(TBUYHOLDINGEX(ZH1,PZ1,0),0,MKT,0,ZH1,PZ1);
    END;
END

截图202412262122116379.png
回复

使用道具 举报

38

主题

9989

帖子

9999

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-12-27 09:21 | 显示全部楼层



VARIABLE:A=0;
VARIABLE:止盈止损计数=0;
VARIABLE:上次交易结果=0; // 0 表示初始状态,1 表示止盈,-1 表示止损

// 计算MA10日均线
MA10:MA(CLOSE,10);

// 判断开仓条件
CONDBUY:=MA10<CLOSE; // 10日均线在K线下方,做多
CONDSELL:=MA10>CLOSE; // 10日均线在K线上方,做空

// 平仓逻辑
IF (c-TAVGENTERPRICEEX2(ZH1,PZ1,0)>6*MINDIFF OR TAVGENTERPRICEEX2(ZH1,PZ1,0)-C>6*MINDIFF) THEN BEGIN
    TSELL(1,TBUYHOLDINGEX(ZH1,PZ1,0),MKT,0,0,ZH1,PZ1);
    止盈止损计数:=止盈止损计数+1; // 记录止盈止损次数
    IF c-TAVGENTERPRICEEX2(ZH1,PZ1,0)>6*MINDIFF THEN 上次交易结果:=1; // 止盈
    ELSE 上次交易结果:=-1; // 止损
END

// 开仓逻辑
IF (CONDBUY OR CONDSELL) THEN BEGIN
    IF TBUYHOLDINGEX(ZH1,PZ1,0)=0 THEN BEGIN // 如果空仓,则开仓
        IF 上次交易结果=1 THEN BEGIN // 如果上次止盈,则买入1手
            TBUY(1,1,LMT,CLOSE,0,ZH1,PZ1);
        END ELSE IF 上次交易结果=-1 THEN BEGIN // 如果上次止损,则买入2手
            TBUY(1,2,LMT,CLOSE,0,ZH1,PZ1);
        END ELSE BEGIN // 初始状态,买入1手
            TBUY(1,1,LMT,CLOSE,0,ZH1,PZ1);
        END;
    END;
END

// 加减仓逻辑
IF TBUYHOLDINGEX(ZH1,PZ1,0)>0 THEN BEGIN
    IF 上次交易结果=1 AND TBUYHOLDINGEX(ZH1,PZ1,0)=2 THEN BEGIN // 如果止盈且持仓为2手,则平掉1手
        TSELL(1,TBUYHOLDINGEX(ZH1,PZ1,0),MKT,0,ZH1,PZ1);
    END;
    IF (止盈止损计数 MOD 2) = 0 AND 上次交易结果=-1 THEN BEGIN // 如果止盈止损次数为偶数且上次止损,则平掉所有仓位
        TSELL(TBUYHOLDINGEX(ZH1,PZ1,0)>0,TBUYHOLDINGEX(ZH1,PZ1,0),MKT,0,ZH1,PZ1);
    END;
END
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

38

主题

9989

帖子

9999

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-12-27 09:22 | 显示全部楼层
你这里问题都是开平仓语句里面参数都没写对,他里面都是条件、手数、报单价格组成的
不能乱填的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-21 08:53 , Processed in 0.124455 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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