金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 15|回复: 4

求助

[复制链接]

1

主题

2

帖子

2

积分

Rank: 1

等级: 新手上路

注册:
2025-5-21
曾用名:
发表于 2025-5-22 09:00 | 显示全部楼层 |阅读模式
请专家帮忙看看为什么我的策略运行不了,编译显示正常,回测没有数据,也运行不了,
我的量化策略为:1、 选股范围:所有在上交所和深交所上市的可正常交易的股票且上一交易日首次涨停的个股。 2、 买入信号:今天开盘价涨3.5%至9.5%之间的股票,在开盘后半个小时之内股价触及涨停的一瞬间以涨停价买入10万元人民币,若持仓现金不足10万元则不操作。 3、 卖出信号:除了今天买入的股票,其余持仓股票在今天开盘1小时后未涨停的以市价卖出,已经涨停的股票则持仓不动;编写的代码是:

// 系统参数
INPUT:
    BuyAmount(100000,1000,1000000,1000);  // 修正参数格式
INPUT:
    BuyWindow(30,1,60,1);
INPUT:
    SellHour(1,0.5,4,0.5);

VARIABLE:
    upper_price=0,         // 当日涨停价
    pre_upper=0,           // 前一日涨停价
    first_limit=false,     // 是否首次涨停
    can_buy=false,         // 可买入标记
    today_buy=false;       // 当日买入标记

// 基础校验

IF MARKETLABEL !='SZ' AND MARKETLABEL !='SH' THEN EXIT;  // 排除非股票市场品种
IF STRFIND(STKNAME,'ST',1) OR STRFIND(STKNAME,'退',1) THEN EXIT;

// 计算涨停价(修正函数用法)
last_day_c:=CALLSTOCK(STKLABEL, vtCLOSE, 6, -1);
upper_price = round((0.1+1)*round(last_day_c/0.01))/100;//默认按照10% 计算涨停价
pre_upper = REF(upper_price, 1);

// 首次涨停判断(精确算法)
first_limit = BARSLAST(C>=upper_price)=1
             AND SUM(C>=upper_price,20)=1
             AND pre_upper>0
             AND C[1]>=upper_price-0.004;  // 容差处理

// 重置每日状态
IF DATE<>REF(DATE,1) THEN BEGIN
    today_buy = false;
END;

// 买入条件(时间精确转换)
can_buy = first_limit
          AND O>=REF(C,1)*1.035
          AND O<=REF(C,1)*1.095
          AND TIMETOT0(DYNAINFO(207)) < TIMETOT0(93000)+BuyWindow*60  // BuyWindow 转换为秒数
          AND H>=upper_price
          AND TACCOUNT(6)>=BuyAmount
          AND NOT(today_buy);

// 执行买入
IF can_buy THEN BEGIN
    buy_vol:= INTPART(BuyAmount/(upper_price*100));
    IF buy_vol>0 THEN BEGIN
        TBUY(1,buy_vol,LMT,upper_price);
        today_buy = true;
        DEBUGFILE('C:\trade.log','BUY|'&STKLABEL&'|'&NUMTOSTR(upper_price,0)&'|'&NUMTOSTR(buy_vol,0),0);
    END;
END;

// 持仓管理
IF TBUYHOLDINGEX('','',0)>0 THEN BEGIN
    hold_bars: = TENTERBARS(1);  // 使用持仓周期函数
   
    // 非当日仓位处理
    IF hold_bars>0 THEN BEGIN
        // 卖出条件(时间转换优化)
        IF TIMETOT0(DYNAINFO(207)) < TIMETOT0(93000)+SellHour*60 THEN BEGIN
            IF DYNAINFO(7) < upper_price THEN BEGIN
                TSELL(1,0,MKT);
                 DEBUGFILE('C:\trade.log','SELL|'&STKLABEL&'|'&NUMTOSTR(DYNAINFO(7),0),0);
            END;
        END;
    END;
END;

// 风控设置
if REMAININGTIME(CLOSETIME(0))<=30 then TCANCELEX(1,0,'',STKLABEL);// 收盘前撤单

回复

使用道具 举报

38

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-5-23 14:27 | 显示全部楼层
金字塔语法定义变量是用:=
a:=close;
这样定义的

VARIABLE:
    upper_price:=0,         // 当日涨停价
    pre_upper:=0,           // 前一日涨停价
    first_limit:=false,     // 是否首次涨停
    can_buy:=false,         // 可买入标记
    today_buy:=false;       // 当日买入标记


全局变量定义也是用:=

建议一开始不要使用ai编写,自己先要学习基本语法的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

38

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-5-23 14:35 | 显示全部楼层
cond1:callstock('',vtclose,6,-1)>callstock('',vtclose,6,-2)*1.095;
cond2:VALUEWHEN(todaybar=1,open)>callstock('',vtclose,6,-1)*(1+3.5/100) and VALUEWHEN(todaybar=1,open)<callstock('',vtclose,6,-1)*(1+9.5/100);
cond3:time<100000 and close>callstock('',vtclose,6,-1)*1.095;

if cond1 and cond2 and cond3 and tbuyholding(1)=0 then begin
        tbuy(1,100000/close,mkt);
END

if tbuyholding(0)>0 and time>100000 and close<callstock('',vtclose,6,-1)*1.095 then
begin
        tsell(1,tbuyholding(0),mkt);
END




直接通过callstock跨周期调用日系价格,然后做一系列判断就行了,建议用户学习下金字塔语法
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

1

主题

2

帖子

2

积分

Rank: 1

等级: 新手上路

注册:
2025-5-21
曾用名:
 楼主| 发表于 2025-5-23 15:04 | 显示全部楼层
非常感谢,我没有编程基础,能不能辛苦你把修改后可运行的完整策略代码发我
回复

使用道具 举报

38

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-5-23 15:05 | 显示全部楼层
上面就是

这个后期还是需要自己去学习的,工作人员也没办法后期什么策略都给你写,建议自己要学习点的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-24 01:46 , Processed in 0.162526 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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