金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: YQ1314

请帮忙写出代码

[复制链接]

1

主题

19

帖子

19

积分

Rank: 1

等级: 新手上路

注册:
2024-11-13
曾用名:
 楼主| 发表于 2025-9-28 16:23 | 显示全部楼层
老师您看,我用蓝色标记的圈,这些开仓信号是错的,不是我想要的

本帖子中包含更多资源

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

x
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-9-28 16:29 | 显示全部楼层
diff  必须到从来先小于0以后,然后大于0才能开仓
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-9-28 16:43 | 显示全部楼层
[PEL] 复制代码
{ 多头策略: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 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
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-9-28 16:45 | 显示全部楼层
[PEL] 复制代码
{ 空头策略: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倍数)
VARIABLE:DIFF_CROSS_FLAG := 0;  // 0:初始状态 1:已大于0
IF DIFF > 0 THEN DIFF_CROSS_FLAG := 1;  // 记录DIFF已小于0

// 开仓条件
// K线脱离均线(收盘价小于均线-1倍ATR)且MACD快线低于零轴
SELL_COND := CLOSE < MA_LINE - ATR_VALUE AND DIFF < 0 and DIFF_CROSS_FLAG=1;
// 开空仓
IF SELL_COND AND HOLDING = 0 THEN BEGIN
    BUYSHORT(1, LOTS, MARKET);
    STOP_LOSS_PRICE := ENTERPRICE + ATR_VALUE;  // 初始止损位
    MAX_PROFIT := 0;
END;
 
// 移动止损逻辑
IF HOLDING < 0 THEN BEGIN
    // 计算当前浮动盈利(ATR倍数)
    CURRENT_PROFIT := (ENTERPRICE - CLOSE) / 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 := MIN(STOP_LOSS_PRICE, CLOSE + 2*ATR_VALUE);
    
    // 第三阶段:浮盈5倍ATR后,3倍ATR跟踪止损
    IF MAX_PROFIT >= 5 THEN
        STOP_LOSS_PRICE := MIN(STOP_LOSS_PRICE, CLOSE + 3*ATR_VALUE);
    
    // 止损执行
    IF CLOSE >= STOP_LOSS_PRICE THEN
        SELLSHORT(1, HOLDING, MARKET);
        DIFF_CROSS_FLAG:=0;
END;
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

1

主题

19

帖子

19

积分

Rank: 1

等级: 新手上路

注册:
2024-11-13
曾用名:
 楼主| 发表于 2025-9-29 14:10 | 显示全部楼层
技术008 发表于 2025-9-28 16:45
[mw_shl_code=pel,true]{ 空头策略:K线收盘价小于均线且MACD快线低于零轴时开空
  止损规则:
  1. 初始 ...

老师您好,我想把初始止损改成按照开多的逻辑,然后把第一阶段浮盈一倍ATR后去掉
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-9-29 14:12 | 显示全部楼层
那你把if里面的第一阶段那个记录atr那个删掉就行了
就这个
// 第一阶段:浮盈1倍ATR后,止损移到保本点
    IF MAX_PROFIT >= 1 AND STOP_LOSS_PRICE > ENTERPRICE THEN
        STOP_LOSS_PRICE := ENTERPRICE;
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

1

主题

19

帖子

19

积分

Rank: 1

等级: 新手上路

注册:
2024-11-13
曾用名:
 楼主| 发表于 2025-9-29 14:16 | 显示全部楼层
技术008 发表于 2025-9-28 16:43
[mw_shl_code=pel,true]{ 多头策略:K线收盘价大于均线且MACD快线高于零轴时开多
  止损规则:
  1. 初始 ...

老师您好,我想把初始止损改成按照开空的逻辑,然后把第一阶段浮盈一倍ATR后去掉
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-9-29 14:18 | 显示全部楼层
[PEL] 复制代码
{ 多头策略: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
  
  
// 移动止损逻辑
IF HOLDING > 0 THEN BEGIN
    // 计算当前浮动盈利(ATR倍数)
    CURRENT_PROFIT := (CLOSE - ENTERPRICE) / ATR_VALUE;
     
    // 更新最大浮动盈利
    IF CURRENT_PROFIT > MAX_PROFIT THEN
        MAX_PROFIT := CURRENT_PROFIT;
     

     
    // 第二阶段:浮盈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
回复

使用道具 举报

1

主题

19

帖子

19

积分

Rank: 1

等级: 新手上路

注册:
2024-11-13
曾用名:
 楼主| 发表于 2025-9-29 14:33 | 显示全部楼层
老师请看,这里是按照最新的,我画圆圈的是错误的

本帖子中包含更多资源

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

x
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-9-29 14:38 | 显示全部楼层
你具体是怎么认为错呢,是开仓错还是平仓错

最好自己能输出条件坐下分析把,这个和之前的都是一样的,只是平仓条件用开空那里价格小于均线作为平仓条件做平仓
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-9 02:02 , Processed in 0.085327 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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