[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 235

 
FinBuda писал(а)>>

你好,我向有识之士求助,我的指标不愿意按流程绘制,我必须不断地切换框架来更新到最后一个条形图,如何才能解决这个缺点?我非常感谢它。

没有第二个指标,你就无法测试它。

 
Vinin >> :

如果没有第二个指标,仍然没有办法检查。

对不起!我站在正确的位置 :)

附加的文件:
indu2.mq4  3 kb
 
FinBuda писал(а)>>

对不起!我站在正确的位置 :)

当然,它可以工作,但刹车很糟糕。有必要将辅助指标的计算转移到主指标。一般来说,最好是优化计算。

附加的文件:
norms2.1.mq4  4 kb
 
Vinin >> :

当然,它可以工作,但刹车很糟糕。有必要将辅助指标的计算转移到主指标。一般来说,最好是优化计算。

非常感谢您的帮助!还有一个问题,我怎样才能优化计算,怎样才能最好地使MACD正常化,在一定范围内运行?我只是远离细节和编程,这就是为什么我只能找到一个或多或少合适的规范化器,见上文 :)

 
FinBuda писал(а)>>

非常感谢您的帮助!还有一个问题,我怎样才能优化计算,怎样才能最好地使MACD正常化,在一定范围内运行?我只是远离细节和编程,这就是为什么我所能找到的或多或少适合的东西是上面显示的正常化器 :)

可能有许多优化选项。我并没有真正进入代码。

 
FinBuda >> :

非常感谢您的帮助!我还有一个问题,优化计算的最好方法是什么,如何将MAKD归一化,使其保持在我定义的范围内?我只是远离硬件和编程,这就是为什么我所能找到的或多或少适合的东西是上面看到的正常化器 :)

你正在使用代码库上发布的一个变体,它只是一个概念,没有进行性能优化。出于实际目的,我建议从外部变量中手动设置特性周期变量,选择它的方式是,在给定的周期数中,主要指标出现3-4个完整的周期。

//+------------------------------------------------------------------+
//|                                                   Normalizer.mq4 |
//|                                          Copyright © 2008, al_su |
//|                                                  al_su31@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, al_su"
#property link      "al_su31@mail.ru"

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_maximum 1
#property indicator_minimum -1
#property indicator_level1 0.25
#property indicator_level2 0.5
#property indicator_level3 0.75
#property indicator_level4 -0.25
#property indicator_level5 -0.5
#property indicator_level6 -0.75
#property indicator_color1 RoyalBlue
//---- input parameters
#define PERIODS_CHARACTERISTIC 3

extern string  Indicator="ind-2";
extern int     mode=0;
extern int     param1=8;//Ну или 9, не важно...
extern int     param2=34;
//extern int param3;Скока надо параметров, стока и задаем
extern double  characteristic_period; //как видите, переменную вынесли вовне

//---- buffers 
double Normalizer[];
double sigma;

//-------------------------------------------------------------------------------
double Indyuk(int shift)
{
   return (iCustom(0,0, Indicator, param1, param2,/*param3, и т.д.:)*/ mode, shift));
}

double MathTanh(double x)
{ 
   double exp;
   if( x>0)  {exp=MathExp(-2* x);return ((1-exp)/(1+exp));}
   else {exp=MathExp(2* x);return ((exp-1)/(1+exp));}
}

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   IndicatorShortName("Normalized "+ Indicator);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0, Normalizer);
   SetIndexDrawBegin(0, characteristic_period);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int   i, j, limit, counted_bars=IndicatorCounted();
   double S;
   if( counted_bars>0) counted_bars--;
   limit=MathMax(Bars- counted_bars-1,0);
//----
   for( i= limit; i>=0; i--)
   {
      S=0;
      for( j=0; j< characteristic_period; j++) S+=MathPow( Indyuk( i+ j),2);
      S/= characteristic_period;
      S=MathSqrt( S);
      if( S>0) Normalizer[ i]= Indyuk( i)/ S;
      Normalizer[ i]= MathTanh( Normalizer[ i]);
   } 
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
alsu >> :

另一个选项--我个人更经常使用--是在外部指定运行的天数,并在指标正文中把它们转换为characteristics_period

...

extern double days_for_normalization=3;   // например, смотрим за три дня

...

int init()
{

...


characteristic_period=1440./Period()* days_for_normalization;   // 1440 - это количество минут в сутках
}
 
一般来说,Vinin 是对的,如果第二个指标的代码被插入到第一个指标中,计算确实会更快。这里的缺点是,你必须做更多的编码(而你从kodobase上拿的东西是展示如何简化这项工作的目的之一),另外第二个指标占用了第一个指标的缓冲区,这并不总是可以接受的。
 
谢谢大家的帮助!!。让我们试一试吧 :)
 

这是不可行的......当你看到这里所有的这些EA,但我只有MM,我想有一点成熟的期望+.... eh......


在很长的时间间隔内,如果不进行优化,数学期望值-0.12是否正常?我的意思是,每个人都是在没有优化的情况下得到它,然后期望值通过拟合上升,或者这不是一个选项,我应该完全改变EA?

原因: