OrderSend()函数中的一个错误?

 

我已经挣扎了四天了,我似乎无法实施一件看似简单的事情。我以前也用不同的指标和烛台做过类似的事情。我不能用腕表来做这件事。

精华是原始的!一旦价格接近某个时期的掩码,离i_thresholdFromMa(在这个EA中只有一个!)有一定的距离,就会设置一个悬赏。我已经删除了所有过去可用的功能和过滤器。

这里是购买功能。

//+-------------------------------------------------------------------------------------+
//| Открытие длинной позиции                                                            |
//+-------------------------------------------------------------------------------------+
bool OpenBuy()
{
   int ticket = -1;
   double OOP = fastMa + buyHear * pt;             // Получаем значение цны открытия
   
   if ((ND(OOP) - Ask) >= g_stopLevel)             // Проверка цену открытия на стоплевел          
   {
       if (ND(OOP) > Ask)           // Проверка что цена открытия выше Ask, т.к. у нас вход отложенником
       {
           Print("Bid = ", Bid);
           Print("Ask = ", Ask);
           Print("fastMa = ", fastMa);
           Print("Цена покупки = ", fastMa + buyHear * pt);
           Print("i_thresholdFromMa * pt = ", i_thresholdFromMa * pt);
           ticket = OrderSend(Symbol(), OP_BUYSTOP, 0.1, ND(OOP), 3, 0, 0, NULL, i_magic, 0);
       }
   }
   if (ticket > 0)
   {
       return (true);
   }
   else
    
   Alert (GetLastError());
}

我们可以看到,OrderSend()的开盘价等于变量fastMa + buyHear * pt 的总和。

在截图中,我们可以看到,没有这样的价格!

联合是在马什卡

你还可以看到,在价格触及fastMa(红色标记) 的地方,没有条目。

我特意取了第一个缓冲区,即倒数第二条,以确定倒数第二条已经收盘,不会再有收盘......我想避免最后的第0小节被重新录入。

因此,这就是该命令的信息。

ticket = OrderSend(Symbol(), OP_BUYSTOP, 0.1, ND(OOP), 3, 0, 0, NULL, i_magic, 0);

它是OOP。

double OOP = fastMa + buyHear * pt;             // Получаем значение цны открытия
这怎么可能呢?
附加的文件:
test_ma_1.mq4  9 kb
 
hoz:

我已经挣扎了4天了,我似乎无法实施一件看似简单的事情。我以前也用不同的指标和烛台做过类似的事情。我不能用腕表来做这件事。

精华是原始的!一旦价格接近某个时期的掩码,离i_thresholdFromMa(在这个EA中只有一个!)有一定的距离,就会设置一个悬赏。我已经删除了所有过去可用的功能和过滤器。

这里是购买功能。

我们可以看到,OrderSend()的开盘价等于变量fastMa + buyHear * pt 的总和。

在截图中,我们可以看到,没有这样的价格!

你还可以看到,在价格触及fastMa(红色标记) 的地方,没有条目。

我特意取了第一个缓冲区,即倒数第二条,以确定倒数第二条已经收盘,不会再有收盘......我想避免的是,最后一个零条不会被重新记录。

因此,这里是命令的信息。

A OOP。

这怎么可能呢?

你还是不打算把日志拿过来吗?
 
Vinin:

你还是不打算把日志给我吗?


以下是日志中的内容。

2013.02.06 17:54:05     2011.01.13 07:00  test_Ma_1 EURUSD,H1: open #3 buy stop 0.10 EURUSD at 1.31074 ok
2013.02.06 17:54:05     2011.01.13 07:00  test_Ma_1 EURUSD,H1: i_thresholdFromMa * pt = 0.0005
2013.02.06 17:54:05     2011.01.13 07:00  test_Ma_1 EURUSD,H1: Цена покупки = 1.3107
2013.02.06 17:54:05     2011.01.13 07:00  test_Ma_1 EURUSD,H1: fastMa = 1.3097
2013.02.06 17:54:05     2011.01.13 07:00  test_Ma_1 EURUSD,H1: Ask = 1.3099
2013.02.06 17:54:05     2011.01.13 07:00  test_Ma_1 EURUSD,H1: Bid = 1.3099
2013.02.06 17:54:05     2011.01.12 14:32  Tester: order #2, buy 0.10 EURUSD is opened at 1.29876
2013.02.06 17:54:05     2011.01.12 14:00  test_Ma_1 EURUSD,H1: open #2 buy stop 0.10 EURUSD at 1.29876 ok
2013.02.06 17:54:05     2011.01.12 14:00  test_Ma_1 EURUSD,H1: i_thresholdFromMa * pt = 0.0005
2013.02.06 17:54:05     2011.01.12 14:00  test_Ma_1 EURUSD,H1: Цена покупки = 1.2988
2013.02.06 17:54:05     2011.01.12 14:00  test_Ma_1 EURUSD,H1: fastMa = 1.2978
2013.02.06 17:54:05     2011.01.12 14:00  test_Ma_1 EURUSD,H1: Ask = 1.2978
2013.02.06 17:54:05     2011.01.12 14:00  test_Ma_1 EURUSD,H1: Bid = 1.2978
2013.02.06 17:54:05     2011.01.12 12:11  Tester: order #1, buy 0.10 EURUSD is opened at 1.29953
2013.02.06 17:54:05     2011.01.12 12:00  test_Ma_1 EURUSD,H1: open #1 buy stop 0.10 EURUSD at 1.29953 ok
2013.02.06 17:54:05     2011.01.12 12:00  test_Ma_1 EURUSD,H1: i_thresholdFromMa * pt = 0.0005
2013.02.06 17:54:05     2011.01.12 12:00  test_Ma_1 EURUSD,H1: Цена покупки = 1.2995
2013.02.06 17:54:05     2011.01.12 12:00  test_Ma_1 EURUSD,H1: fastMa = 1.2985
2013.02.06 17:54:05     2011.01.12 12:00  test_Ma_1 EURUSD,H1: Ask = 1.2987
2013.02.06 17:54:05     2011.01.12 12:00  test_Ma_1 EURUSD,H1: Bid = 1.2986
2013.02.06 17:54:04     test_Ma_1 inputs: i_TF=0; i_fastMaPeriod=10; i_magic=3333021; i_thresholdFromMa=5; buyHear=10; SellHear=10; 

也就是说,如果你相信日志,购买的地方应该是这样的。如果你看一下截图,它根本就不存在...上面的截图显示,挂单的位置是错误的。快马 的10元钱还差得远呢......。

 

你好,维克多!它为我打开,但它漏水。而当我把一条线调整了一下后,它就打开了。

   if ((ND(OOP) - Ask) >= MathMax(g_stopLevel,g_spread))// Проверка цену открытия на стоплевел          
为Sall添加同样的内容!好运!
 
borilunad:

你好,维克多!它为我打开,但它漏水。当我把一条线调整一下时,它就打开了。

我也想为Sall补充一下!好运!


你好,鲍里斯。好吧,它在以前的地方开放。没有打开的地方,还是没有打开。它在H1 上的工作非常奇怪。

我切换到M15,在0(零)条上将掩码设置为MODE_OPEN

一般来说,如果我们观察,挂单被放在需要的地方(我指的是在M15 TF,但挂单没有放在明显应该打开的地方。这里有一个截图为例。

一个有停顿的关节

borilunad

你好,Victor!我把它打开了,但它让我很生气。

鲍里斯,它将...我的意思是,这只是第一个阶段...离终点线还有很长的路要走。所有的条件都会在以后出现,而且会逐渐决定。目前,我们只需要解决目前的细微差别。
 
hoz:


嗨,鲍里斯。好吧,它在以前的地方开放。没有打开的地方,仍然没有打开。它在H1 上的工作非常奇怪。

我改用M15,在0(零)巴上将手腕设置为MODE_OPEN

一般来说,如果我们观察,挂单被放置在需要的地方(我指的是M15 TF,但挂单没有放置在明显应该打开的地方。例如,这里有一个屏幕截图。

鲍里斯,而且他将...我的意思是,这只是第一个阶段...离终点线还有很长的路要走。所有的条件都会在以后出现,并且会逐渐决定。目前,我们只需要解决目前的细微差别。

维克多,我们应该研究在EA中使用的指标和方法。在我看来,你想要的东西你不知道如何实现。

还有一点,你不应该拘泥于非常严格的条件,因为在一半的情况下,价格肯定不会按照你想要的方式表现。所以你必须想象在最坏的情况下你能做什么。

坦率地说,我仍然不明白为什么在这一栏输入而不是在另一栏输入对你来说很重要。在我看来,最主要的是要及时识别和利用已经开始的趋势,而不是某一个进入点。试着比较不同的Mashkeys,然后学会把它们作为不需要的进场的过滤器,而不是进场的信号,这往往是失败的,其他的指标也没有更好的!

 
尝试绘制i_thresholdFromMa和t 的值,并在测试器中观察,比较的结果也可以在那里绘制。
 
hoz:


以下是日志中的内容。

也就是说,如果你相信日志,购买的地方应该是这样的。如果你看一下截图,它根本就不存在...上面我给了一张截图,你可以看到挂单在错误的地方。快马 的10号车离那里还远着呢......。


从日志来看,OrderSend()函数 在你传递的价格上正确放置了订单
 

PapaYozh:



从日志来看,OrderSend()函数正确地以你传递的价格下了订单。

是的!!!。

快马的10元钱还远远不够......

你有一个100点的套装。

更多屏幕截图,它是正确的。

 
r772ra:

是的!!!。

快马的10元钱还远远不够......

你有100个P的设置。

再来一张截图,就这样了。


相对于4位数,它是10pp。而在5位数上则是100pp。这有什么不对吗?
 
PapaYozh:

从日志来看,OrderSend()函数正确地以你传递给它的价格下了订单


从日志来看,它是正确的。但是,如果你试图用同样的设置来使用测试器,订单就不能定期正确下达,这一点我已经说过了......这就是我所写的。我看了日志,一切都很清楚......。看了一下截图...(当我看图表时,我注意到 买入点比买入点低......这与条件相反。

但也很奇怪,我在M5上没有注意到这一点,但已经注意到有些条目被漏掉了。