
等级: 新手上路
- 注册:
- 2025-7-30
- 曾用名:
|
// 策略名称: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);
|
|