我怎样才能获得订单打开后的最高价。 - 页 2

 
开始学习代码吧,不要再敲打你的主题了。
 

我需要一点帮助,然后一切都会好起来的。(我需要知道买入的最新订单,卖出的最新订单和任何买入或卖出的前一个订单)。

谢谢你的帮助。

int LastOpenTicketForBuy(){
    datetime lastTime  = 0;
    int      lastTicket = -1; // None open.
    int magi.number=0;
    //for(int pos=0; pos<OrdersTotal(); i++) {
      OrderSelect(pos, SELECT_BY_POS);
    for(int pos = OrdersTotal()-1; pos >= 0 ; pos--) if (
        OrderSelect(pos, SELECT_BY_POS)                 // Only my orders w/
    &&  OrderMagicNumber()  == magic.number             // my magic number
    &&  OrderSymbol()       == Symbol()                 // and my pair.
    &&  OrderOpenTime()     >  lastTime
    && OrderType()==OP_BUY
    ){
      lastTime   = OrderOpenTime();
      lastTicket = OrderTicket();
    }
    return(lastTicket);
}

int LastOpenTicketForSell(){
    datetime lastTime  = 0;
    int      lastTicket = -1; // None open.
    int magi.number=0;
    for(int pos = OrdersTotal()-1; pos >= 0 ; pos--) if (
        OrderSelect(pos, SELECT_BY_POS)                 // Only my orders w/
    &&  OrderMagicNumber()  == magic.number             // my magic number
    &&  OrderSymbol()       == Symbol()                 // and my pair.
    &&  OrderOpenTime()     >  lastTime
    && OrderType()==OP_SELL
    ){
      lastTime   = OrderOpenTime();
      lastTicket = OrderTicket();
    }
    return(lastTicket);
}

int previousorderforbuy(){
    datetime lastTime  = 0;
    int      lastTicket = -1; // None open.
    int magi.number=0;
    for(int pos--; pos >= 0 ; pos--) if (
        OrderSelect(pos, SELECT_BY_POS)                 // Only my orders w/
    &&  OrderMagicNumber()  == magic.number             // my magic number
    &&  OrderSymbol()       == Symbol()                 // and my pair.
    &&  OrderOpenTime()     >  lastTime
    && OrderType()==OP_BUY
    ){
      lastTime   = OrderOpenTime();
      lastTicket = OrderTicket();
    }
    return(lastTicket);
}

int previousorderforsell(){
    datetime lastTime  = 0;
    int      lastTicket = -1; // None open.
    int magi.number=0;
    for(int pos--; pos >= 0 ; pos--) if (
        OrderSelect(pos, SELECT_BY_POS)                 // Only my orders w/
    &&  OrderMagicNumber()  == magic.number             // my magic number
    &&  OrderSymbol()       == Symbol()                 // and my pair.
    &&  OrderOpenTime()     >  lastTime
    && OrderType()==OP_SELL
    ){
      lastTime   = OrderOpenTime();
      lastTicket = OrderTicket();
    }
    return(lastTicket);
}
 

伙伴们。

你能不能看一下并告诉我什么是错的。


我需要创建一些函数。
1- 获取并保持最后一个买入 订单的开盘价 的函数。
2- 获取并保持最后卖出 订单的开盘价的函数。
3- 函数获取并保留最后的收盘价,不管是买还是卖

int LastOpenTicketForBuy(){ datetime lastTime = 0 ; int lastTicket = - 1 ; // None open. 
int magi.number= 0 ;
for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--)
if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
&& OrderMagicNumber () == magic.number // my magic number
&& OrderSymbol () == Symbol () // and my pair.
&& OrderType ()==OP_BUY )
{ lastTime = OrderOpenTime ();
lastTicket = OrderTicket (); }
return (lastTicket);}

int LastOpenTicketForSell()
{ datetime lastTime = 0 ; int lastTicket = - 1 ; // None open.

int magi.number= 0 ;
for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--)
if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
&& OrderMagicNumber () == magic.number // my magic number
&& OrderSymbol () == Symbol () // and my pair.
&& OrderType ()==OP_SELL )
{ lastTime = OrderOpenTime (); 

lastTicket = OrderTicket (); }
return (lastTicket);}

int lastcloseorder()
{ datetime lastTime = 0 ; int lastTicket = - 1 ; // None open. 
int magi.number= 0 ; 
for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--)
if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/ 
&& OrderMagicNumber () == magic.number // my magic number
&& OrderSymbol () == Symbol () // and my pair.
&& OrderCloseTime () > lastTime
&& OrderType ()==OP_BUY||OP_SELL )
{ lastTime = OrderCloseTime (); lastTicket = OrderTicket (); }
return (lastTicket);}




然后我将把如果((LastOpenTicketForBuy()+LastOpenTi cketForSell())/2)<MarketInfo("EURUSD",MODE_BID)Clo se the position

 
在你看来 ......return (lastTicket);的作用是什么?
 

你是说我应该

1-将双倍的LastOpenForBuy()改为int

2-输入双倍的orderforbuy然后返回( orderforbuy )

通过这种方式,我可以得到只为买入而打开的最后一个订单。

double LastOpenForBuy(){ datetime lastTime = 0 ; int lastTicket = - 1 ; // None open. 
int magi.number= 0 ; double orderforbuy;
for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--)
if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
&& OrderMagicNumber () == magic.number // my magic number
&& OrderSymbol () == Symbol () // and my pair.
&& OrderType ()==OP_BUY )
{ orderforbuy = OrderOpenprice ();
lastTicket = OrderTicket (); }
return (orderforbuy);}

 
Hand:

你的意思是我应该

这是个问题 . .我没有别的意思,就是......你的答案是什么?

如果你想让我帮忙,你需要回答我的问题......而 "我不知道 "不是一个可接受的答案。 想一想吧。

 

在你看来 ......return(lastTicket); 的作用是什么?

返回当前选择的订单 的票号。

 
Hand:

谢谢WHRoeder。

如果我需要获得买入的最后一笔订单和卖出的最后一笔订单,然后通过以下方式进行比较。

如果( 最后一笔买入订单 == OOTlastest )

{ 做一些事情 }

否则

{ }.......,下面的代码将工作。

这真的有用吗?

第一环

for(int pos = OrdersTotal()-1; pos >= 0 ; pos--) if (

进入第二个循环

 for(pos--; pos >= 0 ; pos--) if (

pos递减到0。第二个循环结束-->跳回第一个循环,第一个循环不知道pos在上一次离开后的位置,有可能pos=0。

 

这段代码可能会起作用......只是需要改变一件事。

第二个for语句

for(pos--; pos >= 0 ; pos--) if (

改为一个不同的迭代器,比如

for(int a=pos--; a>=0 ; a--) if(// abort the use of pos again and introduce a new iterator, a

同样地,在所有的第二个循环逻辑中,只需将pos替换为新的迭代器(在本例中为a)。

 
Hand:

在你看来 ......return(lastTicket); 的作用是什么?

返回当前选择的订单的票号。

你说 ...

"我需要创建一些函数,用于。
1- 获取并保持买入 最后一个订单的开盘价 的函数。
2- 获取并保持最后一个卖出 订单的价格的函数。

3- 功能是获取并保留最后的平仓单,不管是买还是卖"

那么你为什么要返回票号? 阅读你复制和粘贴的代码,理解它,学习 ......