orderopenprice가 열린 후 가장 높은 값을 얻으려면 어떻게 해야 합니까? - 페이지 3

 

그럼 왜 티켓 번호를 반환합니까? 복사하여 붙여넣는 코드를 읽고, 이해하고, 배웁니다. . .

나는 그것을 사용하여 다음을 수행했습니다.

if(OrderSelect(LastOpenTicketForBuy(), SELECT_BY_POS)==true)
{ 구매 주문= OrderOpenPrice() ;}

then if (((매수 주문+ 매도 주문)/2))<MarketInfo("EURUSD",MODE_BID) )

포지션을 닫다

 
Hand :


if(OrderSelect(LastOpenTicketForBuy(), SELECT_BY_POS)==true)


당신의 허락으로 약간의 변화

 if ( OrderSelect (LastOpenTicketForBuy(), SELECT_BY_ TICKET )==true)
 

친애하는 qjol

당신의 진정한 도움에 감사드립니다. 그러나 여전히 작동할지 여부는 확실하지 않습니다(내 기능이 약간 어렵다고 생각합니다). 우리에게 보여줘

첫 번째 기능:

마지막 주문 시가 를 구매 전용 으로 가져오고 유지하는 기능

 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);}

if ( OrderSelect (LastOpenForBuy(), SELECT_BY_ TICKET )==true)
{ order for buy= OrderOpenPrice();}

// then something like// // if ( (( order for buy+ order for sell)/2))<MarketInfo("EURUSD",MODE_BID) )

//close the position

내가 필요한 것은 :
     1- 구매 전용으로 마지막 주문 공개 가격 을 가져오고 유지하는 기능
 2- 판매를 위한 마지막 주문 공개 가격 을 가져오고 유지하는 기능
 3 - 매수 또는 매도에 상관없이 마지막 주문 마감 가격 을 가져오고 유지하는 기능
 4- 매수 또는 매도에 관계없이 마지막 마감 주문 전에 이전 마감 가격을 가져오고 유지하는 기능.
 

좋아, 이것을 시도하십시오. . .

그것은 1 & 2를 할 것입니다. . .

마지막 구매의 공개 가격 에 대한 LastOpenPrice(OP_BUY)입니다.

마지막 판매의 공개 가격에 대한 LastOpenPrice(OP_SELL)입니다.

 double LastOpenPrice(int OrderType)
   { 
 
   double OpenPrice;                         

   for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--)
       if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
      && OrderMagicNumber () == magic.number // my magic number       //  <-------  what Magic Number do you use when you place a trade ?  it must match  ! !
      && OrderSymbol () == Symbol ()   // and my pair.                  //            magic.number  should be a Globally defined variable that has your Magic Numer  
      && OrderType () == OrderType )
         {
         OpenPrice = OrderOpenprice();
         break ;
         }
   return (OpenPrice);                                             //  <-------  this returns the Order Open Price  NOT the ticket
}
 

이 . . . .

3 . . .

 double LastClosePrice()
   { 
 
   double ClosePrice;                         

   for ( int pos = OrdersHistoryTotal ()- 1 ; pos >= 0 ; pos--)
       if ( OrderSelect (pos, SELECT_BY_POS, MODE_HISTORY)             // Only my CLOSED  orders 
      && OrderMagicNumber () == magic.number // my magic number       //  <-------  what Magic Number do you use when you place a trade ?  it must match  ! !
      && OrderSymbol () == Symbol ()   // and my pair.                  //            magic.number  should be a Globally defined variable that has your Magic Numer  
      && OrderType () < OP_BUYLIMIT )
         {
         ClosePrice = OrderCloseprice();
         break ;
         }
   return (ClosePrice);                                             //  <-------  this returns the Order Open Price  NOT the ticket
}
 
4번이 무슨 말인지 이해가 잘 안가네요.
 

랩터

나는 그가 같은 쌍(& 같은 마법)에 대해 2개 이상의 주문을 가지고 있다면 뭔가를 놓치고 있다고 생각하므로 이 방법이 더 낫다고 생각합니다

 double LastOpenPrice( int OrderType )
   { 
 
   double OpenPrice;                         
   datetime lastOpen; // First line added

   for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--)
       if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
      && OrderMagicNumber () == magic.number // my magic number       //  <-------  what Magic Number do you use when you place a trade ?  it must match  ! !
      && OrderSymbol () == Symbol ()   // and my pair.                  //            magic.number  should be a Globally defined variable that has your Magic Numer  
      && OrderType () == OrderType
      && OrderOpenTime () > lastOpen) // Second line added
         {
         OpenPrice = OrderOpenprice();
         break ;
         }
   return (OpenPrice);                                             //  <-------  this returns the Order Open Price  NOT the ticket
}

당신의 의견

 
매직 넘버와 심볼과 일치하는 첫 번째 주문을 카운트다운하면 해당 EA 및 심볼에 대한 마지막 주문이 됩니다. 아니요?
 
확실하지 않다
 
qjol :

랩터

나는 그가 같은 쌍(& 같은 마법)에 대해 2개 이상의 주문을 가지고 있다면 뭔가를 놓치고 있다고 생각하므로 이 방법이 더 낫다고 생각합니다

당신의 의견


얘들아,

정말 감사합니다,

내가 LastOpenPrice(OP_BUY) 및 LastOpenPrice(OP_SELL)를 사용하고 싶은 이유를 알려드리겠습니다.

if ( LastOpenPrice(OP_BUY) -LastOpenPrice(OP_SELL)) > 0.0090 // 그런 이유로 마지막 주문이 매수를 위해 열려 있고 마지막 주문이 매도를 위해 열려 있어야 하므로 구매를 위한 별도의 마지막 주문이 필요하고 판매를 위한 다른.

------

for double LastClosePrice() // 대신 if ( OrderType () == OP_BUY || OP_SELL) *** OrderType() < OP_BUYLIMIT*** 를 사용하여 매수 또는 매도 마지막 종가를 얻을 수 있습니다.

----

기능 번호 4의 경우:

4- 매수 또는 매도에 관계없이 마지막 마감 주문 전에 이전 마감 가격 을 가져오고 유지하는 기능 . // 매수 또는 매도에 관계없이 마지막 마감 주문 이전에 마감 주문 을 받고 싶습니다.

감사해요