有特定时间的蜡烛的开盘价。 - 页 2

 
Kane59:

当我看到EA像我想要的那样执行时,我很高兴!!。

非常感谢,非常感谢......

这是在回测中,因为市场已经关闭......

但是有一个问题。

Ea正确开仓,但买入时没有关闭,卖出时立即关闭。

你难道不想知道你的OrderClose()是否失败了,如果失败了,为什么不检查OrderClose()函数的返回值并报告任何错误?

什么是函数的返回值?我如何使用它们?

 

在Journal标签上没有错误。


我将放置返回值。我可以这样做吗?

Close = CloseOrder(....)

if (Close < 1)

Print ("Close Failed", GetLastError())
 
Kane59:

在Journal标签上没有错误。


我将放置返回值。我可以这样做吗?

Close有不同的含义 . . OrderClose() 返回一个bool . .

if ( ! OrderClose(....) )

Print ("Close Failed", GetLastError())
 
RaptorUK:

Close有不同的含义 ...... OrderClose() 返回一个bool ......


好的,好的,我会这么做的,谢谢 :)
 

我插入了。

if(OrdersTotal()>0)
            { 
               for(int i=OrdersTotal()-1; i>=0; i--)
               {
                  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
                  {
                     if(OrderMagicNumber() == MagicSH && OrderOpenTime() > iTime(Symbol(), PERIOD_H1, 1))
                     {
                        if(OrderType() == OP_BUY)
                        {
                           OrderClose(OrderTicket(),LotsSH, bid, 300, CLR_NONE);
                           {
                              if(! OrderClose(OrderTicket(),LotsSH, bid, 300, CLR_NONE))
                              {
                                 Print ("Close Buy Failed", GetLastError());
                              }
                           }
                        }
                        if(OrderType() == OP_SELL)
                        {
                           OrderClose(OrderTicket(),LotsSH, ask, 300, CLR_NONE);
                           {
                              if(! OrderClose(OrderTicket(),LotsSH, ask, 300, CLR_NONE))
                              {
                                 Print ("Close Sell Failed", GetLastError());

没有写出错误。

 
Kane59:

我插入了。

没有写出错误。

你不能关闭同一个订单两次......。

 OrderClose(OrderTicket(),LotsSH, bid, 300, CLR_NONE);            //  first attempt to close
    {
    if(! OrderClose(OrderTicket(),LotsSH, bid, 300, CLR_NONE))       //  second attempt to close
 

我解决了这个问题,循环条件没有正确编码......

再次感谢。

 

大家好。

我使用了WHRoeder给出的代码,但我看到EA只用了一个 "#define "来作为4个不同时间的参考。

    #define HR0900 23400    // 9*3600
    #define HR1500 54000
    #define HR1900 68400
    #define HR2300 59800

我尝试了不同的方法。

我用Int建立了一个数组大小,作为蜡烛的参考,结果是一样的,只有一个被认为是4个数字中的一个,我怎么才能解决它呢?

 
Kane59:

当我看到EA像我想要的那样执行时,我笑了!!!。

你做了什么来破坏WHRoeder 的代码?
 
Kane59:

. .......我怎样才能解决这个问题呢?

我想你需要展示你的代码。