设为首页收藏本站

 找回密码
 注册
楼主: CrewsHe
打印 上一主题 下一主题

一个待改进的日内模型 [复制链接]

Rank: 5Rank: 5

精华
1
UID
30159
积分
1116
帖子
280
主题
23
阅读权限
60
注册时间
2011-3-23
最后登录
2019-3-21
11#
发表于 2011-8-3 15:17:38 |只看该作者
想吧信号存贮到数据库中作为参考的。希望可以改进信号消失的问题
CrewsHe 发表于 2011-8-2 10:40

把楼主的系统测试并实盘观察了一下,出现了以下问题,行情更新时bar在走但是信号不更新,需要不断刷新数据,才会显示新的信号,不知道实盘中怎么样,可以模拟观察下,策略测试效果挺不错
楼主的策略中涉及的函数楼主都给出了没有给出的论坛中有,rsi需要自己编

使用道具 举报

Rank: 4

精华
0
UID
26116
积分
377
帖子
84
主题
15
阅读权限
50
注册时间
2011-2-18
最后登录
2015-8-26
12#
发表于 2011-8-3 21:07:17 |只看该作者
开仓信号要用close【1】才能消失这个假信号的问题,用下一个bar的open和close做开仓结果其实不好。残念

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
12330
积分
838
帖子
254
主题
15
阅读权限
60
注册时间
2010-6-16
最后登录
2017-4-25
13#
发表于 2012-4-15 06:23:01 |只看该作者
QQE指标是这个么:


#property copyright "Copyright ?2008 Tim Hyder"
#property link      "mailto:hiachiever@gmail.com"
//----
#define vers    "09.Feb.2008"
#define major   1
#define minor   0
//----
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 DodgerBlue
#property indicator_style1 STYLE_SOLID
#property indicator_width1 2
#property indicator_color2 Yellow
#property indicator_style2 STYLE_DOT
#property indicator_level1 50
#property indicator_levelcolor Aqua
#property indicator_levelstyle STYLE_DOT
//----

extern int SF=25;
extern int AlertLevel=50;


string NOTESETTINGS=" --- INDICATOR SETTINGS ---";
string NOTEALERTS=" --- Alerts ---";
string SoundAlertFile="alert.wav";
bool MsgAlerts=false;
bool SoundAlerts=false;
bool eMailAlerts=false;
//----
int RSI_Period=14;
int Wilders_Period;
int StartBar, LastAlertBar;
datetime LastAlertTime;
double TrLevelSlow[];
double AtrRsi[];
double MaAtrRsi[];
double Rsi[];
double RsiMa[];
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
   Wilders_Period=RSI_Period * 2 - 1;
   if (Wilders_Period < SF)
      StartBar=SF;
   else
      StartBar=Wilders_Period;
//----
   IndicatorBuffers(6);
   SetIndexBuffer(0, RsiMa);
   SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2);
   SetIndexLabel(0, "Value 1");
   SetIndexDrawBegin(0, StartBar);
   SetIndexStyle(1, DRAW_LINE, STYLE_DOT);
   SetIndexBuffer(1, TrLevelSlow);
   SetIndexLabel(1, "Value 2");
   SetIndexDrawBegin(1, StartBar);
   SetIndexBuffer(2, AtrRsi);
   SetIndexBuffer(3, MaAtrRsi);
   SetIndexBuffer(4, Rsi);
   IndicatorShortName(StringConcatenate("QQE(", SF, ")"));
//----
   LastAlertBar=Bars-1;
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   int counted, i;
   double rsi0, rsi1, dar, tr, dv;
//----
   if(Bars<=StartBar)
      return(0);
//----     
   counted=IndicatorCounted();
   if(counted < 1)
      for(i=Bars - StartBar; i < Bars; i++)
        {
         TrLevelSlow[i]=0.0;
         AtrRsi[i]=0.0;
         MaAtrRsi[i]=0.0;
         Rsi[i]=0.0;
         RsiMa[i]=0.0;
        }
   counted=Bars - counted - 1;
//----
   for(i=counted; i>=0; i--)
      Rsi[i]=iRSI(NULL, 0, RSI_Period, PRICE_CLOSE, i);
   for(i=counted; i>=0; i--)
     {
      RsiMa[i]=iMAOnArray(Rsi, 0, SF, 0, MODE_EMA, i);
      AtrRsi[i]=MathAbs(RsiMa[i + 1] - RsiMa[i]);
     }
   for(i=counted; i>=0; i--)
      MaAtrRsi[i]=iMAOnArray(AtrRsi, 0, Wilders_Period, 0, MODE_EMA, i);
//----
   i=counted + 1;
   tr=TrLevelSlow[i];
   rsi1=iMAOnArray(Rsi, 0, SF, 0, MODE_EMA, i);
   while(i > 0)
     {
      i--;
      rsi0=iMAOnArray(Rsi, 0, SF, 0, MODE_EMA, i);
      dar=iMAOnArray(MaAtrRsi, 0, Wilders_Period, 0, MODE_EMA, i) * 4.236;
      dv=tr;
      if (rsi0 < tr)
        {
         tr=rsi0 + dar;
         if (rsi1 < dv)
            if (tr > dv)
               tr=dv;
        }
      else if (rsi0 > tr)
           {
            tr=rsi0 - dar;
            if (rsi1 > dv)
               if (tr < dv)
                  tr=dv;
           }
      TrLevelSlow[i]=tr;
      rsi1=rsi0;
     }
   if ((RsiMa[i+1]<AlertLevel && RsiMa[i]>AlertLevel) ||(RsiMa[i+1]>AlertLevel && RsiMa[i]<AlertLevel) )
     {
      string base=Symbol()+ ", TF: " + TF2Str(Period());
      string Subj=base + ", " + AlertLevel + " level Cross Up";
      if (RsiMa[i+1]>AlertLevel && RsiMa[i]<AlertLevel) Subj=base + " " +  AlertLevel + " level Cross Down";
      string Msg=Subj + " @ " + TimeToStr(TimeLocal(),TIME_SECONDS);
      if (Bars>LastAlertBar)
        {
         LastAlertBar=Bars;
         DoAlerts(Msg,Subj);
        }
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void DoAlerts(string msgText,string eMailSub)
  {
   if (MsgAlerts) Alert(msgText);
   if (SoundAlerts)  PlaySound(SoundAlertFile);
   if (eMailAlerts) SendMail(eMailSub, msgText);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string TF2Str(int period)
  {
   switch(period)
     {
      case PERIOD_M1: return("M1");
      case PERIOD_M5: return("M5");
      case PERIOD_M15: return("M15");
      case PERIOD_M30: return("M30");
      case PERIOD_H1: return("H1");
      case PERIOD_H4: return("H4");
      case PERIOD_D1: return("D1");
      case PERIOD_W1: return("W1");
      case PERIOD_MN1: return("MN");
     }
   return(Period());
  }
//+------------------------------------------------------------------+

使用道具 举报

Rank: 4

精华
0
UID
26116
积分
377
帖子
84
主题
15
阅读权限
50
注册时间
2011-2-18
最后登录
2015-8-26
14#
发表于 2012-4-15 09:53:40 |只看该作者
趋势跟踪 发表于 2012-4-15 06:23
QQE指标是这个么:

是一样的东西

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
4647
积分
1403
帖子
432
主题
31
阅读权限
60
注册时间
2009-6-16
最后登录
2019-10-27
15#
发表于 2012-4-15 10:26:30 |只看该作者
楼主能介绍一下模型原理吗?参数太多,自由度太高的系统没法持续获利的。。。

使用道具 举报

Rank: 4

精华
0
UID
50057
积分
304
帖子
175
主题
17
阅读权限
50
注册时间
2011-6-27
最后登录
2015-1-4
16#
发表于 2012-4-15 10:58:11 |只看该作者
mark

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
69800
积分
128
帖子
52
主题
11
阅读权限
40
注册时间
2012-3-13
最后登录
2021-1-15
17#
发表于 2012-4-15 11:03:54 |只看该作者
mark!

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
73474
积分
1249
帖子
695
主题
30
阅读权限
60
注册时间
2011-10-22
最后登录
2015-11-6
18#
发表于 2012-4-15 11:33:34 |只看该作者
楼主可否把模型源码贴上来,让管理员及高手帮助你修改完善优化一下~~~~~~~~~~~~~~~~~

使用道具 举报

Rank: 4

精华
0
UID
26116
积分
377
帖子
84
主题
15
阅读权限
50
注册时间
2011-2-18
最后登录
2015-8-26
19#
发表于 2012-4-15 13:32:34 |只看该作者
这个模型后来没改了,频率太高,TB盘中有时候堵数据,就放弃了。这个模型的源码上面都有了。
现在琢磨的是15m和5m模型,效果不错,就是对下单处理还有些问题。

使用道具 举报

Rank: 4

精华
0
UID
26116
积分
377
帖子
84
主题
15
阅读权限
50
注册时间
2011-2-18
最后登录
2015-8-26
20#
发表于 2012-4-15 13:41:18 |只看该作者
liq77 发表于 2012-4-15 10:26
楼主能介绍一下模型原理吗?参数太多,自由度太高的系统没法持续获利的。。。 ...

系数多是因为加入了不同的指标,虽然用默认参数效果也还可以,不过想看看优化结果的。
最近的同样也使用了多个参数,唯一的欣慰是,参数的稳定性还不错,想法是跑优化结果,最后数据结果取收益中值部分的参数。以后随着行情和品种的变化进行调整。  这个是9000参数的收益的直方图,最后跑的值取中值部分的数值。
系统的效果还好,9000个测试正收益参数8930个左右。
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-10 23:57

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部