VOL+MACD双重筛选:量价配合,提升买入成功率
以下代码由今日美股网(www.TodayUSStock.com)代码学院提供,该选股公式结合成交量(VOL)和MACD指标,通过量价配合筛选出潜在买入机会,提升买入成功率。以下是适用于多个主流股票软件的代码实现。
代码实现
同花顺
以下代码适用于同花顺软件,使用标准函数,无需额外调整。
// 同花顺选股公式 VOL_MA5 := MA(VOL, 5); // 计算5日成交量均线 VOL_MA10 := MA(VOL, 10); // 计算10日成交量均线 MACD_DIFF := EMA(CLOSE, 12) - EMA(CLOSE, 26); // 计算MACD差值 MACD_DEA := EMA(MACD_DIFF, 9); // 计算MACD信号线 MACD_CROSS := CROSS(MACD_DIFF, MACD_DEA); // MACD金叉信号 VOL_CONDITION := VOL > VOL_MA5 AND VOL > VOL_MA10; // 成交量条件 BUY_SIGNAL := MACD_CROSS AND VOL_CONDITION; // 买入信号 FILTER(BUY_SIGNAL, 1); // 筛选符合条件的股票
加载方法:打开同花顺软件,进入选股器,粘贴代码并保存。
东方财富
以下代码适用于东方财富软件,使用标准函数,无需额外调整。
// 东方财富选股公式 VOL_MA5 := MA(VOL, 5); // 计算5日成交量均线 VOL_MA10 := MA(VOL, 10); // 计算10日成交量均线 MACD_DIFF := EMA(CLOSE, 12) - EMA(CLOSE, 26); // 计算MACD差值 MACD_DEA := EMA(MACD_DIFF, 9); // 计算MACD信号线 MACD_CROSS := CROSS(MACD_DIFF, MACD_DEA); // MACD金叉信号 VOL_CONDITION := VOL > VOL_MA5 AND VOL > VOL_MA10; // 成交量条件 BUY_SIGNAL := MACD_CROSS AND VOL_CONDITION; // 买入信号 BUY_SIGNAL; // 筛选符合条件的股票
加载方法:打开东方财富软件,进入选股器,粘贴代码并保存。
通达信
以下代码适用于通达信软件,使用标准函数,无需额外调整。
// 通达信选股公式 VOL_MA5 := MA(VOL, 5); // 计算5日成交量均线 VOL_MA10 := MA(VOL, 10); // 计算10日成交量均线 MACD_DIFF := EMA(CLOSE, 12) - EMA(CLOSE, 26); // 计算MACD差值 MACD_DEA := EMA(MACD_DIFF, 9); // 计算MACD信号线 MACD_CROSS := CROSS(MACD_DIFF, MACD_DEA); // MACD金叉信号 VOL_CONDITION := VOL > VOL_MA5 AND VOL > VOL_MA10; // 成交量条件 BUY_SIGNAL := MACD_CROSS AND VOL_CONDITION; // 买入信号 BUY_SIGNAL; // 筛选符合条件的股票
加载方法:打开通达信软件,进入选股器,粘贴代码并保存。
大智慧
以下代码适用于大智慧软件,使用标准函数,无需额外调整。
// 大智慧选股公式 VOL_MA5 := MA(VOL, 5); // 计算5日成交量均线 VOL_MA10 := MA(VOL, 10); // 计算10日成交量均线 MACD_DIFF := EMA(CLOSE, 12) - EMA(CLOSE, 26); // 计算MACD差值 MACD_DEA := EMA(MACD_DIFF, 9); // 计算MACD信号线 MACD_CROSS := CROSS(MACD_DIFF, MACD_DEA); // MACD金叉信号 VOL_CONDITION := VOL > VOL_MA5 AND VOL > VOL_MA10; // 成交量条件 BUY_SIGNAL := MACD_CROSS AND VOL_CONDITION; // 买入信号 BUY_SIGNAL; // 筛选符合条件的股票
加载方法:打开大智慧软件,进入选股器,粘贴代码并保存。
MetaStock
以下代码适用于MetaStock软件,使用标准函数,无需额外调整。
// MetaStock选股公式 VOL_MA5 := Mov(VOL, 5, S); // 计算5日成交量均线 VOL_MA10 := Mov(VOL, 10, S); // 计算10日成交量均线 MACD_DIFF := Mov(CLOSE, 12, E) - Mov(CLOSE, 26, E); // 计算MACD差值 MACD_DEA := Mov(MACD_DIFF, 9, E); // 计算MACD信号线 MACD_CROSS := Cross(MACD_DIFF, MACD_DEA); // MACD金叉信号 VOL_CONDITION := VOL > VOL_MA5 AND VOL > VOL_MA10; // 成交量条件 BUY_SIGNAL := MACD_CROSS AND VOL_CONDITION; // 买入信号 BUY_SIGNAL; // 筛选符合条件的股票
加载方法:打开MetaStock软件,进入公式编辑器,粘贴代码并保存。
NinjaTrader
以下代码适用于NinjaTrader软件,使用标准函数,无需额外调整。
// NinjaTrader选股公式 VOL_MA5 := SMA(Volume, 5)[0]; // 计算5日成交量均线 VOL_MA10 := SMA(Volume, 10)[0]; // 计算10日成交量均线 MACD_DIFF := EMA(Close, 12)[0] - EMA(Close, 26)[0]; // 计算MACD差值 MACD_DEA := EMA(MACD_DIFF, 9)[0]; // 计算MACD信号线 MACD_CROSS := CrossAbove(MACD_DIFF, MACD_DEA); // MACD金叉信号 VOL_CONDITION := Volume[0] > VOL_MA5 AND Volume[0] > VOL_MA10; // 成交量条件 BUY_SIGNAL := MACD_CROSS AND VOL_CONDITION; // 买入信号 BUY_SIGNAL; // 筛选符合条件的股票
加载方法:打开NinjaTrader软件,进入策略编辑器,粘贴代码并保存。
eSignal
以下代码适用于eSignal软件,使用标准函数,无需额外调整。
// eSignal选股公式 VOL_MA5 := Average(Volume, 5); // 计算5日成交量均线 VOL_MA10 := Average(Volume, 10); // 计算10日成交量均线 MACD_DIFF := EMA(Close, 12) - EMA(Close, 26); // 计算MACD差值 MACD_DEA := EMA(MACD_DIFF, 9); // 计算MACD信号线 MACD_CROSS := Cross(MACD_DIFF, MACD_DEA); // MACD金叉信号 VOL_CONDITION := Volume > VOL_MA5 AND Volume > VOL_MA10; // 成交量条件 BUY_SIGNAL := MACD_CROSS AND VOL_CONDITION; // 买入信号 BUY_SIGNAL; // 筛选符合条件的股票
加载方法:打开eSignal软件,进入公式编辑器,粘贴代码并保存。
TradingView
以下代码适用于TradingView软件,使用标准函数,无需额外调整。
// TradingView选股公式 VOL_MA5 := ta.sma(volume, 5); // 计算5日成交量均线 VOL_MA10 := ta.sma(volume, 10); // 计算10日成交量均线 MACD_DIFF := ta.ema(close, 12) - ta.ema(close, 26); // 计算MACD差值 MACD_DEA := ta.ema(MACD_DIFF, 9); // 计算MACD信号线 MACD_CROSS := ta.crossover(MACD_DIFF, MACD_DEA); // MACD金叉信号 VOL_CONDITION := volume > VOL_MA5 and volume > VOL_MA10; // 成交量条件 BUY_SIGNAL := MACD_CROSS and VOL_CONDITION; // 买入信号 BUY_SIGNAL; // 筛选符合条件的股票
加载方法:打开TradingView软件,进入Pine Script编辑器,粘贴代码并保存。
MetaTrader 4/5
以下代码适用于MetaTrader 4/5软件,使用标准函数,无需额外调整。
// MetaTrader 4/5选股公式 double VOL_MA5 = iMA(NULL, 0, 5, 0, MODE_SMA, PRICE_VOLUME, 0); // 计算5日成交量均线 double VOL_MA10 = iMA(NULL, 0, 10, 0, MODE_SMA, PRICE_VOLUME, 0); // 计算10日成交量均线 double MACD_DIFF = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 0); // 计算MACD差值 double MACD_DEA = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, 0); // 计算MACD信号线 bool MACD_CROSS = MACD_DIFF > MACD_DEA && MACD_DIFF[1] VOL_MA5 && iVolume(NULL, 0, 0) > VOL_MA10; // 成交量条件 bool BUY_SIGNAL = MACD_CROSS && VOL_CONDITION; // 买入信号 BUY_SIGNAL; // 筛选符合条件的股票
加载方法:打开MetaTrader软件,进入MetaEditor,粘贴代码并保存。
参数说明
参数 | 意义 | 推荐值 | 适用产品 | 推荐理由 | 参数调整建议 |
---|---|---|---|---|---|
VOL_MA5 | 5日成交量均线 | 5 | 股票、期货、外汇、加密货币 | 反映短期成交量趋势 | 对于波动较大的市场,可调整为3 |
VOL_MA10 | 10日成交量均线 | 10 | 股票、期货、外汇、加密货币 | 反映中期成交量趋势 | 对于波动较大的市场,可调整为7 |
MACD_DIFF | MACD差值 | 12, 26 | 股票、期货、外汇、加密货币 | 反映价格趋势变化 | 对于短期交易,可调整为9, 18 |
MACD_DEA | MACD信号线 | 9 | 股票、期货、外汇、加密货币 | 反映MACD的平滑趋势 | 对于短期交易,可调整为6 |
优缺点分析
优点 | 缺点 |
---|---|
1. 结合量价分析,信号更可靠 | 1. 需要同时满足成交量条件和MACD条件,可能错过部分机会 |
2. 适用于多种金融产品 | 2. 参数设置可能因市场不同而需要调整 |
3. 帮助识别潜在买入点 | 3. 需要结合其他指标进行综合判断 |
使用建议
建议结合其他技术指标(如均线、RSI等)进行综合判断。
根据不同市场(股票、期货、外汇、加密货币)调整参数设置。
定期回测和优化参数,以适应市场变化。
回测和优化建议
在使用该选股公式前,建议进行历史数据回测,以验证其有效性。以下是回测步骤:
选择一段历史数据(如过去1年的数据)。
在选股软件中加载公式并运行回测。
根据回测结果调整参数(如5
和10
的成交量均线周期)。
结合其他指标(如均线、RSI等)进行综合优化。
常见问题解答(FAQ)
问题1:代码无法运行可能原因:函数名称不兼容。请检查所用软件的函数库,确保函数名称正确。
问题2:选股结果不准确可能原因:参数设置不适合当前市场。建议根据市场特性调整参数。
问题3:如何加载代码请参考每个代码段下方的加载方法说明。
来源:今日美股网