任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 212

 
solnce600:

谢谢你的帮助,我先去吸点氧气,然后再解读你的建议。

也许你可以给我一些更具体的建议,或者修复我的代码中的一个片段。

然后它就会在我的大脑中留下痕迹,我就不会再犯同样的错误。

谢谢。(笑)。



要修复任何部分,你必须写一个ToR,你准备好了吗?
 
ALXIMIKS:

问题:当选择OrderSelect时,订单历史中最后关闭的订单是什么?

1) 零 "0"。

2) 最后的 "OrderHystoryTotal -1"

3) 随机

4) 取决于订单的开启时间(那就更接近于1或2?)

你绝对确定,订单在列表中的位置是这样的吗?如果历史在一个不愉快的时刻被重新洗牌,其中的命令开始被不同的定位,那该怎么办?最可靠的方法是通过时间找到极端的那一个,而不是通过你头脑中的假设...

为测试人员制作玩具是一回事,但在现实世界中工作是另一回事。让他习惯于考虑到所有可能 "突然 "发生的隐患......。

 
ALXIMIKS:

问题:当选择OrderSelect时,订单历史中最后关闭的订单是什么?


https://www.mql5.com/ru/forum/131859/page4#434227
 
solnce600:

如果你能结合我的例子解释 "在你的手指上",我将非常感激。

我的逻辑有问题的地方。我不明白这到底是怎么回事。

谢谢你。



如果(你的第一个条件)

{

//将有

// 执行

// 所有

// 这些

// 字符串,只有当

//你的第一个条件 为真

}

// 这一行在任何情况下都会被执行



如果(你的第二个条件)

// 这个字符串只有在你的第二个条件 为真时才会被执行。

//这个字符串在任何情况下都会执行,即使 你的第一个条件 返回错误。

//即使你的第二个条件 返回错误,这个字符串也会保持为真。


 
Vinin:

要修复任何部分,你必须写一个ToR,你准备好了吗?
还没有。
 
artmedia70:

你绝对确定订单是这样被放在清单中的吗?如果在某个不愉快的时刻,历史被重新洗牌,其中的订单开始有不同的定位,怎么办?最可靠的方法是通过时间找到最后一个,而不是通过你脑海中的假设猜测...

为测试人员制作玩具是一回事,但在现实世界中工作是另一回事。让他习惯于考虑到所有可能 "突然 "发生的事情......。


这个问题不大正确((

每次在开盘前都去看所有已关闭的订单,意义不大。

我们能做什么?那么,最后一个关闭的订单的数据应该保存在一个文件中,并在关闭的订单总数发生变化时更新。(这已经代表了某种经济)。

如果历史上有1000或5000个订单怎么办?订单历史是否被清理过,还是总是被清理掉? 如果是这样,由谁来清理?

我问OrderSelect的哪一部分会包含最后关闭的订单,因为当历史记录增加时,会增加搜索所需的时间。

我只是想缩小搜索范围。

 
digits:

下午好。

我的策略考虑到了价差,价差是由一个函数定义的。

但由于策略测试器中的点差是恒定的,我需要一个随机点差模拟器。我想在80%的情况下模仿测试器中2到3点(4位数)范围内的传播变化,在20%的情况下模仿超过3点的传播。也许你有一些如何实现这一想法的想法,或者一些解决这一想法的链接。


可能没有人对这个话题感兴趣,但为了征求你的意见,我将发布一个点差只有2或3个点的版本。

double Spread_(){
   int compare = 0;
   int MaRand = 0;
   double sp = 0.0;
   double spread = 0.0;
     if (IsTesting() == TRUE){
         MathSrand(OrderTicket() + TimeLocal() / Bid);
         MaRand = MathRand();
         MaRand = MaRand % 2;
         if(MaRand == compare){
         sp = 2.0;
         }else{
         sp = 3.0;
       }
       spread = sp;
    }else{
       RefreshRates();
       spread = MathRound((Ask - Bid) / Point);
     }
   return(spread);
}  

 
digits:

可能没有人对这个话题感兴趣,但为了你的意见,我将发布一个版本,其中的差价只有2或3分。


你应该改变你的头像。让它变成中性的东西。禁止链接。
 

大家好,谁能给出一个明确的答案呢!!!?技术-分析+马丁

我找遍了整个网络,没有找到一个明确的答案,如果有人有任何信息,请告诉我。

 
artmedia70:

如果(你的第一个条件)

{

// 将有

// 执行

// 所有

// 这些

// 字符串,只有当

//你的第一个条件 为真

}

// 这一行在任何情况下都会被执行



如果(你的第二个条件)

// 这个字符串只有在你的第二个条件 为真时才会被执行。

// 这个字符串在任何情况下都会执行,即使 你的第一个条件 返回错误。

//这个字符串在任何情况下都会执行,即使你的第二个条件 返回错误。



如果我明白我的第一和第二条件是什么,以及总是执行的字符串--我就会接近解决这个谜题。

这是第一个条件

如果((ot==0))
&&(Bid==Price)
&&(Open[1]-Close[1]>100*Point&&Open[1]-Close[1]<120*Point)
&&(High[1]-Open[1]>40*Point&&High[1]-Open[1]<60*Point)
&&(Close[1]-Low[1]>40*Point&&Close[1]-Low[1]<60*Point))

这是第二个条件

如果(isCloseLastPosByStop(Symbol(), OP_BUY, Magic, Lot))

这是一个将永远被执行的字符串

return(0);

对吗?