金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 25|回复: 5

那位老师, 帮我修改一下。

[复制链接]

2

主题

5

帖子

5

积分

Rank: 1

等级: 新手上路

注册:
2025-7-30
曾用名:
发表于 2025-7-30 13:31 | 显示全部楼层 |阅读模式
// 策略名称:MACD双周期交易系统
// 适用于金字塔期货交易平台

// 定义MACD计算函数
Input:
    LongCycle(48),   // 大周期参数
    MidCycle(104),
    ShortCycle(36),
    SmallFast(12),   // 小周期参数
    SmallSlow(26),
    SmallMACD(9),
    StopLossTicks(20); // 止损跳数

Vars:
    BigDiffValue(0),    // 大周期DIFF - 重命名避免冲突
    BigDeaValue(0),    // 大周期DEA
    BigMacdValue(0),   // 大周期MACD柱
    SmallDiffValue(0), // 小周期DIFF
    SmallDeaValue(0),  // 小周期DEA
    SmallMacdValue(0), // 小周期MACD柱
    BuyCondition(false),  // 买入条件
    SellCondition(false), // 平多条件
    ShortCondition(false),// 卖空条件
    CoverCondition(false),// 平空条件
    StopLossPrice(0),   // 止损价格

// 计算大周期MACD
BigDiffValue = EMA(Close, LongCycle) - EMA(Close, MidCycle);
BigDeaValue = EMA(BigDiffValue, ShortCycle);
BigMacdValue = 2 * (BigDiffValue - BigDeaValue);

// 计算小周期MACD
SmallDiffValue = EMA(Close, SmallFast) - EMA(Close, SmallSlow);
SmallDeaValue = EMA(SmallDiffValue, SmallMACD);
SmallMacdValue = 2 * (SmallDiffValue - SmallDeaValue);

// 交易条件判断
BuyCondition = (BigDiffValue > 0) AND CrossOver(SmallDiffValue, 0);    // 大周期>0且小周期上穿0轴
SellCondition = CrossUnder(SmallDiffValue, 0);                    // 小周期下穿0轴平多
ShortCondition = (BigDiffValue < 0) AND CrossUnder(SmallDiffValue, 0); // 大周期<0且小周期下穿0轴
CoverCondition = CrossOver(SmallDiffValue, 0);                    // 小周期上穿0轴平空

// 交易指令
// 多单操作
If BuyCondition AND MarketPosition <> 1 Then
Begin
    Buy(1, Open);  // 开多单
    StopLossPrice = EntryPrice - StopLossTicks * MinMove * PriceScale; // 计算止损价
    SetStopLoss(StopLossPrice); // 设置多单止损
End;

If SellCondition And MarketPosition = 1 Then
    Sell(1, Open); // 平多单

// 空单操作
If ShortCondition And MarketPosition <> -1 Then
Begin
    SellShort(1, Open); // 开空单
    StopLossPrice = EntryPrice + StopLossTicks * MinMove * PriceScale; // 计算止损价
    SetStopLoss(StopLossPrice); // 设置空单止损
End;

If CoverCondition And MarketPosition = -1 Then
    BuyToCover(1, Open); // 平空单

// 绘制指标线
PlotNumeric("大周期DIFF", BigDiffValue);
PlotNumeric("小周期DIFF", SmallDiffValue);
PlotNumeric("零轴", 0);

回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

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

使用道具 举报

2

主题

5

帖子

5

积分

Rank: 1

等级: 新手上路

注册:
2025-7-30
曾用名:
 楼主| 发表于 2025-7-30 13:44 | 显示全部楼层
请帮我写一个金字塔期货量化交易策略:用MACD双周期策略,MACD有两套参数,大 周期是48,104,36,小周期是12,26,9。   大 周期MACD的DIFF值大于0,并且小周期MACD的DIFF上穿零轴上 时买入多单,小周期MACD的DIFF下穿零轴下时平掉多单,止损设20跳。大 周期MACD 的DIFF值小于0,并且小周期MACD的DIFF下穿零轴下时做空单,小周期MACDR的DIFF上 穿零轴上时平掉空单,损设20跳。请用PEL语言编写。
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-7-30 13:54 | 显示全部楼层
// 参数设置
LONG_PERIOD1:=48;  // 大周期MACD参数
LONG_PERIOD2:=104;
LONG_PERIOD3:=36;
SHORT_PERIOD1:=12; // 小周期MACD参数
SHORT_PERIOD2:=26;
SHORT_PERIOD3:=9;
STOP_LOSS:=20;     // 止损20跳[^2]

// 大周期MACD计算
LONG_DIFF:=EMA(CLOSE,LONG_PERIOD1)-EMA(CLOSE,LONG_PERIOD2);  // 大周期DIFF[^1]
LONG_DEA:=EMA(LONG_DIFF,LONG_PERIOD3);  // 大周期DEA
LONG_MACD:=2*(LONG_DIFF-LONG_DEA);      // 大周期MACD柱

// 小周期MACD计算
SHORT_DIFF:=EMA(CLOSE,SHORT_PERIOD1)-EMA(CLOSE,SHORT_PERIOD2);  // 小周期DIFF[^1]
SHORT_DEA:=EMA(SHORT_DIFF,SHORT_PERIOD3);  // 小周期DEA
SHORT_MACD:=2*(SHORT_DIFF-SHORT_DEA);      // 小周期MACD柱

// 交易信号
// 开多条件:大周期DIFF>0 且 小周期DIFF上穿0轴
BUY_COND:=LONG_DIFF>0 AND CROSS(SHORT_DIFF,0);
// 平多条件:小周期DIFF下穿0轴
SELL_COND:=CROSS(0,SHORT_DIFF);

// 开空条件:大周期DIFF<0 且 小周期DIFF下穿0轴
SHORT_COND:=LONG_DIFF<0 AND CROSS(0,SHORT_DIFF);
// 平空条件:小周期DIFF上穿0轴
COVER_COND:=CROSS(SHORT_DIFF,0);

// 止损设置
LONG_STOP:=ENTERPRICE-STOP_LOSS*MINDIFF;  // 多头止损价[^15]
SHORT_STOP:=ENTERPRICE+STOP_LOSS*MINDIFF; // 空头止损价[^15]

// 交易系统
BUY(BUY_COND AND HOLDING=0,1,marketr);  // 开多[^20]
SELL(SELL_COND OR (HOLDING>0 AND CLOSE<=LONG_STOP),HOLDING,marketr);  // 平多或止损[^9]

BUYSHORT(SHORT_COND AND HOLDING=0,1,marketr);  // 开空[^20]
SELLSHORT(COVER_COND OR (HOLDING<0 AND CLOSE>=SHORT_STOP),ABS(HOLDING),marketr);  // 平空或止损[^9]
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

2

主题

5

帖子

5

积分

Rank: 1

等级: 新手上路

注册:
2025-7-30
曾用名:
 楼主| 发表于 2025-7-30 14:24 | 显示全部楼层
谢谢
回复

使用道具 举报

2

主题

5

帖子

5

积分

Rank: 1

等级: 新手上路

注册:
2025-7-30
曾用名:
 楼主| 发表于 2025-7-30 15:13 | 显示全部楼层
// 参数设置
LONG_PERIOD1:=48;  // 大周期MACD参数
LONG_PERIOD2:=104;
LONG_PERIOD3:=36;
SHORT_PERIOD1:=12; // 小周期MACD参数
SHORT_PERIOD2:=26;
SHORT_PERIOD3:=9;
STOP_LOSS:=20;     // 止损20跳[^2]

// 大周期MACD计算
LONG_DIFF:=EMA(CLOSE,LONG_PERIOD1)-EMA(CLOSE,LONG_PERIOD2);  // 大周期DIFF[^1]
LONG_DEA:=EMA(LONG_DIFF,LONG_PERIOD3);  // 大周期DEA
LONG_MACD:=2*(LONG_DIFF-LONG_DEA);      // 大周期MACD柱

// 小周期MACD计算
SHORT_DIFF:=EMA(CLOSE,SHORT_PERIOD1)-EMA(CLOSE,SHORT_PERIOD2);  // 小周期DIFF[^1]
SHORT_DEA:=EMA(SHORT_DIFF,SHORT_PERIOD3);  // 小周期DEA
SHORT_MACD:=2*(SHORT_DIFF-SHORT_DEA);      // 小周期MACD柱

// 交易信号
// 开多条件:大周期DIFF>0 且 小周期DIFF上穿0轴
BUY_COND:=LONG_DIFF>0 AND CROSS(SHORT_DIFF,0) OR LONG_DIFF>0 AND CROSS(SHORT_DIFF,SHORT_DEA) ;
// 平多条件:小周期DIFF下穿0轴
SELL_COND:=CROSS(0,SHORT_DIFF);

// 开空条件:大周期DIFF<0 且 小周期DIFF下穿0轴
SHORT_COND:=LONG_DIFF<0 AND CROSS(0,SHORT_DIFF) OR LONG_DIFF<0 AND CROSS(SHORT_DEA,SHORT_DIFF) ;
// 平空条件:小周期DIFF上穿0轴
COVER_COND:=CROSS(SHORT_DIFF,0);

// 止损设置
LONG_STOP:=ENTERPRICE-STOP_LOSS*MINDIFF;  // 多头止损价[^15]
SHORT_STOP:=ENTERPRICE+STOP_LOSS*MINDIFF; // 空头止损价[^15]

// 交易系统
BUY(BUY_COND AND HOLDING=0,1,marketr);  // 开多[^20]
SELL(SELL_COND OR (HOLDING>0 AND CLOSE<=LONG_STOP),HOLDING,marketr);  // 平多或止损[^9]

BUYSHORT(SHORT_COND AND HOLDING=0,1,marketr);  // 开空[^20]
SELLSHORT(COVER_COND OR (HOLDING<0 AND CLOSE>=SHORT_STOP),ABS(HOLDING),marketr);  // 平空或止损[^9]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-31 22:47 , Processed in 0.118972 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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