[color=rgba(0, 0, 0, 0.85)]// 参数定义 input double SellPrice = 1000; // 卖出价格 input double BuyPrice = 900; // 买入价格 input int EMAPeriod = 14; // MACD的EMA周期 input int SignalPeriod = 9; // MACD的信号线周期 input double SignalOffset = 0; // MACD信号线的偏移量 // 定义变量 double balance = GetBalance(); // 获取账户余额 double lot = balance / (BuyPrice * 100); // 计算手数 // 获取当前K线数据 CandlestickData[] cld = GetCandlestickData(Symbol(), TimeFrame()); // 计算MACD指标 double macd = MA(cld.Close, EMAPeriod) - MA(cld.Close, EMAPeriod - 1); double signal = MA(macd, SignalPeriod); double histogram = macd - signal; // 判断交易信号 if (histogram < -SignalOffset && balance > lot * BuyPrice) { // 卖出信号 if (OrderClose(Symbol(), OrderType_StopLoss, Price(0), Lot(lot), ClosePrice())) { Print("卖出成功"); } else { Print("卖出失败"); } } else if (histogram > SignalOffset && balance > lot * SellPrice) { // 买入信号 if (OrderOpen(Symbol(), OrderType_StopLoss, Price(0), Lot(lot), ClosePrice())) { Print("买入成功"); } else { Print("买入失败"); } } else { // 无交易信号,不做操作 Print("无交易信号"); } |