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

 
( OrderType() < OP_BUYLIMIT )는 ( OrderType () == OP_BUY || OrderType () == OP_SELL ) 과 동일합니다.
 
Hand :


얘들아,

정말 감사합니다,

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

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

그렇게 할 수 있습니다. . 그것은 작동합니다. . 시도 해봐.
 
아니면 지금 마감된 마지막 BUY 주문 을 의미합니까?
 

기능 n.4에 대한 설명이 명확합니까?

기능 번호 4:

// 매수 또는 매도에 관계없이 마지막으로 마감된 주문 전에 주문을 마감 하고 싶습니다.

4- 매수 또는 매도에 관계없이 마지막 마감 주문 전에 이전 마감 가격 을 가져오고 유지하는 기능 . 감사해요

 

얘들아,

정말 작동하지 않습니다

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

이미지에서 볼 수 있듯이

저는 2011년 1월 3일부터 2011년 4월 11일까지 EA 테스트를 시작했습니다.

2011년 1월 3일 첫 1시간 동안

위치 가 열렸 지만 위의 조건에서 아무도 사용할 수 없습니다. 날 정말 미치게 만든

 
Hand :

기능 n.4에 대한 설명이 명확합니까?

기능 번호 4:

// 매수 또는 매도에 관계없이 마지막으로 마감된 주문 전에 주문을 마감 하고 싶습니다.

4- 매수 또는 매도에 관계없이 마지막 마감 주문 전에 이전 마감 가격 을 가져오고 유지하는 기능 . 감사해요

종가 ? 마지막 주문이 마감된 바 전 바의 종가는? 또는 마지막으로 마감된 매수 또는 매도의 주문 마감 가격은 무엇입니까?
 

두 번째 옵션:

마지막으로 마감되기 전에 마감된 매수 또는 매도 주문 마감 가격 ?

 
Hand :

두 번째 옵션:

마지막으로 마감되기 전에 마감된 매수 또는 매도 주문 마감 가격 ?

이 시도 . . .

Buy 또는 Sell이었고 Symbol 및 magic.number와 일치하는 마지막 주문의 마지막 종가 를 얻으려면 이 LastClosePrice( 1 ) 를 수행하십시오.

그 전에 하나를 얻으려면 이렇게 하십시오. . . 마지막 닫기 가격( 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
}

참고: 이 코드는 위의 코드에 표시된 것처럼 매직 넘버와 작동하지 않습니다 . . .

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


WHY ? ? ? ?
 

얘들아.

팀뷰어 프로그램을 사용할 수 있는 사람이 있으면 함께 액세스하여 실제 문제가 무엇인지 확인 하겠습니다.

 
Hand :

얘들아,

정말 작동하지 않습니다

이미지에서 볼 수 있듯이

2011년 1월 3일부터 2011년 4월 11일까지 EA 테스트를 시작했습니다.

2011년 1월 3일 첫 1시간 동안

위치 가 열렸 지만 위의 조건에서 아무도 사용할 수 없습니다. 날 정말 미치게 만들어

그것은 미친 것이 아니다. 다음과 같은 이유로 주문을 여는 것이 "합리적"입니다.

 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.

위의 함수가 ZERO 를 반환하면 아래와 같은 시나리오가 발생할 수 있습니다.

 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 (

이 위에 "마스터" 논리를 배치하는 것이 좋습니다. LastOpenPrice(...) 함수가 0을 반환하는 경우....당신의 게임 계획은 무엇입니까?