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

 
( OrderType() < OP_BUYLIMIT ), ( OrderType () == OP_BUY || OrderType () == OP_SELL ) ile aynıdır
 
Hand :


ç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.

Bunu yapabilirsin . . Çalışacak . . dene.
 
Ya da belki şu anda kapalı olan son SATIN AL emrini mi kastediyorsunuz?
 

n.4 işlevinin açıklaması açık mı?

4 numaralı fonksiyon:

// Alım veya satım ne olursa olsun , son kapatılan emirden önce emri kapatmak istiyorum.

4- Alım veya satım ne olursa olsun, son kapanış emrinden önceki kapanış fiyatını alma ve tutma işlevi . Teşekkürler

 

çocuklar,

gerçekten çalışmıyor

 // Used to keep global variables

extern int MagicNumberLong = 6658641 ;                     //Identifies long positions
extern int MagicNumberShort = 4167090 ;                     //Identifies short positions
  
 






double LastOpenPrice( int ordertype)
   { 

   double OpenPrice;                         
   datetime lastOpen;
   for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--)
       if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
      && OrderMagicNumber () == MagicNumberLong || MagicNumberShort // 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 )
         {
         OpenPrice = OrderOpenPrice ();
         break ;
         }
   return (OpenPrice);                                             //  <-------  this returns the Order Open Price  NOT the ticket
}

if (  (( iOpen ( "EURUSD" , PERIOD_H1 , 0 )- 0.0030 )>= MarketInfo ( "EURUSD" ,MODE_BID))   ) 
  {   BUY( "EURUSD" ,B_EURUSD_LS_0,B_EURUSD_TP_0,B_EURUSD_SL_0,B_EURUSD_TS_0, "if (  ( ((iOpen(EURUSD,PERIOD_H1,0)-0.00..." ) ;}
if (  ( (LastOpenPrice(OP_BUY)- 0.0030 )> MarketInfo ( "EURUSD" ,MODE_BID) )  ) 
   {  SELL( "EURUSD" ,S_EURUSD_LS_1,S_EURUSD_TP_1,S_EURUSD_SL_1,S_EURUSD_TS_1, "if (  ( (LastOpenPrice(OP_BUY)-0.0030)>=MarketInfo(" EURUSD ",MODE_BID) )  )" ) ;}
if (  ( (( iOpen ( "EURUSD" , PERIOD_H1 , 0 )+ 0.0030 )<= MarketInfo ( "EURUSD" ,MODE_BID)) )  ) 
  {   SELL( "EURUSD" ,S_EURUSD_LS_0,S_EURUSD_TP_0,S_EURUSD_SL_0,S_EURUSD_TS_0, "if (  ((iOpen(EURUSD,PERIOD_H1,0)+0.00..." ) ;}
if (  ( (LastOpenPrice(OP_SELL)+ 0.0030 )< MarketInfo ( "EURUSD" ,MODE_BID) )  ) 
   {  BUY( "EURUSD" ,B_EURUSD_LS_1,B_EURUSD_TP_1,B_EURUSD_SL_1,B_EURUSD_TS_1, "if (  ( (LastOpenPrice(OP_SELL)+0.0030)<MarketInfo(" EURUSD ",MODE_BID) )" ) ;}

Resimlerde görebileceğiniz gibi

EA'yı 01/03/2011 ile 11/04/2011 arasında test etmeye başladım

01/03/2011 için ilk saatte

pozisyon açıldı ancak yukarıdaki şartlardan kimse müsait değil. bu beni gerçekten delirtiyor

 
Hand :

n.4 işlevinin açıklaması açık mı?

4 numaralı fonksiyon:

// Alım veya satım ne olursa olsun , son kapatılan emirden önce emri kapatmak istiyorum.

4- Alım veya satım ne olursa olsun, son kapanış emrinden önceki kapanış fiyatını alma ve tutma işlevi . Teşekkürler

Kapanış fiyatı ? son siparişin kapandığı bardan önceki barın kapanış fiyatı ? veya son kapanan alış veya satıştan önce kapanan Alım veya Satım'ın Emir kapanış fiyatı mı?
 

ikinci seçenek:

Son kapanan alış veya satıştan önce kapanan Alış veya Satışın Emir kapanış fiyatı ?

 
Hand :

ikinci seçenek:

Son kapanan alış veya satıştan önce kapanan Alış veya Satışın Emir kapanış fiyatı ?

Bunu dene . . .

Bir Alış veya Satış olan ve Symbol ve magic.number ile eşleşen son emrin son kapanış fiyatını almak için bunu LastClosePrice( 1 ) yapın.

Ondan öncekini almak için bunu yapın. . . SonKapanışFiyat( 2 )

 double LastClosePrice( int Order)
   { 
 
   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 )
         {
         Order--;
         if (Order == 0 )                                             //  determines if we have found the Order we are interested in
            {
            ClosePrice = OrderCloseprice();
             break ;
            }
         }
   return (ClosePrice);                                             //  <-------  this returns the Order Open Price  NOT the ticket
}

NOT: Bu kod, yukarıdaki kodunuzda gösterildiği gibi sihirli numaralarınızla ÇALIŞMAYACAKTIR . . .

 extern int MagicNumberLong = 6658641 ;                     //Identifies long positions
extern int MagicNumberShort = 4167090 ; 


WHY ? ? ? ?
 

Çocuklar.

Teamviewer programını kullanabilecek kimse var mı, o zaman birlikte erişip asıl sorunun ne olduğunu kontrol edeceğiz.

 
Hand :

çocuklar,

gerçekten çalışmıyor

Resimlerde görebileceğiniz gibi

EA'yı 01/03/2011 ile 11/04/2011 arasında test etmeye başladım

01/03/2011 için ilk saatte

pozisyon açıldı ama yukarıdaki şartlardan kimse müsait değil. bu beni gerçekten delirtiyor

Bu çılgın değil. Bir siparişin açılması "makul" çünkü:

 double LastOpenPrice( int ordertype)
   { 

   double OpenPrice;                         
   datetime lastOpen;
   for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--)
       if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
      && OrderMagicNumber () == MagicNumberLong || MagicNumberShort // my magic number       
      && OrderSymbol () == Symbol ()     // and my pair.             
      && OrderType () == ordertype 
      && OrderOpenTime () > lastOpen )
         {
         OpenPrice = OrderOpenPrice ();
         break ;
         }
   return (OpenPrice); //  <-------  this returns the Order Open Price OR ZERO.

Yukarıdaki işlev ZERO değerini döndürürse, aşağıdaki gibi herhangi bir senaryo ortaya çıkabilir.

 if (  ( (LastOpenPrice(OP_SELL)+ 0.0030 )< MarketInfo ( "EURUSD" ,MODE_BID) )  ) <--------------- 0+0.0030=0.0030<Bid: TRUE
   {  BUY( "EURUSD" ,B_EURUSD_LS_1,B_EURUSD_TP_1,B_EURUSD_SL_1,B_EURUSD_TS_1, "if (

Bunun üstüne ve üstüne bir "usta" mantık yerleştirmenizi öneririm. LastOpenPrice(...) işlevi sıfır döndürürse... oyun planınız nedir?