全球数字财富领导者

二次探底选股:确认底部结构,提高反弹成功率

2025-02-07 00:11:38
今日美股网
媒体
关注
0
0
获赞
粉丝
喜欢 0 0收藏举报
— 分享 —
摘要: 二次探底选股公式:确认底部结构,提高反弹成功率代码介绍以下代码由今日美股网(www.TodayUSStock.com)代码学院提供,,以下是用于识别股票形成“二次探底”形态的选股公式。这种形态通常意味着股价在形成低点后又一次测试低点,但未能跌破前低,这可能预示着即将到来的反弹。本公式通过检测价格的双底形态来选股。代码及加载方法同花顺// 定义底部价...

二次探底选股公式:确认底部结构,提高反弹成功率

代码介绍

以下代码由今日美股网(www.TodayUSStock.com)代码学院提供,,以下是用于识别股票形成“二次探底”形态的选股公式。这种形态通常意味着股价在形成低点后又一次测试低点,但未能跌破前低,这可能预示着即将到来的反弹。本公式通过检测价格的双底形态来选股。

代码及加载方法

同花顺

// 定义底部价位
LOW1:=LLV(LOW,30); // 过去30天最低价
LOW2:=LLV(LOW,15); // 过去15天最低价

// 检测二次探底
DOUBLEBOTTOM:=LOW2>LOW1 AND LOW2<=LOW1*1.02; // 第二次低点略高于或等于第一次低点

// 确认反弹
REBOUND:=CLOSE>MA(CLOSE,5); // 收盘价高于5日均线

// 选股条件
STOCK:=DOUBLEBOTTOM AND REBOUND;

// 返回结果
RETURN STOCK;

加载方法: 将代码复制粘贴到同花顺的"选股公式编辑器"中,命名为"二次探底选股",然后保存并运行。

东方财富

// 定义底部价位
BOTTOM1:=LLV(LOW,30); // 过去30天最低价
BOTTOM2:=LLV(LOW,15); // 过去15天最低价

// 检测二次探底
DB:=BOTTOM2>BOTTOM1 AND BOTTOM2<=BOTTOM1*1.02;

// 确认反弹
REB:=CLOSE>MA(CLOSE,5); // 收盘价高于5日均线

// 选股条件
SELECT:=DB AND REB;

// 返回结果
RETURN SELECT;

加载方法: 复制代码到东方财富通"自定义指标"编辑器中,保存并应用到选股条件中。

通达信

// 定义底部价位
LOWEST_30:=LLV(LOW,30); // 过去30天最低价
LOWEST_15:=LLV(LOW,15); // 过去15天最低价

// 检测二次探底
DOUBLE_BOTTOM:=LOWEST_15>LOWEST_30 AND LOWEST_15<=LOWEST_30*1.02;

// 确认反弹
REBOUND:=CLOSE>MA(CLOSE,5); // 收盘价高于5日均线

// 选股条件
STOCK_SELECT:=DOUBLE_BOTTOM AND REBOUND;

// 返回结果
RETURN STOCK_SELECT;

加载方法: 在通达信软件中,进入"公式管理器",选择"新建公式",粘贴代码后保存并使用。

大智慧

// 定义底部价位
BOTTOM_30:=LLV(LOW,30); // 过去30天最低价
BOTTOM_15:=LLV(LOW,15); // 过去15天最低价

// 检测二次探底
DB:=BOTTOM_15>BOTTOM_30 AND BOTTOM_15<=BOTTOM_30*1.02;

// 确认反弹
REB:=CLOSE>MA(CLOSE,5); // 收盘价高于5日均线

// 选股条件
STOCK_SELECT:=DB AND REB;

// 返回结果
RETURN STOCK_SELECT;

加载方法: 进入大智慧的"指标管理",创建新指标,粘贴代码后保存使用。

MetaStock

// 定义底部价位
LOW1:=LLV(LOW,30); // 过去30天最低价
LOW2:=LLV(LOW,15); // 过去15天最低价

// 检测二次探底
DOUBLEBOTTOM:=LOW2>LOW1 AND LOW2<=LOW1*1.02;

// 确认反弹
REBOUND:=CLOSE>Mov(CLOSE,5,S); // 收盘价高于5日简单移动平均

// 选股条件
STOCK:=DOUBLEBOTTOM AND REBOUND;

// 返回结果
RETURN STOCK;

加载方法: 在MetaStock中,进入"Indicator Builder",新建指标,输入代码并保存。

NinjaTrader

using System;
using NinjaTrader.NinjaScript;

public class DoubleBottomSelection : Indicator
{
    protected override void OnStateChange()
    {
        if (State == State.SetDefaults)
        {
            Description = "Double Bottom Stock Selection";
            Name = "DoubleBottomSelection";
            Calculate = Calculate.OnBarClose;
            IsOverlay = false;
            IsSuspendedWhileInactive = true;
        }
    }

    protected override void OnBarUpdate()
    {
        double low30 = MIN(LOW, 30)[0]; // 过去30天最低价
        double low15 = MIN(LOW, 15)[0]; // 过去15天最低价
        
        bool doubleBottom = low15 > low30 && low15  SMA(CLOSE, 5)[0]; // 收盘价高于5日简单移动平均
        
        PlotNewValue("StockSelect", doubleBottom && rebound ? 1 : 0);
    }
}

加载方法: 打开NinjaTrader,进入"NinjaScript Editor",新建Indicator,粘贴代码并编译。

eSignal

// 定义底部价位
LOW1:=LLV(LOW,30); // 过去30天最低价
LOW2:=LLV(LOW,15); // 过去15天最低价

// 检测二次探底
DOUBLEBOTTOM:=LOW2>LOW1 AND LOW2<=LOW1*1.02;

// 确认反弹
REBOUND:=CLOSE>MA(CLOSE,5); // 收盘价高于5日简单移动平均

// 选股条件
STOCK:=DOUBLEBOTTOM AND REBOUND;

// 返回结果
RETURN STOCK;

加载方法: 在eSignal中,进入"Formula Editor",新建公式,粘贴代码并保存。

TradingView

//@version=4
study("Double Bottom Selection", shorttitle="DBSelect", overlay=false)

// 定义底部价位
low30 = lowest(low, 30) // 过去30天最低价
low15 = lowest(low, 15) // 过去15天最低价

// 检测二次探底
doubleBottom = low15 > low30 and low15  sma(close, 5) // 收盘价高于5日简单移动平均

// 选股条件
stockSelect = doubleBottom and rebound

// 返回结果
plotshape(stockSelect, title="Stock Selection", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)

加载方法: 在TradingView中,点击图表右上角的"Pine Editor",新建脚本,粘贴代码后保存并应用到图表。

MetaTrader 4/5

//+------------------------------------------------------------------+
//| Double Bottom Selection Indicator                                |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Lime

double ExtMapBuffer[];

int OnInit()
{
   SetIndexStyle(0, DRAW_ARROW, 0, 1);
   SetIndexArrow(0, 233);
   SetIndexBuffer(0, ExtMapBuffer);
   return(INIT_SUCCEEDED);
}

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
   int i, limit;
   if(rates_total  low30 && low15  iMA(NULL,0,5,MODE_SMA,PRICE_CLOSE,i))
      {
         ExtMapBuffer[i] = Low[i] - 20 * Point;
      }
      else
      {
         ExtMapBuffer[i] = EMPTY_VALUE;
      }
   }
   return(rates_total);
}

加载方法: 在MetaTrader中,进入"MetaEditor",新建Expert Advisor或Indicator,粘贴代码,编译并加载到图表。

参数说明

参数 意义
LLV(LOW,30) 获取过去30天的最低价,用于确认第一个底部
LLV(LOW,15) 获取过去15天的最低价,用于确认第二次探底
LOW2>LOW1 AND LOW2<=LOW1*1.02 判断第二次低点是否高于或接近第一次低点
CLOSE>MA(CLOSE,5) 确认价格是否开始反弹,收盘价高于5日移动平均

针对不同产品推荐参数

产品类型 推荐参数 理由
股票 LLV(30,15), MA(5) 股票市场的底部确认通常需要较长时间,30和15日周期适合
期货 LLV(15,7), MA(3) 期货市场反应快,较短周期更能反映市场变化
外汇 LLV(45,20), MA(10) 外汇市场波动较小,可能需要更长的周期来确认底部
加密货币 LLV(21,10), MA(7) 加密货币市场波动大,需较短周期捕捉反弹信号

优点和缺点

优点 缺点
有效识别可能的反弹点,增加交易成功率 可能会错过一些快速反弹的股票,因为需要双底确认
适用于各种市场和软件 二次探底形态本身不保证反弹,需结合其他分析
简单易用,减少人工判断误差 在市场趋势强烈时,可能产生假信号

使用建议

此选股公式应与其他分析方法结合使用,如成交量分析、基本面分析等。建议在市场震荡或底部区域使用,避免在趋势市场中过度依赖。在使用时,设置合理的止损点以管理风险,进行回测来评估公式的有效性。

来源:今日美股网

1. 欢迎转载,转载时请标明来源为FX168财经。商业性转载需事先获得授权,请发邮件至:media@fx168group.com。
2. 所有内容仅供参考,不代表FX168财经立场。我们提供的交易数据及资讯等不构成投资建议和依据,据此操作风险自负。
go