金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: YQ1314

请帮忙写出代码

[复制链接]

1

主题

19

帖子

19

积分

Rank: 1

等级: 新手上路

注册:
2024-11-13
曾用名:
 楼主| 发表于 2025-9-29 14:46 | 显示全部楼层
技术008 发表于 2025-9-29 14:38
你具体是怎么认为错呢,是开仓错还是平仓错

最好自己能输出条件坐下分析把,这个和之前的都是一样的,只 ...

是平仓错的,老师
回复

使用道具 举报

1

主题

19

帖子

19

积分

Rank: 1

等级: 新手上路

注册:
2024-11-13
曾用名:
 楼主| 发表于 2025-9-29 14:47 | 显示全部楼层
YQ1314 发表于 2025-9-29 14:10
老师您好,我想把初始止损改成按照开多的逻辑,然后把第一阶段浮盈一倍ATR后去掉

老师麻烦您把做空的代码帮忙写一下,我自己慢慢学习研究,谢谢
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-9-29 14:48 | 显示全部楼层
做空不就是24楼这里的,价格小于均线然后-atr,只是这里有一个死叉到金叉过程。开多里平仓这里没有把这个过程放进来
直接就用一个价格比较和diff小于0作为平仓条件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

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

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-9-29 14:56 | 显示全部楼层
看下止损价格,看平仓是不是这个止损价格触发的




{ 多头策略:K线收盘价大于均线且MACD快线高于零轴时开多
  止损规则:
  1. 初始止损:1倍ATR
  2. 浮盈1倍ATR后:止损移到保本点
  3. 浮盈3倍ATR后:2倍ATR跟踪止损
  4. 浮盈5倍ATR后:3倍ATR跟踪止损
}
   
// 参数设置
INPUT:MA_PERIOD(20,1,100,1);  // 均线周期
INPUT:ATR_PERIOD(14,1,100,1); // ATR周期
INPUT:LOTS(1,1,10,1);         // 开仓手数
   
// 指标计算
MA_LINE : MA(CLOSE,MA_PERIOD);
DIFF := EMA(CLOSE,12) - EMA(CLOSE,26);  // MACD快线
DEA := EMA(DIFF,9);
MACD := (DIFF-DEA)*2;
ATR_VALUE := MA(TR,ATR_PERIOD);  // ATR值
   
  
   
// 全局变量记录止损位
VARIABLE:STOP_LOSS_PRICE := 0;
VARIABLE:MAX_PROFIT := 0;  // 记录最大浮动盈利(ATR倍数)
  
// 全局变量记录DIFF状态
VARIABLE:DIFF_CROSS_FLAG := 0;  // 0:初始状态 1:已小于0
  
// 更新DIFF状态标志
IF DIFF < 0 THEN DIFF_CROSS_FLAG := 1;  // 记录DIFF已小于0
// 开仓条件
// K线脱离均线(收盘价大于均线+1倍ATR)且MACD快线高于零轴
BUY_COND := CLOSE > MA_LINE + ATR_VALUE AND DIFF > 0 AND DIFF_CROSS_FLAG = 1;
  
// 开多仓
IF BUY_COND AND HOLDING = 0 THEN BEGIN
    BUY(1, LOTS, MARKET);
    STOP_LOSS_PRICE := ENTERPRICE - ATR_VALUE;  // 初始止损位
    MAX_PROFIT := 0;
END;
   
if CLOSE < MA_LINE - ATR_VALUE AND DIFF < 0 then  
begin
    SELL(1, HOLDING, MARKET);
        DIFF_CROSS_FLAG := 0;
    end
   


止损价格:STOP_LOSS_PRICE;
// 移动止损逻辑
IF HOLDING > 0 THEN BEGIN
    // 计算当前浮动盈利(ATR倍数)
    CURRENT_PROFIT := (CLOSE - ENTERPRICE) / ATR_VALUE;
      
    // 更新最大浮动盈利
    IF CURRENT_PROFIT > MAX_PROFIT THEN
        MAX_PROFIT := CURRENT_PROFIT;
      
    // 第一阶段:浮盈1倍ATR后,止损移到保本点
    IF MAX_PROFIT >= 1 AND STOP_LOSS_PRICE < ENTERPRICE THEN
        STOP_LOSS_PRICE := ENTERPRICE;  
        
    // 第二阶段:浮盈3倍ATR后,2倍ATR跟踪止损
    IF MAX_PROFIT >= 3 THEN
        STOP_LOSS_PRICE := MAX(STOP_LOSS_PRICE, CLOSE - 2*ATR_VALUE);
      
    // 第三阶段:浮盈5倍ATR后,3倍ATR跟踪止损
    IF MAX_PROFIT >= 5 THEN
        STOP_LOSS_PRICE := MAX(STOP_LOSS_PRICE, CLOSE - 3*ATR_VALUE);
      
    // 止损执行
    IF CLOSE <= STOP_LOSS_PRICE THEN
        SELL(1, HOLDING, MARKET);
        DIFF_CROSS_FLAG := 0;
END;
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-9 00:15 , Processed in 0.104559 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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