TP를 5핍 미만으로 설정하는 방법은 무엇입니까? - 페이지 4

 
맞나요? 마지막 100분의 주문만 닫힙니다.
 if (Bid>CloseforBuy)
{
   for ( int a= OrdersTotal ()- 1 ;a>= 0 ;a--)
       if ( OrderSelect (a,SELECT_BY_POS, MODE_TRADES) && 
       OrderType ()==OP_BUY && TimeCurrent ()- OrderOpenTime () <= 100   &&
       OrderSymbol ()== Symbol () )
         if ( ! OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), 1000 , White ) )
             Print ( "OrderClose failed, error: " , GetLastError ());
            }



if (Ask<CloseforSell)
{
   for ( int b= OrdersTotal ()- 1 ;b>= 0 ;b--)
       if ( OrderSelect (b,SELECT_BY_POS, MODE_TRADES) && 
       OrderType ()==OP_SELL &&   TimeCurrent ()- OrderOpenTime () <= 100   &&
       OrderSymbol ()== Symbol () )
         if ( ! OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), 1000 , White ) )
             Print ( "OrderClose failed, error: " , GetLastError ());
            }
 
ats :
맞나요? 마지막 100분의 주문만 닫힙니다.

거의 TimeCurrent() 는 마지막 틱의 서버 시간을 나타내는 datetime을 제공합니다. . .

참고: 날짜/시간 유형(1970년 1월 1일 자정부터 경과된 초의 양을 나타내는 정수).

그래서 당신은 그것을 확인해야합니다. . .

 TimeCurrent ()- OrderOpenTime () <=

100분 . . . . 또는 (100 * 60)초

 

도움을 주셔서 대단히 감사합니다!

즐거운 거래!

 

안녕하세요!

EA를 수정하려고 했지만 제대로 작동하지 않습니다. 어디가 실수인지 아세요?

고맙습니다

 extern double TPforBuys= 1 ;
extern double TPforSells= 1 ;
extern double TimeForEA= 120 ;

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{

return ( 0 );
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{

return ( 0 );
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{


double TPbuy = TPforBuys / 10000 ;
double TPB= OrderOpenPrice ()+ TPbuy;

// Close Buys
if (Bid>TPB)
{
   for ( int a= OrdersTotal ()- 1 ;a>= 0 ;a--)
       if ( OrderSelect (a,SELECT_BY_POS, MODE_TRADES) && 
       OrderType ()==OP_BUY && TimeCurrent ()- OrderOpenTime () <= (TimeForEA * 60 )  &&
       OrderSymbol ()== Symbol () )
         if ( ! OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), 1000 , White ) )
             Print ( "OrderClose failed, error: " , GetLastError ());
            }



double TPsell = TPforSells / 10000 ;
double TPS= OrderOpenPrice ()- TPsell;



// Close Sells
if (Ask<TPS)
{
   for ( int b= OrdersTotal ()- 1 ;b>= 0 ;b--)
       if ( OrderSelect (b,SELECT_BY_POS, MODE_TRADES) && 
       OrderType ()==OP_SELL &&   TimeCurrent ()- OrderOpenTime () <= (TimeForEA * 60 ) &&
       OrderSymbol ()== Symbol () )
         if ( ! OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), 1000 , White ) )
             Print ( "OrderClose failed, error: " , GetLastError ());
            }


return ( 0 );
}
 

이것으로 변경하고 이것이 "제대로 작동"하는지 확인하십시오 ...

 TimeCurrent ()- OrderOpenTime () >= (TimeForEA * 60 ) // time to close
 

맞아요! EA는 2시간 이내의 주문만 마감합니다! 문제는 1핍 후에 모든 주문이 올바르게 닫히지 않는다는 것입니다! 하지만 어디가 실수인지 모르겠다!

고맙습니다

 
ats :

맞아요! EA는 2시간 이내의 주문만 마감합니다! 문제는 1핍 후에 모든 주문이 올바르게 닫히지 않는다는 것입니다! 하지만 어디가 실수인지 모르겠다!

고맙습니다

그래서 당신이 원하는대로 작동하고 있습니다. 맞습니까? 당신이 "올바르게 작동한다"는 것이 무엇을 의미하는지 전혀 모르겠고 충분히 게으르므로 4페이지의 답장과 코드를 읽지 않습니다.

그래서 사실, 나는 내가 왜 당신에게 그 대답을 줬는지 정확히 모릅니다 :)

 
onewithzachy :

그래서 사실, 나는 내가 왜 당신에게 그 대답을 줬는지 정확히 모릅니다 :)

인터넷에서 변화를 위한 정직한 모습 보기 좋네요 :-)
 
onewithzachy :

그래서 당신이 원하는대로 작동하고 있습니다. 맞습니까? 당신이 "올바르게 작동한다"는 것이 무엇을 의미하는지 전혀 모르겠고 충분히 게으르므로 4페이지의 답장과 코드를 읽지 않습니다.

그래서 사실, 나는 내가 왜 당신에게 그 대답을 줬는지 정확히 모릅니다 :)

괜찮아요! 고맙습니다!
 

당신이 이것을 할 때. . . .

 double TPB= OrderOpenPrice ()+ TPbuy;

. . . ??의 공개 가격을 사용하는 주문은 무엇입니까? OrderOpenPrice() 참고: " 주문은 먼저 OrderSelect() 함수로 선택해야 합니다. "