[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 74

 
Mathemat:

一个8个点的数组是M[8][2],而不是M[8][8]。

"任何三个 "是预选的,还是什么?


嗯,是的,这个数组当然是M[8][2]。任意三个是在计算过程中必须定义的数组中的任何一个。我们可以用稍微不同的方式来表述:我们需要找到一个圆心的坐标 和尽可能接近该圆的三个点的坐标。
 
 
atztek:


然后是OrderOpenPrice()。


所以它将自己定义它?
 
Myth63:

所以他要自己识别?
你说 "它会找到它 "是什么意思?
你看一下未平仓的订单,对于每个订单,OrderOpenPrice()命令给出了订单开仓时的价格值。
把它的值分配给某个变量并使用它。
 
Elenn: 嗯,是的,这个数组当然是M[8][2]。任意三个是任何一个数组,在计算过程中应该被定义。

简而言之,问题可归结为:有三点。你必须画一个半径为r的圆,使它们到圆的距离的平方之和最小。

实际上,这是一个大任务,不是一个可以匆忙解决的问题。一个圆不是一条直线。在这两个距离中采取哪一个,一点也不明显。

那么,这里有一个具体的例子。

显示正确的安排。

 
atztek:
你的意思是 "它将检测到它"?你看一下未平仓的订单,对于每个订单,OrderOpenPrice()命令给出了订单开仓时的价格值。将其值分配给某个变量并使用它。




我是这样理解的。它只是会自动设置并使用它来检查。?

for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) 。

如果(OrderType()== OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNum2)
{
if ( Ask>(OrderOpenPrice()+(AD1*Point))
{
OrderClose(OrderTicket(,OrderLots(),Ask,3,Black);
return(0);

}

似乎是正确的?

 
Myth63:


我是这样理解的。它只是会自动设置,用它来检查。?

for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) 。

如果(OrderType()== OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNum2)
{
if ( Ask>(OrderOpenPrice()+(AD1*Point))
{
OrderClose(OrderTicket(,OrderLots(),Ask,3,Black);
return(0);

}

似乎是正确的?

并非如此。如果没有选择订单呢?发送交易订单 时,价格的正常化在哪里?

订单是在 一个循环中关闭 的,这意味着搜索不应该从零开始,而应该从OrdersTotal()-1到>=0进行。

 
Mathemat:

简而言之,问题可归结为:有三点。你必须画一个半径为r的圆,使它们到圆的距离的平方之和最小。

这其实是一项大任务,不是你一眨眼就能完成的。一个圆不是一条直线。在这两个距离中采取哪一个,一点也不明显。

嗯,一个具体的例子。

显示正确的安排。


我想是的。
 

Elenn: Думаю, что так:

不,我不会承担这样的任务。在计算过程本身中,你必须决定采取哪些距离(从任何一点到圆有两个距离)。没有什么好看的。

也许GA可以帮助找到这里的当地最低标准。但我并不擅长这个。

P.S. 你没有指定目标函数--距离的平方之和或距离本身之和。

 
Mathemat:

这其实是一项大任务,不是你一眨眼就能完成的。一个圆不是一条直线。

我明白,这项任务并不容易。我不想把问题简化为对 "三 "的所有可能变体的愚蠢搜索。据我所知,带有直线的变体也会 "参与 "所有的点,但不是其中的三个。你认为一条线的变体可以是什么样子的,以便从三个 "最佳 "点到这条线的距离之和最小?