金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 176|回复: 3

仓位控制

[复制链接]

76

主题

159

帖子

159

积分

Rank: 4

等级: 专业版

注册:
2025-5-24
曾用名:
发表于 2025-7-31 08:21 | 显示全部楼层 |阅读模式
全局资金管理模块(全局公式)
plaintext
// 金字塔专业版全局资金管理系统
// ===== 核心函数定义 =====
// 获取指定策略的持仓市值(使用TACCOUNT(4)函数)
Function GetStrategyPositionValue(StrategyName);
    Return TACCOUNT(4, StrategyName);
End Function;


// 获取指定策略的持仓股票数量(遍历所有持仓)
Function GetStrategyStockCount(StrategyName);
    Var Count = 0;
    For i = 1 To TACCOUNT(0) Do;  // TACCOUNT(0)返回持仓总数
        If (TACCOUNT(3, i) = StrategyName) Then;  // TACCOUNT(3,i)返回第i个持仓的策略名
            Count = Count + 1;
        End If;
    End For;
    Return Count;
End Function;


// ===== 全局变量定义 =====
// 账户总资金(元)
Var Global AccountCapital = 500000;;


// 各策略资金上限(元)
Var Global StrategyACapital = 80000;;
Var Global StrategyBCapital = 100000;;
Var Global StrategyCCapital = 120000;;


// 各策略单股最大持仓限制(元)
Var Global MaxStockPositionA = 8000;;
Var Global MaxStockPositionB = 10000;;
Var Global MaxStockPositionC = 12000;;


// 全局交易锁机制(防止并发交易导致资金计算错误)
Var Global TradeLock = False;;
Var Global LockTimeout = 1000;;  // 锁超时时间(毫秒)
策略 A 交易控制模块(策略 A 公式)
plaintext
// 策略A资金管理函数
Function StrategyAAccountManager();
    // 计算策略A当前持仓市值
    Var PositionValue = GetStrategyPositionValue("StrategyA");;
    // 可用资金 = 策略总资金 - 当前持仓市值
    Var AvailableCapital = StrategyACapital - PositionValue;;
    // 返回可用资金和单股最大持仓的较小值,防止单股过度买入
    Return Min(AvailableCapital, MaxStockPositionA);;
End Function;


// 策略A买入控制逻辑
If (BuySignalA And Not TradeLock) Then ;  // 当买入信号触发且无交易锁时
    // 获取交易锁,防止其他策略同时交易
    TradeLock = True;;
    Sleep(LockTimeout);;  // 等待锁生效
   
    // 计算实际可买入金额
    Var BuyAmount = StrategyAAccountManager();;
   
    // 执行买入操作
    If (BuyAmount > 0) Then;
        Buy BuyAmount / Close * 100, StockPoolA, "StrategyA";  // 买入对应金额的股票
    End If;
   
    // 释放交易锁
    TradeLock = False;;
End If;


// 策略A卖出控制逻辑
If (SellSignalA) Then;  // 当卖出信号触发时
    Sell All, StockPoolA, "StrategyA";  // 卖出所有持仓
End If;
策略 B 交易控制模块(策略 B 公式)
plaintext
// 策略B资金管理函数
Function StrategyBAccountManager();
    // 计算策略B当前持仓市值
    Var PositionValue = GetStrategyPositionValue("StrategyB");;
    // 可用资金 = 策略总资金 - 当前持仓市值
    Var AvailableCapital = StrategyBCapital - PositionValue;;
    // 返回可用资金和单股最大持仓的较小值
    Return Min(AvailableCapital, MaxStockPositionB);;
End Function;


// 策略B买入控制逻辑
If (BuySignalB And Not TradeLock) Then;
    TradeLock = True;;
    Sleep(LockTimeout);;
   
    Var BuyAmount = StrategyBAccountManager();;
   
    If (BuyAmount > 0) Then;
        Buy BuyAmount / Close * 100, StockPoolB, "StrategyB";;
    End If;
   
    TradeLock = False;;
End If;


// 策略B卖出控制逻辑
If (SellSignalB) Then;
    Sell All, StockPoolB, "StrategyB";;
End If;


//策略 C 交易控制模块(策略 C 公式)
plaintext
// 策略C资金管理函数
Function StrategyCAccountManager();
    // 计算策略C当前持仓市值
    Var PositionValue = GetStrategyPositionValue("StrategyC");
    // 可用资金 = 策略总资金 - 当前持仓市值
    Var AvailableCapital = StrategyCCapital - PositionValue;
    // 返回可用资金和单股最大持仓的较小值
    Return Min(AvailableCapital, MaxStockPositionC);;
End Function;


// 策略C买入控制逻辑
If (BuySignalC And Not TradeLock) Then;
    TradeLock = True;
    Sleep(LockTimeout);
   
    Var BuyAmount = StrategyCAccountManager();
   
    If (BuyAmount > 0) Then;
        Buy BuyAmount / Close * 100, StockPoolC, "StrategyC";;
    End If;
   
    TradeLock = False;;
End If;


// 策略C卖出控制逻辑
If (SellSignalC) Then;
    Sell All, StockPoolC, "StrategyC";;
End If;
以上公式是仓位控制,但金字塔就是通不过,请老师帮优化下。并写明优化的地方,以便向老师学习,谢谢






补充内容 (2025-7-31 08:25):
系统提示语句未尾缺少分号
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-7-31 08:55 | 显示全部楼层
请给出具体中午描述,ai出来的不能直接用d额,都是错误连篇的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

76

主题

159

帖子

159

积分

Rank: 4

等级: 专业版

注册:
2025-5-24
曾用名:
 楼主| 发表于 2025-7-31 10:36 | 显示全部楼层
技术008 发表于 2025-7-31 08:55
请给出具体中午描述,ai出来的不能直接用d额,都是错误连篇的

可以帮改一下吗,我的目的就是要用一个账户,控制三个策略,把这个策略给修改一下,或给定一个,好吗?
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-7-31 10:44 | 显示全部楼层
必须提供中文策略描述才行,直接代码翻译是不行的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-18 20:32 , Processed in 0.094919 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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