关闭职位。开启指示信号。 - 页 7

 
发布一个关于开盘价 的测试。 我自己也有这样的想法(从今年年初开始):我在思考如何减少回撤。我的专家顾问是模拟的,我在一个星期内赚了50%的存款(没有MM)。也许我们可以交流一下经验。
 

该专家对所有蜱虫都有效。完全不在开盘价 上。下载中--2月8日的测试

附加的文件:
1111_1.zip  72 kb
 
例如,我在测试器中的ticks显示的图片和你的一样,但当我用条形图测试时,就有点不同了,更接近现实(我和演示比较过)。这只是我的经验(我基本上是个初学者)和我的观察。也许我从根本上说是错的,这一点不可否认。 我不知道这是否是一个巧合,但这是我在模拟账户中的照片:IMHO,与你的非常相似 :)
 

我还没有时间去记录收件箱。而且我在周末没有收件箱工作。我不太明白。测试应在该模式下进行,该模式在专家顾问的代码中使用。如果该算法意味着在所有的点位上工作,那么 "通过开盘价"进行测试是不正确的。你只是在愚弄自己。

你需要了解为什么在不同的模式下结果是不同的。同时,"按开盘价 "是一个更糟糕的结果。通常情况下,情况恰恰相反。

此外,如果专家顾问 "按开盘价 "工作,测试结果必须与 "按所有点位 "的结果相吻合。几乎重合。

 

这都是关于测试人员的蜱虫发生器。那里的条件很理想。例如,进入条件:a = 1.5001。在测试器中,它将是100%的真实,但在现实中可能不是。价格可以从1.4999跳到1.5003,每1点。条件是错过了,交易没有打开。如果我错了--请纠正我,我将不胜感激。

这是我的蜱虫 测试。

初始存款 700.00



净利润 6157.73

最大缩水 74.80 (1.50%)

开盘价

初始存款 700.00



净利润 1304.47

最大缩水 514.82 (29.40%)
----

我已经在我的专家顾问中提供了在ticks/bars之间的切换。当然,当启用条形图开盘控制时,在刻度线和条形图中的测试是吻合的。这幅图与上面的开盘价所画的一样。

 
Lukyanov:

这是测试者的嘀嗒声发生器。价格可以从1.4999跳到1.5003每格。错过了这个条件,交易没有打开。

是的,这是有可能的。尽管如此。我认为测试一个专家顾问在开盘价 的所有点位上工作是不可接受的。而且我们会在大的时间范围内获得不可靠的数据。相反,如果这个专家在开盘价上工作,那么测试 "在所有点位 "是可能的,并且有必要.....。

还有一个参数是关于滑移量的--extern int Slippage=...。

 
滑点是一回事,但条件是:如果a=1.5000就开盘,则是另一回事。
 

大家下午好!这个问题可能看起来很天真,但这是让我陷入困境的原因......

我有一个指标,我想在我的专家顾问中使用。以下是图表。以下是代码。

#property copyright "Copyright © 2006 , David W Honeywell , 12/12/2006"
#property link      "HellOnWheels.Trans@gmail.com"

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red

#property indicator_maximum 100.0
#property indicator_minimum   0.0

#property indicator_level1 70
#property indicator_level2 50
#property indicator_level3 20

extern int IndicatorTime =  0;
extern int RSI_Periods   = 14;
extern int Applied_Price =  0;
extern int LineWidth     =  4;

double Buffer0[];
double Buffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,LineWidth);
SetIndexBuffer(0,Buffer0);

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,LineWidth);
SetIndexBuffer(1,Buffer1);

IndicatorShortName(" ColorRSI ( "+RSI_Periods+" )");

return(0);  
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

int start()
{
  
  int     counted_bars=IndicatorCounted();
  double  RSIValue;
  int     i;
  int     limit;

  limit = Bars-counted_bars;
  
  for(i=limit; i>0; i--)
   {
     RSIValue=iRSI(Symbol(),IndicatorTime,RSI_Periods,Applied_Price,i);
    if (RSIValue > 50.00000000)
     {
       Buffer0[i] = RSIValue;
       Buffer1[i] = EMPTY_VALUE;
       if (Buffer0[i+1] == EMPTY_VALUE) Buffer0[i+1] = Buffer1[i+1]; 
     }
    else
     {
       Buffer0[i] = EMPTY_VALUE; 
       Buffer1[i] = RSIValue;
       if (Buffer1[i+1] == EMPTY_VALUE) Buffer1[i+1] = Buffer0[i+1]; 
     }
   }

//---- done
  
  return(0);
}

 

我不知道如何设置从红色变为绿色的条件,反之亦然。

还有,我如何设置i自定义表达式来实现这个过渡...如果你知道,请回答...

 
if ( Buffer0[i+1] != EMPTY_VALUE && Buffer0[i+2] == EMPTY_VALUE )
{
  // началась зеленая линия
}
它或多或少是这样的