专家顾问 - 杂项问题 - 页 19

 

#OrderType() string - Open

下面的代码给了我'1'的卖出订单类型,但我需要得到订单类型中的一个'卖出,买入等',我不想得到数字。
我需要有用的评论,请,谢谢。

IntegerToString( OrderType() );
 

使用开关命令。

switch (OrderType())
{
case OP_SELL:
  
break;

case OP_BUY:

break;
}
 
Marco vd Heijden:

使用开关命令。

谢谢你的意见,我很快就会尝试。
 

如果你想进一步简化事情,你也可以使用#define指令。

#define buy  OP_BUY
#define sell OP_SELL
if(OrderType()==buy)

if(OrderType()==sell)
 
honest_knave:

如果你想进一步简化事情,你也可以使用#define指令。

我已经使用了#define,它是从William先生 那里复制来的pip和point代码。
所以在你的评论之后,我对它进行了一些研究,我想我可以在我的任何脚本中使用它。

谢谢你的有用评论

 
Marco vd Heijden:

使用一个开关命令。

谢谢你,伙计。

我是第一次为我的这个EA尝试切换操作员。
所以我想说的是,我在这方面学得比较多,但我对这个操作没有经验。

在我在测试EA之前,我只想问一下,你的意思是我可以使用下面的代码吗?(我的测试EA已经有500行了 - 而且我打算把OrderType() 转换为字符串,这让我很困惑。)

for ( ... )
{
    switch ( OrderType() )
    {
        case    0  :    ObjectCreate( ... name + " Buy" ... );
                        ObjectSetInteger(chart_ID,name + " Buy",OBJPROP_COLOR,clr);
                        // ...
        break;
        case    1  :    ObjectCreate( ... name + " Sell" ... );
                        // ...
        break;
    }
}

谢谢你。

// -- 第二次编辑

也许我的担心并不明确。
我已经为这个问题花了很多时间,我真的在玩这个操作,但没有结果。

下面的代码给了我数字。

Print( "OrderType: ", IntegerToString( OrderType() ) );

// EURAUD,M30: OrderType: 0

但我试图得到以下结果。

// EURAUD,M30: OrderType: Buy

我只是需要有用的评论
你能帮助我吗(/给我建议),请?

 

身份证

价值

说明

OP_BUY

0

买入操作

OP_SELL

1

卖出操作


    switch(OrderType())
     {
      case 0:
       Print( "OrderType: buy" );
      break;
      
      case 1:
       Print( "OrderType: sell" );
      break;
     }

   if(OrderType()==0)
     {
      Print("OrderType: buy");
     }

   if(OrderType()==1)
     {
      Print("OrderType: sell");
     }
 

非常感谢@Marco

我终于明白了,但我以为我会写一个 "转换函数"的代码......我错误的期望让我困惑。
在这个时候,我正在使用3个 "HLine "对象,现在我把它复制到两种情况(0和1)。到目前为止,它运行良好。
另外,"订单属性"有6个值,所以我想把相同的(如对象、颜色、样式、宽度等) 打印函数 应用于0、2、4。

问: 我可以使用下面的方法吗?

(打印功能 只是举例 )

switch ( OrderType() )
{
    case 0: Print( "OrderType: buy" );
            // ...
    break;

    case 2: Print( "OrderType: buy" );
            // ...
    break;

    case 4: Print( "OrderType: buy" );
            // ...
    break;
}

非常感谢

 

不,因为这些值是。

ID

价值

说明

OP_BUY

0

买入操作

OP_SELL

1

卖出操作

OP_BUYLIMIT

2

买入限价挂单

OP_SELLLIMIT

3

卖出限价 挂单

暂停买入

4

买入止损挂单

卖出止损单

5

卖出止损挂单


所以情况2和情况4不等同于OP_BUY

它们是OP_BUYLIMIT和OP_BUYSTOP,所以它们是不同的东西。

除非这是你的意思,但可以说清楚的是

switch ( OrderType() )
{
    case 0: Print( "OrderType: buy" );
            // ...
    break;

    case 2: Print( "OrderType: buy Limit" );
            // ...
    break;

    case 4: Print( "OrderType: buy Stop" );
            // ...
    break;
}
 
Marco vd Heijden:

不,因为这些值是。
所以案例2和案例4不等于OP_BUY

#OrderType() string - 关闭

在你的最新评论之后,我觉得我不能将案例0、2、4合并。
谢谢@Marco vd Heijden 的时间和帮助。