帮我梳理一下WH8使用 [文华财经]
-
咨询内容:
// @Name("Bollinger Bands Trend & Reversion Strategy")
// @Description("综合布林带趋势跟踪与均值回归策略")// 策略参数
INPUT:N1(20, 2, 100, 1, "布林带周期");
INPUT:K1(2.0, 0.5, 3, 0.1, "布林带标准差倍数");
INPUT:RSI_Period(14, 5, 30, 1, "RSI周期");
INPUT:RSI_OverSold(30, 10, 40, 1, "RSI超卖线");
INPUT:RSI_OverBought(70, 60, 90, 1, "RSI超买线");
INPUT:Vol_Filter(1.2, 1, 3, 0.1, "成交量过滤倍数");
INPUT:StopLossPct(2, 0.5, 5, 0.5, "止损百分比");
INPUT:Trend_Filter(20, 5, 50, 1, "趋势过滤周期");// 计算指标
MID := BOLL.MID(N1, K1);
UPPER := BOLL.UPPER(N1, K1);
LOWER := BOLL.LOWER(N1, K1);
BANDWIDTH := (UPPER - LOWER) / MID; // 标准化带宽RSI_VAL := RSI(CLOSE, RSI_Period);
MA_Trend := MA(CLOSE, Trend_Filter); // 趋势过滤用的均线
VOL_MA := MA(VOL, 20); // 成交量均线// 市场状态判断
IS_SQUEEZE := BANDWIDTH < LLV(BANDWIDTH, 50) * 1.2; // 带宽收缩状态
IS_TREND := BANDWIDTH > HHV(BANDWIDTH, 50) * 0.8; // 带宽扩张状态
IS_UPTREND := CLOSE > MA_Trend; // 整体趋势向上
IS_DOWNTREND := CLOSE < MA_Trend; // 整体趋势向下// 交易条件 - 趋势跟踪策略 (适用于带宽扩张时期)
TREND_LONG_ENTRY := IS_TREND AND IS_UPTREND AND C > UPPER AND VOL > VOL_MA * Vol_Filter;
TREND_SHORT_ENTRY := IS_TREND AND IS_DOWNTREND AND C < LOWER AND VOL > VOL_MA * Vol_Filter;TREND_LONG_EXIT := C < MID OR (C - ENTRYPRICE) / ENTRYPRICE * 100 < -StopLossPct;
TREND_SHORT_EXIT := C > MID OR (ENTRYPRICE - C) / ENTRYPRICE * 100 < -StopLossPct;// 交易条件 - 均值回归策略 (适用于带宽收缩时期)
REVERT_LONG_ENTRY := IS_SQUEEZE AND C <= LOWER AND RSI_VAL < RSI_OverSold AND VOL > VOL_MA;
REVERT_SHORT_ENTRY := IS_SQUEEZE AND C >= UPPER AND RSI_VAL > RSI_OverBought AND VOL > VOL_MA;REVERT_LONG_EXIT := C >= MID OR (C - ENTRYPRICE) / ENTRYPRICE * 100 < -StopLossPct;
REVERT_SHORT_EXIT := C <= MID OR (ENTRYPRICE - C) / ENTRYPRICE * 100 < -StopLossPct;// 综合交易信号 (趋势策略优先)
LONG_ENTRY := (TREND_LONG_ENTRY AND IS_TREND) OR (REVERT_LONG_ENTRY AND NOT IS_TREND);
SHORT_ENTRY := (TREND_SHORT_ENTRY AND IS_TREND) OR (REVERT_SHORT_ENTRY AND NOT IS_TREND);LONG_EXIT := (TREND_LONG_EXIT AND IS_TREND) OR (REVERT_LONG_EXIT AND NOT IS_TREND);
SHORT_EXIT := (TREND_SHORT_EXIT AND IS_TREND) OR (REVERT_SHORT_EXIT AND NOT IS_TREND);// 资金管理
CAPITAL := 1000000; // 初始资金
POSITION := 0; // 持仓数量// 计算仓位大小 (每次使用资金的20%)
IF LONG_ENTRY OR SHORT_ENTRY THEN
POSITION := (CAPITAL * 0.2) / C;// 执行交易
IF LONG_ENTRY AND BARSLAST(LONG_ENTRY) > 5 THEN // 防止连续开仓
BUY(POSITION, 1, MARKET);IF SHORT_ENTRY AND BARSLAST(SHORT_ENTRY) > 5 THEN
BUYSHORT(POSITION, 1, MARKET);IF LONG_EXIT THEN
SELL(1, 1, MARKET);IF SHORT_EXIT THEN
SELLSHORT(1, 1, MARKET);// 绘制指标和信号
DRAWLINE1(MID, COLORRED, 0, "中轨");
DRAWLINE1(UPPER, COLORBLUE, 0, "上轨");
DRAWLINE1(LOWER, COLORBLUE, 0, "下轨");// 标记交易信号
DRAWICON(LONG_ENTRY, L, 1);
DRAWICON(SHORT_ENTRY, H, 2);
DRAWICON(LONG_EXIT, H, 3);
DRAWICON(SHORT_EXIT, L, 4);// 绘制背景色显示市场状态
DRAWGBK(IS_SQUEEZE, COLORGRAY, 0, "收缩市场");
DRAWGBK(IS_TREND, COLORCYAN, 0, "趋势市场");来源:程序化99
-
文华技术人员:
// @NAME("BOLLINGER BANDS TREND & REVERSION STRATEGY") // 策略参数 N1:=20; K1:=2.0; RSI_PERIOD:=14; RSI_OVERSOLD:=30; RSI_OVERBOUGHT:=70; VOL_FILTER:=1.2; STOPLOSSPCT:=2; TREND_FILTER:=20;
// 计算指标 MID:MA(CLOSE,N1); TMP2:=STD(CLOSE,N1); UPPER:MID+K1*TMP2; LOWER:MID-K1*TMP2;
BANDWIDTH := (UPPER - LOWER) / MID; // 标准化带宽 LC := REF(CLOSE,1); BACKGROUNDSTYLE(1); RSI:SMA(MAX(CLOSE-LC,0),RSI_PERIOD,1)/SMA(ABS(CLOSE-LC),RSI_PERIOD,1)*100; RSI_VAL := RSI; MA_TREND := MA(CLOSE, TREND_FILTER); // 趋势过滤用的均线 VOL_MA := MA(VOL, 20); // 成交量均线
// 市场状态判断 IS_SQUEEZE := BANDWIDTH < LV(BANDWIDTH, 50) * 1.2; // 带宽收缩状态 IS_TREND := BANDWIDTH > HV(BANDWIDTH, 50) * 0.8; // 带宽扩张状态 IS_UPTREND := CLOSE > MA_TREND; // 整体趋势向上 IS_DOWNTREND := CLOSE < MA_TREND; // 整体趋势向下
// 交易条件 - 趋势跟踪策略 (适用于带宽扩张时期) TREND_LONG_ENTRY := IS_TREND AND IS_UPTREND AND C > UPPER AND VOL > VOL_MA * VOL_FILTER; TREND_SHORT_ENTRY := IS_TREND AND IS_DOWNTREND AND C < LOWER AND VOL > VOL_MA * VOL_FILTER;
TREND_LONG_EXIT := C < MID OR (C - BKPRICE) / BKPRICE * 100 < -STOPLOSSPCT; TREND_SHORT_EXIT := C > MID OR (SKPRICE - C) / SKPRICE * 100 < -STOPLOSSPCT;
// 交易条件 - 均值回归策略 (适用于带宽收缩时期) REVERT_LONG_ENTRY := IS_SQUEEZE AND C <= LOWER AND RSI_VAL < RSI_OVERSOLD AND VOL > VOL_MA; REVERT_SHORT_ENTRY := IS_SQUEEZE AND C >= UPPER AND RSI_VAL > RSI_OVERBOUGHT AND VOL > VOL_MA;
REVERT_LONG_EXIT := C >= MID OR (C - BKPRICE) / BKPRICE * 100 < -STOPLOSSPCT; REVERT_SHORT_EXIT := C <= MID OR (SKPRICE - C) / SKPRICE * 100 < -STOPLOSSPCT;
// 综合交易信号 (趋势策略优先) LONG_ENTRY := (TREND_LONG_ENTRY AND IS_TREND) OR (REVERT_LONG_ENTRY AND NOT( IS_TREND)); SHORT_ENTRY := (TREND_SHORT_ENTRY AND IS_TREND) OR (REVERT_SHORT_ENTRY AND NOT (IS_TREND));
LONG_EXIT := (TREND_LONG_EXIT AND IS_TREND) OR (REVERT_LONG_EXIT AND NOT (IS_TREND)); SHORT_EXIT := (TREND_SHORT_EXIT AND IS_TREND) OR (REVERT_SHORT_EXIT AND NOT( IS_TREND));
// 资金管理 CAPITAL := 1000000; // 初始资金 POSITION := 0; // 持仓数量
// 计算仓位大小 (每次使用资金的20%) //IF LONG_ENTRY OR SHORT_ENTRY THEN //POSITION := (CAPITAL * 0.2) / C;
// 执行交易 LONG_ENTRY AND REF(BARSLAST(LONG_ENTRY) > 5,1) ,BK;
SHORT_ENTRY AND REF(BARSLAST(SHORT_ENTRY) > 5,1),SK;
LONG_EXIT,SP; SHORT_EXIT ,BP; // 绘制指标和信号 MID, COLORRED; UPPER, COLORBLUE; LOWER, COLORBLUE;
// 标记交易信号 DRAWICON(LONG_ENTRY, L, 1); DRAWICON(SHORT_ENTRY, H, 2); DRAWICON(LONG_EXIT, H, 3); DRAWICON(SHORT_EXIT, L, 4);
// 绘制背景色显示市场状态 DRAWGBK1(IS_SQUEEZE, COLORGRAY); DRAWGBK1(IS_TREND, COLORCYAN); AUTOFILTER;
有思路,想编写各种指标公式,交易模型,选股公式,还原公式的朋友
可联系技术人员 QQ: 262069696 或微信号:cxh99cxh99 进行 有偿收费 编写!
(注:由于人数限制,QQ或微信请选择方便的一个联系我们就行,加好友时请简单备注下您的需求,否则无法通过。谢谢您!)
相关文章
-
没有相关内容
