新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1472

 
ANDREY:
Pr是一个变量,以便在30点后只开1个订单。如果没有这个变量,它们会在每次打勾 时打开
if(OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0))
{LoU=Bid;}

所以你不需要这个变量......而且负载已经减少了)

 
MakarFX:
更糟糕的是......仍然需要知道酒吧的数量


我调整了...尝试

我做到了。这也是一样的。
你的代码。

double LoU,Pr;
int OnInit()
  {
   LoU=Low[0];
  }
//+------------------------------------------------------------------+
void OnTick()
  {
   if(Low[1]<LoU) {LoU=Low[1];}
   if ((Bid-30*Point)>=LoU)
     {
      if(OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0)) LoU=Low[0];
     }
  }


 
MakarFX:

所以你不需要这个变量......而且负载已经减少了)

也许我不需要它。但这不是我所纠结的问题.....

 
ANDREY:

可能没有必要。但这不是我所纠结的问题.....

1)如果你在为速度而奋斗,任何代码优化 都是加分项。

2)因为你在启动时没有LoU初始化,所以结果上的差异并不大......空白

 
MakarFX:
更糟糕的是......仍然需要知道酒吧的数量 。


我调整了...尝试

如果出价-低价[ ]> =30点,则开立一个订单。但是我们如何知道买入价高于这个低点[ ] 30个点之后,这个低点[ ] 数量
 
ANDREY:
或者,如果出价-低价[? ] >= 30 p.我们应该开一个订单。但我们如何知道Bid比Low[ ] 高30点后的Low[ ] 数量

而如果Bid 下跌,就意味着出现了新的低点......那么应该从哪个低点开始计算?

 
MakarFX:

1)如果你在为速度而奋斗,任何代码优化 都是加分项。

2) 因为你没有LoU初始化,结果的差异--在启动时不等于什么......空白

那么,如果我在声明LoU时 它赋值,代码就会运行得更快

我给它分配了2010年1月4日的第一个条形图的开盘价。

double LoU = 1.6121,Pr;
void OnTick()//531
{
if (Bid<LoU)
LoU=Bid;
//**************************************************************||TimeCurrent()==1262568096
if (Bid-LoU>=0.0030&&Pr!=LoU)
{
OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0);
Pr=LoU;
LoU=Bid;

}
}
 
MakarFX:

而如果Bid 下跌,就意味着新的低点......而低点又该如何计算?

让它下跌,最主要的是订单在30个点内打开。而在它被打开后,让价格下降,找到新的最低点。想象一下,我们有当前的买入价,它离Low[ 50]有30点的距离,我们可以开一个订单。 如果(买入价-Low[ 50]>30)-开一个订单,我们如何知道它是第50个蜡烛的低点?因此,在这种情况下,我们应该检查的不是局部最低点之前 的情况,而是它之后 的情况。
而在这种情况下,订单开出后,价格会下跌多少都不重要。

 
ANDREY:

我认为分形指标不适合我。它将错过许多订单。

我的代码所开的订单在每一个刻度上都有价格检查,以蓝色显示。在我看来,在这种情况下,一个分形并没有对我说什么必要的东西。

我举了一个分形作为例子。而你如何确定最低限度(在你的情况下)是一个军事秘密......或者你不明白我在问什么。

 
ANDREY:

让它下降,主要是订单将在30点内打开。而在开盘后,让价格下跌,找到一个新的低点。想象一下,我们有当前的买入价,它离Low[ 50]有30点的距离,我们可以开一个订单。 如果( Bid - Low[ 50]> 30) - 开一个订单。 但是如何检查它是否是第50个蜡烛的低点?因此,在这种情况下,我们应该检查的不是局部最低点之前 的情况,而是它之后 的情况。

你不需要计较条数

在订单打开后,给变量赋值Low[0](当前条形的最低值),在条形关闭后,如果Low[1]的值小于该变量,则赋值一个新的值。

如果不是,则保留旧值,即最小值。