初学者的问题 MQL5 MT5 MetaTrader 5 - 页 962

 
Artyom Trishkin:

编译器没有发誓,但警告说你试图把double放到int中。


一张关于这个主题的伟大图片--很有趣,谢谢。

 
Alexey Viktorov:

也可以尝试DRAW_COLOR_CANDLES

谢谢你,我会试一试的。
 
Alexey Viktorov:

也可以试试DRAW_COLOR_CANDLES

DRAW_COLOR_CANDLES并不改变宽度,尽管它存在于示例文档 中(#property indicator_width1 1)。因此,将一支蜡烛叠加在另一支蜡烛上是行不通的。

 
Nauris Zukas:

DRAW_COLOR_CANDLES并不改变宽度,尽管它存在于示例文档 中(#property indicator_width1 1)。因此,将一支蜡烛叠加在另一支蜡烛上是行不通的。

你可以以像素为单位计算条形图的宽度,并使用这个值来确定直方图的厚度。总而言之,如果你想...

 
Alexey Viktorov:

你可以以像素为单位计算条形图的宽度,并使用这个值来确定直方图的厚度。总而言之,如果你想...

"......以像素为单位的条形宽度...... "我不太明白该怎么做。

 
Nauris Zukas:

"......以像素计算条的宽度...... "我不太明白怎么做。

总之,如果你想,你必须检查你得到什么。我没有测试过,因为想要一个理由......

规模

以每条的像素数指定比例的模式


图表宽度(以像素 为单位)/ 图表宽度(以条为单位) 当设置了从图表右边缘开始的缩进时,这可能不起作用。

 
Alexey Viktorov:

总之,如果你想,你必须检查你得到什么。我没有测试过,因为想要一个理由......

规模

以每柱的点数为单位的刻度模式


图表宽度(以像素 为单位)/ 图表宽度(以条为单位) 当设置为缩进图表的右边缘时,这可能不起作用。

谢谢你。

 
帮助我,善良的人们...
我在测试器中遇到了这样的混乱。
当试图把过滤器按价差水平进入市场时。测试员不理会它(传播)。
但它只忽略了过去6个月的情况。5(最后)个月测试正常,过滤器。
我在某处读到,测试者账户以自己的方式传播,使其无法过滤。
但令人困惑的是,在过去的5个月里,它仍然把它考虑在内,并以友好的方式处理它......。
附上屏幕截图。
问题是这样的。
这是测试器的一个特点吗? 或者它有一些我不知道的设置?
或者说,这个条件需要作为一个软件来设置?

我是这样写测试的过滤器的...

void OnTick()
  { 
  double ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK); 
  double bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
  double spread=ask-bid; 
  
  if (PositionsTotal()>=1) 
  return;
  {
  int spread_points=(int)MathRound(spread/SymbolInfoDouble(Symbol(),SYMBOL_POINT)); 
  if (spread_points<=5)
  {
  trade.Buy(0.1,_Symbol,ask,bid-300*_Point,bid+300*_Point);
  }
  }
  }

嗯......我就是这么写的)。

附加的文件:
 
vladzeit:
帮帮我吧,善良的人们......。
我在测试器中遇到了这样的混乱。
当试图把过滤器按价差水平进入市场时。测试员不理会它(传播)。
但它只忽略了过去6个月的情况。在5个月的时间里,测试器测试正常,它可以过滤。
我在某个地方读到,测试器有自己的计算方式,使其无法过滤。
但令人困惑的是,5个月来,它仍然把它考虑在内,并以友好的方式处理它......。
附上屏幕截图。
问题是这样的。
这是测试器的一个特点吗? 或者它有一些我不知道的设置?
或者说,这个条件需要作为一个软件来设置?

我是这样写测试的过滤器的...

嗯...我就是这么写的)

你应该在" 基于真实刻度的每个刻度"模式下进行测试。

//+------------------------------------------------------------------+
//| "Tick" event handler function                                    |
//+------------------------------------------------------------------+
void OnTick()
  {
   double ask  = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
   double bid  = SymbolInfoDouble(Symbol(),SYMBOL_BID);
   long spread = SymbolInfoInteger(Symbol(),SYMBOL_SPREAD);

   if(ask==0.0 || bid==0.0 || spread=0)
      return;

   if(PositionsTotal()>0)
      return;

   if(spread_points<=InpSpread)
     {
      trade.Buy(0.1,Symbol(),ask,ask-300*Point(),ask+300*Point());
     }
  }

InpSpread - 输入长参数。

 
Vladimir Karputov:

" 基于真实刻度的每个刻度"模式下进行测试。

InpSpread - 输入长参数。

谢谢你,弗拉基米尔,我已经设置了输入长。

input long  InpSpread =5;
spread=0 //поправил, на == это ведь сравнение?
if(spread_points<=InpSpread) // поправил на spread

一切正常,但它仍然只过滤5个月的传播。 我尊重" 基于真实蜱虫的每个蜱虫"。

也许是因为MetaQuotes 的缘故 我现在要试试其他的