EA: 杂项问题 - 交易策略 - 页 2

 
Marco vd Heijden:

是的,在orderselect循环中使用过滤器。

当你运行另一个检查时,别忘了将其重置为0,否则会加倍。
事实上,我已经试过OrderSymbol() == Symbol() 有点不同。
我很快就会尝试,非常感谢您的及时回复。
 
Marco vd Heijden:

是的,在一个orderselect循环中使用过滤器。

当你运行另一个检查时,别忘了把它重置为0,否则它会加倍。

对不起,你是说像这样的吗?

以下方法对我不起作用。

int orders = 0;
for( int i = OrdersTotal() - 1; i >= 0; i-- )
{
    if( ! OrderSelect( i, SELECT_BY_POS, MODE_TRADES ) ) continue;

    if( OrderSymbol() == Symbol() )
    {
        Print( "count orders: ", orders );
        orders++;
    }
}

---

我的目的是,如果图表符号订单等于0(零),那么做一些事情,否则跳过这个if()。

if( Chart symbol order == 0 ) // I can't get correct counts for Chart Symbol Orders
{
  // calculate something
  // check something for Sell
  // check something for Buy
  // ...
}

谢谢你的建议。

 
Max Enrik: 以下方法对我不起作用。
"不工作 "是没有意义的--就像说汽车不工作一样。不能启动,不能挂档,没有电,钥匙丢失,轮胎爆胎--毫无意义。这里没有读心术。
 
whroeder1:
"不工作 "是没有意义的--就像说汽车不工作一样。不能启动,不能挂档,没有电,钥匙丢失,轮胎爆胎--毫无意义。这里没有读心术。

是的,它对我不起作用。
我将这部分代码用于我的平仓订单功能,没有任何问题。

但现在我需要获得图表符号未结订单的数量。那部分代码对我的目的不起作用。我在下面的代码中明显提到了这一点。

if( Chart symbol order == 0 ) // I can't get correct counts for Chart Symbol Orders / I meant I do not know how can I get counts of Chart Symbol Orders.
{
  // ...
}
 

这是正确的方法,所以如果订单保持为零,你应该能够让它工作。

int orders = 0;
for( int i = OrdersTotal() - 1; i >= 0; i-- )
{
    if( ! OrderSelect( i, SELECT_BY_POS, MODE_TRADES ) ) continue;

    if( OrderSymbol() == Symbol() )
    {
        Print( "count orders: ", orders );
        orders++;
    }
}

if( orders == 0 ) // I can't get correct counts for Chart Symbol Orders
{
  // calculate something
  // check something for Sell
  // check something for Buy
  // ...
}
 
Marco vd Heijden:

这是正确的方法,所以如果订单保持为零,你应该能够让它工作。


在我做了一点改动后,它现在对我有用了。

谢谢你,马可先生。

 

首先,我的2个自动订单得到了50点和100点。盈利和亏损是50/50(1:1的比例)。

太神奇了!简单和更好的交易策略 - 很好的改进。

ǞǞǞ
 

我试图使用下面的代码来处理EA交易时间,即只有EA交易在特定时间内运行。但是EA交易在晚上11点运行。

问: 请问我在交易时间上错过了什么?

void OnTick()
{
    // below trading Hours just for example
    if( Hour() >= 10 && Hour() < 12 ) return;

    Runs();
    //---
    return;
}

关于交易、自动交易系统和测试交易策略的论坛

只在市场时间内交易(亚洲、英国、英国/美国)

whroeder1, 2012.05.03 18:41

  1.  if(Hour()>=0 && Hour()<22)
    // if(Hour()>=0 && Hour()<=22)
      {
       return(true);
      }
      else
      {
        return(false);
      }
    //// or Simplify ///
    return( Hour()>=0 && Hour()<22 );

  2. 如果你指的是允许一个范围的代码,请看我的代码

我正在研究,请帮助我。

 
Max Enrik:

但EA交易在晚上11点运行。

问: 请问我错过了什么交易时间?

我正在努力,请帮助我。

你所遗漏的是10 <= 11 < 12
 
whroeder1:
你所忽略的是,10 <= 11 < 12

对不起,我不明白。