도움말: EA가 거래를 마감하지 않는 이유 - 페이지 2

 
crossy :


onewithzachy님, 감사합니다.

먼저 다음과 같은 작은 실수가 있다고 생각합니다.

for(int cnt = OrdersTotal() -1 ; cnt >= 0; cnt--)

녹색과 굵은 수정을 추가해야 합니다.

그러나 다음 줄이 어떻게 우리를 도울 수 있는지 이해하지 못합니까?

#include "..\libraries\stdlib.mq4"

고마워, Y.

그러나 카운트에 대한 귀하의 권리는 내가 쓴 것처럼 작성하면 OrderSelect()가 false를 반환하고 for 루프는 다음 카운트로 계속됩니다.

그 포함은 이 코드의 오류를 인쇄합니다 ...

 Print ( "failed to close buy position " , ErrorDescription( GetLastError ())  ); 

.. 귀하의 EA가 주문을 마감하지 않는 이유를 알 수 있도록 :(.

당신은 또한 다음과 같은 포함을 작성할 수 있습니다 ...

 #include <stdlib.mqh>

trade.mq4라는 이름의 MetaEditor 스크립트 폴더에 예제가 있습니다.


나는 당신이 포함을 어디에 넣어야하는지 알고 있다고 가정 했습니다. 맞습니까? EA 상단에 배치하십시오(전역 변수 또는 trade.mq4와 동일).

stdlib.mq4는 MetaEditor > 네비게이터 창(Ctrl + D) > 파일 탭 > 라이브러리 폴더 > stdlib.mq4에 있습니다.

와우, 나는 당신이 거기에 세부 사항을 갔다는 것을 신경 쓰지 않기를 바랍니다. 왜냐하면 당신이 이미 알고 있는지 또는 모르는지 모르겠습니다 :)

 
onewithzachy :

그러나 카운트에 대한 귀하의 권리는 내가 쓴 것처럼 작성하면 OrderSelect()가 false를 반환하고 for 루프는 다음 카운트로 계속됩니다.

그 포함은 이 코드의 오류를 인쇄합니다 ...

.. 귀하의 EA가 주문을 마감하지 않는 이유를 알 수 있도록 :(.

당신은 또한 다음과 같은 포함을 작성할 수 있습니다 ...

trade.mq4라는 이름의 MetaEditor 스크립트 폴더에 예제가 있습니다.


인클루드를 어디에 넣어야 하는지 알 같았는데 맞나요? EA 상단에 배치하십시오(전역 변수 또는 trade.mq4와 동일).

stdlib.mq4는 MetaEditor > 네비게이터 창(Ctrl + D) > 파일 탭 > 라이브러리 폴더 > stdlib.mq4에 있습니다.

와우, 나는 당신이 거기에 세부 사항을 갔다는 것을 신경 쓰지 않기를 바랍니다. 왜냐하면 당신이 이미 알고 있는지 또는 모르는지 모르겠습니다 :)


onewithzachy님, 감사합니다.

나는 당신이 제안한대로했고 정확한 station을 기다립니다. 업데이트하겠습니다.

 
crossy :


onewithzachy님, 감사합니다.

나는 당신이 제안한대로했고 정확한 station을 기다립니다. 업데이트하겠습니다.

음...., 저는 백 테스팅의 열렬한 팬이 아니지만, RaptorUK는 백 테스팅을 사용하여 코드를 디버그할 수 있다고 다른 스레드( 여기를 클릭 )에서 제안합니다.
 
onewithzachy :
음...., 저는 백 테스팅의 열렬한 팬이 아니지만, RaptorUK는 백 테스팅을 사용하여 코드를 디버그할 수 있다고 다른 스레드( 여기를 클릭 )에서 제안합니다.


EA는 다중 쌍이므로 백 테스팅이 불가능합니다.

어쨌든 관련 상황을 매우 빠르게 파악할 수 있습니다. 나는 이미 결과를 얻었습니다. 업데이트 하겠습니다..

감사해요

 
crossy :


EA는 다중 쌍이므로 백 테스팅이 불가능합니다.

백테스트 가 아닙니다. . 디버깅 . . . 포트폴리오 기반 EA 디버깅을 사용하더라도 여전히 가능할 수 있습니다.
 

랩터님, 감사합니다.

ORDERSELECT가 bool 변수이고 MT4가 성공하지 못하는 경우가 있습니다.

하기 위해. 때문에 onewithzachy는 다음을 권장합니다.

for ( int cnt= 0 ; cnt< OrdersTotal (); cnt++)
{
if ( OrderSelect (cnt,SELECT_BY_POS,MODE_TRADES) == true &&
OrderSymbol ()==쌍 &&
주문 유형()== OP_BUY )
{
// 닫을 코드
}
}

내 질문은 다음과 같습니다. ORDERSELECT가 false이면 누락 없이 "cnt" LOOP를 다시 수행할 수 있습니까?

날 이해 해주길 바래.

와이.

 
crossy :

랩터님, 감사합니다.

ORDERSELECT가 bool 변수이고 MT4가 성공하지 못하는 경우가 있습니다.

그것을 하기 위해. 때문에 onewithzachy는 다음을 권장합니다.

for ( int cnt= 0 ; cnt< OrdersTotal (); cnt++ )

내 질문은 다음과 같습니다. ORDERSELECT가 false이면 누락 없이 "cnt" LOOP를 다시 수행할 수 있습니까?

날 이해 해주길 바래.

와이.

주문을 마감하는 경우 반드시 카운트다운을 해야 합니다. . . 위로가 아닙니다 .
 
RaptorUK :
주문을 마감하는 경우 반드시 카운트다운을 해야 합니다. . . 위로가 아닙니다 .


죄송합니다 Raptor, 방금 이전 게시물에서 Copy_paste를 만들었지만 코드 내에서 변경했습니다.

어쨌든, 내 사전 질문에 대해 알고 있습니까?

 
crossy :


죄송합니다 Raptor, 방금 이전 게시물에서 Copy_paste를 만들었지만 코드 내에서 변경했습니다.

어쨌든, 내 사전 질문에 대해 알고 있습니까?

코드를 보여주시면 의견을 드릴 수 있습니다.
 
RaptorUK :
코드를 보여주시면 의견을 드릴 수 있습니다.


랩, 4016 코드 라인입니다....

어쨌든 제 질문은 기술적인 질문입니다. 나는 FORTRAN을 한 번 배웠고 거기에는 원하는 코드 라인에 대한 숫자가 있었기 때문에 할 수 있었습니다.

"GO to 120", 그리고 코드는 다시 그 줄로 갔다.

여기서 Orderselect가 FALSE인 경우 EA가 코드 라인으로 돌아갈 수 있는 방법: for(int cnt=OrdersTotal(); cnt > 0; cnt-- )

???