金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1951|回复: 2

这是系统自带的策略,测试后发现偶有闪烁,想学习一下是哪个地方出了问题。是不是...

[复制链接]

16

主题

95

帖子

95

积分

Rank: 2

等级: 标准版

注册:
2022-11-14
曾用名:
发表于 2023-9-18 10:54 | 显示全部楼层 |阅读模式
//该模型为简单示范模型,用户需根据自己交易经验,修改完善后再实际应用!!!
//策略:超级日内组合系统
//类型:日内5、走完K线
//版本:1.0
//详情介绍网址:http://www.weistock.com/bbs/dispbbs.asp?boardid=10&Id=34043
//修订时间:2012.12.24
//DESIGNED BY ROGARZ
//中间变量
INPUT:SS(1,1,100,1),K1(0.3,0.1,1,0.1),K2(0.1,0.1,1,0.1),BOCP(0.25,0,1,0.01),FBOCP(0.25,0,1,0.01);
VARIABLE:开多次数=0,开空次数=0,趋买市=0,趋卖市=0,多头止损价=0,空头止损价=0;
CYC:=BARSLAST(DATE>REF(DATE,1))+1;
昨开:=CALLSTOCK(STKLABEL,VTOPEN,6,-1);
昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);
昨昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-2);//昨天的前一天的收盘价,暂称为昨昨收
昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);
昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);
今高:=IF(CYC=1,HIGH,REF(HHV(HIGH,CYC),1));
今低:=IF(CYC=1,LOW,REF(LLV(LOW,CYC),1));
今开:=IF(CYC=1,OPEN,REF(OPEN,CYC-1));
10日平均波幅:=ref(MA(CALLSTOCK(STKLABEL,VTHIGH,6,0)-CALLSTOCK(STKLABEL,VTLOW,6,0),10),1);//AVERAGERANGE
10日平均开收盘区间:=ref(MA(ABS(CALLSTOCK(STKLABEL,VTopen,6,0)-CALLSTOCK(STKLABEL,VTclose,6,0)),10),1);//AVERAGEOCRANGE
开关:=ABS(昨开-昨收)<0.85*10日平均开收盘区间;//CANTRADE
3周期最高价:=REF(HHV(HIGH,3),1);
3周期最低价:=REF(LLV(LOW,3),1);
多头突破确认价:=昨高+BOCP*10日平均波幅;//LONGBREAKPT
空头突破确认价:=昨低-BOCP*10日平均波幅;//SHORTBREAKPT
多翻空确认价:=昨低+FBOCP*10日平均波幅;//LONGFBOPOINT
空翻多确认价:=昨高-FBOCP*10日平均波幅;//SHORTFBOPOINT
手数:=SS;
开仓历时:=ENTERBARS+1;
//交易条件
IF 昨收<=昨昨收 THEN BEGIN//昨日收盘价小于等于昨昨收为趋买市(BUYEASIERDAY)
趋买市:=1;
趋买市开多价:=今开+K1*10日平均波幅;//BUYBOPT
趋买市开空价:=今开-K2*10日平均波幅;//SELLBOPOINT
END
IF 昨收>昨昨收 THEN BEGIN//昨日收盘价大于昨昨收为趋买市(SELLEASIERDAY)
趋卖市:=1;
趋卖市开多价:=今开+K2*10日平均波幅;//BUYBOPT
趋卖市开空价:=今开-K1*10日平均波幅;//SELLBOPOINT
END
//交易系统
//突破
IF TIME>=094500 AND TIME<143000 AND 开关=1 THEN BEGIN
{趋买市}
IF 趋买市=1 AND 开多次数=0 THEN BEGIN
   趋买市开多:BUY(C>=趋买市开多价 AND HOLDING=0,手数,MARKET);
     多头止损价:=MIN(ENTERPRICE-0.25*10日平均波幅,ENTERPRICE-3);//这个策略用于股指,多头常规止损价为 开仓价减25%的10日平均波幅和3个大点的较小值。
  开多次数:=1;
END

IF 趋买市=1 AND 开空次数=0 THEN BEGIN
   趋买市开空:BUYSHORT(CLOSE<=趋买市开空价 AND HOLDING=0,手数,MARKET);
     空头止损价:=Max(ENTERPRICE+0.25*10日平均波幅,ENTERPRICE+3);//这个策略用于股指,空头常规止损价为 开仓价加25%的10日平均波幅和3个大点的较小值。
   开空次数:=1;
  END
{趋卖市}
  IF 趋卖市=1 AND 开多次数=0 THEN BEGIN
   趋卖市开多:BUY(CLOSE>趋卖市开多价 AND HOLDING=0,手数,MARKET);
     多头止损价:=MIN(ENTERPRICE-0.25*10日平均波幅,ENTERPRICE-3);
   开多次数:=1;
  END

  IF 趋卖市=1 AND 开空次数=0 THEN BEGIN
   趋卖市开空:BUYSHORT(CLOSE<趋卖市开空价 AND HOLDING=0,手数,MARKET);
     空头止损价:=Max(ENTERPRICE+0.25*10日平均波幅,ENTERPRICE+3);
   开空次数:=1;
  END
END
//突破失败
{多头突破失败情况1:价格曾经高于多头突破确认价,最新价又回落至空翻多确认价}
IF 今高>多头突破确认价 AND C<多翻空确认价 AND TIME<143000 AND 开空次数=0 AND HOLDING>=0 THEN BEGIN
多头止损1:SELL(1,手数,MARKET);
多翻空1:BUYSHORT(1,手数,MARKET);
开空次数:=1;
END

{多头突破失败情况2:突破入场后,行情反转。止损的同时我们反手开空,但前提是时间在中午11:30之前,且多头进场在至少4根K之前。瞬间止损我们不允许反转,因为这往往是市场的膝跳反射}
IF HOLDING>=0 AND TIME<143000 AND 开空次数=0 THEN BEGIN
IF C<=多头止损价 THEN BEGIN
  多头止损2:SELL(1,手数,MARKET);
  IF TIME<=110000 AND 开仓历时>=4 THEN BEGIN
   多翻空2:BUYSHORT(1,手数,MARKET);
   空头止损价:=MIN(ENTERPRICE+0.15*10日平均波幅,ENTERPRICE+3);//多翻空止损价为开仓价加15%的10日平均波幅和3个大点的较小值。
   开空次数:=1;
  END
END
END
{空头突破失败情况1:价格曾经低于空头突破确认价,最新价又上涨至空翻多确认价}
IF 今低<空头突破确认价 AND C>空翻多确认价 AND TIME<143000 AND 开多次数=0 AND HOLDING<=0 THEN BEGIN
空头止损1:SELLSHORT(1,手数,MARKET);
空翻多1:BUY(1,手数,MARKET);
开多次数:=1;
END
{空头突破失败情况2:突破入场后,行情反转。止损的同时我们反手开多,但前提是时间在中午11:30之前,且空头进场在至少4根K之前。瞬间止损我们不允许反转,因为这往往是市场的膝跳反射}
IF HOLDING<0 AND TIME<143000 AND 开多次数=0 THEN BEGIN
IF C>=空头止损价 THEN BEGIN
  空头止损2:SELLSHORT(1,手数,MARKET);
  IF TIME<=110000 AND 开仓历时>=4 THEN BEGIN
   空翻多2:BUY(1,手数,MARKET);
   多头止损价:=MIN(ENTERPRICE-0.15*10日平均波幅,ENTERPRICE-3);//多翻空止损价为开仓价加15%的10日平均波幅和3个大点的较小值。
   开多次数:=1;
  END
END

END
//止损
IF HOLDING>0 AND C<多头止损价 AND TIME<151000 THEN 常规多头止损:SELL(1,手数,MARKET);
IF HOLDING<0 AND C>空头止损价 AND TIME<151000 THEN 常规空头止损:SELLSHORT(1,手数,MARKET);
//止损价调整
{若持多单,而5分钟K高点超过了开仓价+50%10日平均波幅,止损调整为保本型 }
IF 今高>ENTERPRICE+0.5*10日平均波幅 THEN 多头止损价:=ENTERPRICE+2*MINDIFF;
IF 今低<ENTERPRICE-0.5*10日平均波幅 THEN 空头止损价:=ENTERPRICE-2*MINDIFF;
{若时间处于14:30以后,多头跟踪止损为过去3个5分钟的最高低点与多空头止损价中的较大值}
IF TIME>=143000 THEN BEGIN
多头止损价:=MAX(多头止损价,3周期最低价);
空头止损价:=MIN(空头止损价,3周期最高价);
END
//日内平仓
IF TIME>=184500 THEN BEGIN
收盘平多:SELL(1,手数,MARKET);
收盘平空:SELLSHORT(1,手数,MARKET);
趋卖市:=0;
趋买市:=0;
开多次数:=0;
开空次数:=0;
多头止损价:=0;
空头止损价:=0;
END
持仓:holding,COLORRED,linethick0;



补充内容 (2023-9-18 10:55):
回测数据非常好,是不是有未来
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-9-18 10:58 | 显示全部楼层
这种都会可能闪烁:
c<多头止损价

你用收盘价做判断,在盘中都是可能闪烁的。

其他多个地方都是使用了收盘价 和某个价做判断。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-9-18 10:59 | 显示全部楼层
本帖最后由 技术009 于 2023-9-18 11:23 编辑

10日平均波幅:=ref(ma(callstock(stklabel,vthigh,6,0)-callstock(stklabel,vtlow,6,0),10),1);//averagerange
10日平均开收盘区间:=ref(ma(abs(callstock(stklabel,vtopen,6,0)-callstock(stklabel,vtclose,6,0)),10),1);//averageocrange

这种其实是小引用大,那么其实是有未来调用的意思在里面的。也是可能存在闪烁的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-7-30 00:49 , Processed in 0.161781 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表