orderopenprice açıldıktan sonra en yüksek nasıl alabilirim. - sayfa 3

 

Peki neden bilet numarasını iade ediyorsunuz? Kopyalayıp yapıştırdığınız kodu okuyun, anlayın, öğrenin. . .

aşağıdakileri yapmak için kullandım

if(OrderSelect(LastOpenTicketForBuy(), SELECT_BY_POS)==true)
{ sipariş için sipariş = OrderOpenPrice() ;}

o zaman if ( (( alım emri+satış emri)/2))<MarketInfo("EURUSD",MODE_BID))

pozisyonu kapat

 
Hand :


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


izninizle küçük bir değişiklik

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

sevgili qjol

gerçek yardımın için çok teşekkürler. ama yine de işe yarayıp yaramayacağından emin değilim (işlevlerimin biraz zor olduğunu düşünüyorum). Hadi görelim

ilk fonksiyon:

sadece satın almak için son sipariş açık fiyatını alma ve saklama işlevi

 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

ihtiyacım olan şey:
     1- Yalnızca satın almak için son sipariş açık fiyatını alma ve saklama işlevi
 2- satış için son sipariş açık fiyatını alma ve tutma işlevi
 3 - satın almak veya satmak ne olursa olsun son sipariş kapanış fiyatını alma ve saklama işlevi
 4- Alım veya satım ne olursa olsun, son kapanış emrinden önceki kapanış fiyatını alma ve tutma işlevi.
 

Tamam, bunu dene. . .

1 ve 2 yapacak. . .

Son satın almanın açık fiyatı için LastOpenPrice(OP_BUY).

Son satışın açık fiyatı için 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
}
 

Ve bu . . . .

3 için . . .

 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 numara ile ne demek istediğini anladığımdan emin değilim.
 

yırtıcı hayvan

aynı çiftte (ve aynı büyü) birden fazla emri varsa, bir şeyleri kaçırdığını düşünüyorum, bu yüzden böylesi daha iyi.

 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
}

senin görüşün

 
Sihirli Sayı ve Sembol ile eşleşen ilk sırayı geri sayarsanız, söz konusu EA ve Sembol için verilen son sipariş olur, değil mi?
 
Emin değil
 
qjol :

yırtıcı hayvan

Aynı çiftte (ve aynı büyü) birden fazla emri varsa, bir şeyi kaçırdığını düşünüyorum, bu yüzden böylesi daha iyi.

senin görüşün


çocuklar,

çok teşekkürler,

Size neden LastOpenPrice(OP_BUY) ve LastOpenPrice(OP_SELL) kullanmak istediğimi söyleyeyim çünkü bunları aşağıdaki gibi bazı koşullarda kullanmak istiyorum

if ( LastOpenPrice(OP_BUY) -LastOpenPrice(OP_SELL)) > 0.0090 // bu nedenle son siparişi alış için açık tutmam gerekiyor ve son siparişi satışa açık tutmam gerekiyor, bu yüzden son siparişe alış ve son sipariş için ayrı ihtiyacım var diğer satılık.

-----

double LastClosePrice() için // alım veya satım ne olursa olsun son kapanışı almak için if ( OrderType () == OP_BUY || OP_SELL) yerine *** OrderType() < OP_BUYLIMIT*** kullanabilir miyim?

----

4 numaralı fonksiyon için:

4- Alım veya satım ne olursa olsun, son kapanış emrinden önceki kapanış fiyatını alma ve tutma işlevi . // Alım veya Satım ne olursa olsun , kapanan emri son kapatılan emirden önce almak istiyorum.

Teşekkürler

Neden: