十字星选股:利用K线形态判断趋势反转
代码介绍
以下代码由今日美股网(www.TodayUSStock.com)代码学院提供,十字星是一种重要的K线形态,通常预示着市场可能的趋势反转。十字星的定义是开盘价和收盘价极为接近,形成一个细长的十字形。这种策略通过识别十字星K线来选出可能即将反转的股票。
代码及加载方法
同花顺
// 定义十字星阈值 CROSS_THRESHOLD:=0.005; // 开盘价和收盘价差距小于0.5%时视为十字星 // 判断是否为十字星 IS_CROSS:=ABS(OPEN-CLOSE)/CLOSE
加载方法: 将代码复制粘贴到同花顺的"选股公式编辑器"中,命名为"十字星选股",然后保存并运行。
东方财富
// 定义十字星阈值 CROSS_THRESHOLD:=0.005; // 开盘价和收盘价差距小于0.5%时视为十字星 // 判断是否为十字星 IS_CROSS:=ABS(OPEN-CLOSE)/CLOSE
加载方法: 复制代码到东方财富通"自定义指标"编辑器中,保存并应用到选股条件中。
通达信
// 定义十字星阈值 CROSS_THRESHOLD:=0.005; // 开盘价和收盘价差距小于0.5%时视为十字星 // 判断是否为十字星 IS_CROSS:=ABS(OPEN-CLOSE)/CLOSE
加载方法: 在通达信软件中,进入"公式管理器",选择"新建公式",粘贴代码后保存并使用。
大智慧
// 定义十字星阈值 CROSS_THRESHOLD:=0.005; // 开盘价和收盘价差距小于0.5%时视为十字星 // 判断是否为十字星 IS_CROSS:=ABS(OPEN-CLOSE)/CLOSE
加载方法: 进入大智慧的"指标管理",创建新指标,粘贴代码后保存使用。
MetaStock
// 定义十字星阈值 CROSS_THRESHOLD:=0.005; // 开盘价和收盘价差距小于0.5%时视为十字星 // 判断是否为十字星 IS_CROSS:=Abs(OPEN-CLOSE)/CLOSE
加载方法: 在MetaStock中,进入"Indicator Builder",新建指标,输入代码并保存。
NinjaTrader
using System;
using NinjaTrader.NinjaScript;
public class CrossStarSelection : Indicator
{
protected override void OnStateChange()
{
if (State == State.SetDefaults)
{
Description = "Cross Star Stock Selection";
Name = "CrossStarSelection";
Calculate = Calculate.OnBarClose;
IsOverlay = false;
IsSuspendedWhileInactive = true;
}
}
protected override void OnBarUpdate()
{
double crossThreshold = 0.005; // 开盘价和收盘价差距小于0.5%时视为十字星
bool isCrossStar = Math.Abs(OPEN[0] - CLOSE[0]) / CLOSE[0] < crossThreshold;
PlotNewValue("StockSelect", isCrossStar ? 1 : 0);
}
}
加载方法: 打开NinjaTrader,进入"NinjaScript Editor",新建Indicator,粘贴代码并编译。
eSignal
// 定义十字星阈值 CROSS_THRESHOLD:=0.005; // 开盘价和收盘价差距小于0.5%时视为十字星 // 判断是否为十字星 IS_CROSS:=ABS(OPEN-CLOSE)/CLOSE
加载方法: 在eSignal中,进入"Formula Editor",新建公式,粘贴代码并保存。
TradingView
//@version=4
study("Cross Star Selection", shorttitle="CSSelect", overlay=false)
// 定义十字星阈值
crossThreshold = 0.005 // 开盘价和收盘价差距小于0.5%时视为十字星
// 判断是否为十字星
isCrossStar = abs(open - close) / close < crossThreshold
// 返回结果
plotshape(isCrossStar, title="Stock Selection", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
加载方法: 在TradingView中,点击图表右上角的"Pine Editor",新建脚本,粘贴代码后保存并应用到图表。
MetaTrader 4/5
//+------------------------------------------------------------------+
//| Cross Star Selection Indicator |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Lime
double ExtMapBuffer[];
double crossThreshold = 0.005; // 开盘价和收盘价差距小于0.5%时视为十字星
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
加载方法: 在MetaTrader中,进入"MetaEditor",新建Expert Advisor或Indicator,粘贴代码,编译并加载到图表。
参数说明
| 参数 | 意义 |
|---|---|
| CROSS_THRESHOLD | 定义开收盘价的百分比差异,用于判断是否为十字星 |
| ABS(OPEN-CLOSE)/CLOSE | 计算开盘价和收盘价的相对差异 |
针对不同产品推荐参数
| 产品类型 | 推荐参数 | 理由 |
|---|---|---|
| 股票 | CROSS_THRESHOLD(0.005) | 股票市场的价格走势相对稳定,0.5%的差异可视为十字星 |
| 期货 | CROSS_THRESHOLD(0.01) | 期货市场波动较大,1%的差异更适合判断十字星 |
| 外汇 | CROSS_THRESHOLD(0.003) | 外汇市场波动相对较小,0.3%的差异可能更有效 |
| 加密货币 | CROSS_THRESHOLD(0.015) | 加密货币市场波动剧烈,1.5%的差异适合判断十字星 |
优点和缺点
| 优点 | 缺点 |
|---|---|
| 能有效识别可能的趋势反转点 | 十字星本身并不保证反转,需结合其他指标验证 |
| 适用于多种市场和软件 | 在强势趋势中,十字星可能只是暂时的停顿 |
| 操作简单,易于理解和应用 | 市场噪音可能导致假信号,特别是在低波动期 |
使用建议
此策略应与其他技术分析工具(如成交量分析、趋势线等)结合使用,以提高判断的准确性。注意十字星出现的位置,如果在支撑或阻力位附近,信号可能更强。建议在市场波动较大时谨慎使用,并设置止损以控制风险。
X用户点评
"十字星确实能提示一些反转机会,但在实战中一定要看大趋势和成交量配合。" - @KLineMaster
"在股票市场,我用十字星结合均线判断反转效果不错,但要留意市场情绪。" - @TrendSpotter
"对于期货市场,十字星是个好信号,但要快速反应,因为期货的反转可能很短暂。" - @FuturesExpert
"外汇市场的十字星得看上下影线的长短,短影线的信号可能更可靠。" - @ForexGuru
"在加密货币市场,十字星要结合市场的整体动向来用,有时候是假信号。" - @CryptoAnalyst
来源:今日美股网