특정 시간에 양초의 시가를 가집니다. - 페이지 2

 
Kane59 :

좋아, 내 EA에 코드를 삽입했고 완벽하게 작동합니다! EA가 원하는대로 실행되는 것을보고 나는 미소를 지었습니다 !!!

매우매우매우감사합니다......

시장이 닫혀서 백테스트 중입니다...

하지만 문제가 있습니다.

Ea Open은 올바른 위치에 있지만 매수는 절대 청산되지 않으며 열리면 즉시 청산됩니다.

귀하의 OrderClose()가 실패했는지, 그리고 왜 실패했는지 알고 싶지 않으십니까? OrderClose() 함수에서 반환 값을 확인하고 오류를 보고하지 않는 이유는 무엇입니까? Buy 및 Sell 모두 즉시 닫기를 시도하지만 Buy OrderClose()가 실패한다는 것을 알 수 있습니다. . .

함수 반환 값이란 무엇입니까? 어떻게 사용합니까?

 

저널 탭에는 오류가 없습니다.


나는 반환 값을 배치합니다. 내가 할 수 있습니까?

Close = CloseOrder(....)

if (Close < 1 )

Print ( "Close Failed" , GetLastError ())
 
Kane59 :

저널 탭에는 오류가 없습니다.


나는 반환 값을 배치합니다. 내가 할 수 있습니까?

닫기는 다른 의미를 갖습니다. . . OrderClose()는 bool을 반환합니다. . .

 if ( ! OrderClose(....) )

Print ( "Close Failed" , GetLastError ())
 
RaptorUK :

닫기는 다른 의미를 갖습니다. . . OrderClose()는 bool을 반환합니다. . .


알겠습니다. 그렇게 하겠습니다. 감사합니다 :)
 

나는 삽입했다:

 if ( OrdersTotal ()> 0 )
            { 
               for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
               {
                   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
                  {
                     if (OrderMagicNumber() == MagicSH && OrderOpenTime() > iTime( Symbol (), PERIOD_H1 , 1 ))
                     {
                         if (OrderType() == OP_BUY)
                        {
                           OrderClose(OrderTicket(),LotsSH, bid, 300 , CLR_NONE );
                           {
                               if (! OrderClose(OrderTicket(),LotsSH, bid, 300 , CLR_NONE ))
                              {
                                 Print ( "Close Buy Failed" , GetLastError ());
                              }
                           }
                        }
                         if (OrderType() == OP_SELL)
                        {
                           OrderClose(OrderTicket(),LotsSH, ask, 300 , CLR_NONE );
                           {
                               if (! OrderClose(OrderTicket(),LotsSH, ask, 300 , CLR_NONE ))
                              {
                                 Print ( "Close Sell Failed" , GetLastError ());

기록된 오류가 없습니다.

 
Kane59 :

나는 삽입했다:

기록된 오류가 없습니다.

동일한 주문을 두 번 종료할 수 없습니다. . .

 OrderClose(OrderTicket(),LotsSH, bid, 300 , CLR_NONE );             //  first attempt to close
    {
     if (! OrderClose(OrderTicket(),LotsSH, bid, 300 , CLR_NONE ))       //  second attempt to close
 

문제를 해결했는데 루프 조건이 올바르게 코딩되지 않았습니다...

다시 한번 감사합니다.

 

안녕하세요 여러분,

나는 WHRoeder가 제공한 코드를 사용했지만 EA는 4개의 다른 시간에 대한 참조로 단 하나의 "#define"만 사용한다는 것을 알았습니다.

     #define HR0900 23400      // 9*3600
     #define HR1500 54000
     #define HR1900 68400
     #define HR2300 59800

나는 다른 방법을 시도했다:

나는 촛불 참조 인 Int로 arraysize를 구축했으며 동일합니다. 하나만 4 숫자로 간주되지 않습니다. 어떻게 해결할 수 있습니까?

 
Kane59 :

좋아, 내 EA에 코드를 삽입했고 완벽하게 작동합니다! EA가 원하는대로 실행되는 것을보고 나는 미소를 지었습니다 !!!

WHRoeder 코드를 깨기 위해 무엇을 했습니까?
 
Kane59 :

. . . 어떻게 해결할 수 있습니까?

나는 당신이 당신의 코드를 보여줄 필요가 있다고 생각합니다.