金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 27|回复: 6

布林系统修改

[复制链接]

9

主题

33

帖子

33

积分

Rank: 1

等级: 新手上路

注册:
2024-8-12
曾用名:
发表于 2025-7-20 17:00 来自手机 | 显示全部楼层 |阅读模式
// ---------- 参数声明 ----------
INPUT:
    M(65, 5, 300, 30),      // 布林中轨周期
    N(1.5, 0.1, 10, 0.1),    // 布林带宽倍数
    D(13, 1, 100, 1),        // 止损追踪周期
    RiskPerTrade(0.01, 0.005, 0.05, 0.001), // 单笔风险比例
    ContractSize(300, 1, 1000, 1); // 合约乘数(股指300元/点)

// ---------- 全局变量声明 ----------
VARS:
    Position(0),               // 持仓方向:0空仓,1多头,-1空头
    TradedThisBar(0),          // 本K线已交易标记
    MID(0), UPPER(0), LOWER(0),// 布林通道
    HC30(0), LC30(0),          // 30周期高低点
    ATR(0),                     // 波动率
    HighestEntry(0), LowestEntry(0), // 入场价
    StopLossLong(0), StopLossShort(0); // 动态止损价

// ---------- 初始化 ----------
IF BARPOS = 1 THEN BEGIN
    Position := 0;
    TradedThisBar := 0;
END

// ---------- 指标计算(避免未来函数)----------
MID := REF(MA(CLOSE, M), 1);  
UPPER := MID + N * REF(STD(CLOSE, M), 1);
LOWER := MID - N * REF(STD(CLOSE, M), 1);
HC30 := REF(HHV(C, 30), 1);  
LC30 := REF(LLV(C, 30), 1);
ATR := MA(TR, 20);  // 波动率基准

// ---------- 动态仓位计算 ----------
Capital := TACCOUNT(19);  // 可用资金
UnitSize := INTPART((RiskPerTrade * Capital) / (ATR * ContractSize));
UnitSize := MAX(1, UnitSize);  // 至少1手

// ---------- 信号生成(本K线未交易时执行)---------
IF TradedThisBar = 0 THEN BEGIN
    // 多空突破信号(加入成交量过滤)
    VolFilter := VOL > MA(VOL, 20) * 1.5;
    开多信号 := VolFilter AND C > HC30 AND CROSS(H, UPPER);
    开空信号 := VolFilter AND C < LC30 AND CROSS(LOWER, L);
   
    // 动态止损价(基于持仓最高/低价)
    IF Position = 1 THEN StopLossLong := HIGHEST(H, D) - 1.5 * ATR;
    IF Position = -1 THEN StopLossShort := LOWEST(L, D) + 1.5 * ATR;
   
    // 平仓信号(止损触发)
    平多信号 := LOW <= StopLossLong;
    平空信号 := HIGH >= StopLossShort;
   
    // ===== 指令执行 =====
    // 1. 先处理平仓
    IF 平多信号 AND Position = 1 THEN BEGIN
        TSELL(1, 0, LMT, StopLossLong - MINDIFF*2); // 滑点补偿
        Position := 0;
        TradedThisBar := 1;
    END
    ELSE IF 平空信号 AND Position = -1 THEN BEGIN
        TSELLSHORT(1, 0, LMT, StopLossShort + MINDIFF*2);
        Position := 0;
        TradedThisBar := 1;
    END
   
    // 2. 再处理开仓(平仓后若未交易则开仓)
    IF TradedThisBar = 0 THEN BEGIN
        IF 开多信号 AND Position <> 1 THEN BEGIN
            EntryPrice := MAX(O, UPPER) + MINDIFF*2; // 突破价+滑点
            TBUY(1, UnitSize, LMT, EntryPrice);
            Position := 1;
            HighestEntry := EntryPrice;  // 记录入场价
            TradedThisBar := 1;
        END
        ELSE IF 开空信号 AND Position <> -1 THEN BEGIN
            EntryPrice := MIN(O, LOWER) - MINDIFF*2;
            TBUYSHORT(1, UnitSize, LMT, EntryPrice);
            Position := -1;
            LowestEntry := EntryPrice;
            TradedThisBar := 1;
        END
    END
END

// ---------- 可视化模块 ----------
DRAWGBK(COLORRGB(18, 23, 30)); // 深色背景
// 绘制布林通道
DRAWSL(UPPER, COLORCYAN, 1);
DRAWSL(MID, COLORGRAY, 1);
DRAWSL(LOWER, COLORMAGENTA, 1);
// 绘制动态止损线
IF Position = 1 THEN DRAWSL(StopLossLong, COLORRED, 1, DOT);
IF Position = -1 THEN DRAWSL(StopLossShort, COLORRED, 1, DOT);
// 持仓状态面板
DRAWTEXTEX(1, 0, 0, '持仓: ' + IFELSE(Position=1, '多', IFELSE(Position=-1, '空', '空仓')), COLORYELLOW);
DRAWTEXTEX(1, 0, 20, 'ATR: ' + NUMTOSTR(ATR, 2), COLORGREEN);

// ---------- 调试日志 ----------
DEBUGFILE('C:\Bollinger.log', 'Time:%.0f Pos=%d Entry=%.2f Stop=%.2f', DATE, Position,
          IF(Position=1, HighestEntry, LowestEntry),
          IF(Position=1, StopLossLong, StopLossShort));

老师这个是用AI修改的布林系统,加载到图表程序化,不能运行,不会修改,请老师修改下,另外这个代码加载这个调试日志是干啥的
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-7-21 09:01 | 显示全部楼层
这个是后台程序化,另外ai出来代码很多时候需要自己在最修改的
如果你一点都不懂代码编写,建议不要使用ai
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

9

主题

33

帖子

33

积分

Rank: 1

等级: 新手上路

注册:
2024-8-12
曾用名:
 楼主| 发表于 2025-7-21 10:32 来自手机 | 显示全部楼层
能否给修改成金字塔能运行的代码吗
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-7-21 10:47 | 显示全部楼层
请给出具体中文描述的策略需求
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

9

主题

33

帖子

33

积分

Rank: 1

等级: 新手上路

注册:
2024-8-12
曾用名:
 楼主| 发表于 2025-7-21 11:04 来自手机 | 显示全部楼层
这个系统,结构不动,修改后能在金字塔运行,这个代码比系统自带的系统多了一层交易量过滤
回复

使用道具 举报

9

主题

33

帖子

33

积分

Rank: 1

等级: 新手上路

注册:
2024-8-12
曾用名:
 楼主| 发表于 2025-7-21 11:21 来自手机 | 显示全部楼层
哪里能系统学学金字塔的编程,我学学
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-7-21 13:11 | 显示全部楼层
亲,欢迎您加入“金字塔程序化”大家庭。
想从最简单的开始学做量化吗?推荐您先去官网下载软件https://www.weistock.com/load.html,按照视频教程or帮助文档,先熟悉下软件哦
(1)汇总视频
量化直播回看路径:http://shangzhibo.tv/w/page/isMs1zIvl  
金字塔培训视频:https://shangzhibo.tv/w/catalog/1630
澎博云课堂:http://shangzhibo.tv/w/page/d9aFQ2Jw5#5

(2)单个精品
软件基础使用:https://pbykt.pobo.net.cn/watch/10992155
图表程序化视频:https://pbykt.pobo.net.cn/watch/10993074
后台程序化视频:http://pbykt.pobo.net.cn/watch/11029846
图表转后台视频:https://pbykt.pobo.net.cn/watch/11380330
风险管理视频:https://pbykt.pobo.net.cn/watch/11291285
多周期策略视频:https://pbykt.pobo.net.cn/watch/11231811
股票量化视频:https://pbykt.pobo.net.cn/watch/11040124
软件使用视频:https://www.weistock.com/univercity_video.html

(3)帮助文档:https://www.weistock.com/docs/HE ... %E5%AE%89%E8%A3%85/
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-23 01:13 , Processed in 0.186474 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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