기고글 토론 "Expert Advisor의 한계 및 검증"

 

새로운 기고글 Expert Advisor의 한계 및 검증 가 게재되었습니다:

월요일에 이 기호를 거래할 수 있습니까? 포지션을 열 수 있는 충분한 자금이 있습니까? 손절매가 발동되면 손실이 얼마나 됩니까? 보류 중인 주문 수를 제한하는 방법은 무엇입니까? 거래 작업이 현재 바에서 실행되었습니까 아니면 이전 바에서 실행되었습니까? 거래 로봇이 이러한 종류의 검증을 수행할 수 없다면 모든 거래 전략이 패배할 수 있습니다. 이 문서는 모든 Expert Advisor에서 유용한 검증의 예를 보여줍니다.

볼륨이 올바른지 확인하는 CheckVolumeValue.mq5의 메시지입니다.

작성자: MetaQuotes

 

유용한 문서

 
동의합니다, 유용한 내용이 많네요... 어렵게 생각하지 마시고 "트레이딩 세션"과 "호가 세션"의 개념을 설명해 주세요.
 

거래 세션은 이미 주문을 할 수 있다는 점에서 호가 세션과 다르다는 것을 알고 있습니다.

하지만 호가는 아직 체결되지 않았고 즉, 거래가 이루어지지 않고 있지만 주문은 할 수 있습니다.

호가가 진행 중이라는 것은 이 상품에 대한 거래가 진행되고 있다는 것을 의미합니다.


내가 틀렸다면 정정해 주세요.

 
거래 세션에서는 거래할 수 있고, 호가 세션에서는 거래 세션에서와 마찬가지로 가격이 수신되지만 거래할 수는 없습니다.
 
Rosh:
거래 세션에서는 거래할 수 있고, 호가 세션에서는 거래 세션에서와 같이 가격이 입력되지만 거래할 수는 없습니다.

감사합니다, 이해가 되네요.
 
MQL5 언어의 변경으로 인해 이제 하나의 심볼당 허용되는 최대 누적 볼륨은 다음과 같은 방식으로 얻어야 합니다:
//--- 볼륨의 글자 수 제한 가져오기
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT);

이전 버전은 이와 같았으므로 더 이상 사용해서는 안 됩니다:

//--- 볼륨의 글자 수 제한 가져오기
   double max_volume=AccountInfoDouble(ACCOUNT_LIMIT_VOLUME);


문서가 수정되었으며 Check_Order_And_Volume_Limits.mq5 Expert Advisor의 새 코드가 첨부되었습니다.

 

MQL5의 변경으로 인해 이제 하나의 심볼에 허용되는 최대 전체 볼륨은 다음과 같이 얻을 수 있습니다:

//--- 볼륨에 대한 기호 제한 가져오기
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT);

이전 변형을 사용하지 마세요! 다음과 같았습니다:

//--- 볼륨에 대한 기호 제한 가져오기
   double max_volume=AccountInfoDouble(ACCOUNT_LIMIT_VOLUME);
문서가 수정되었으며 새로운 Check_Order_And_Volume_Limits.mq5 전문가 코드가 첨부되었습니다.
 

(빌드 306)

void OnStart()
{
double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT);
}

컴파일 오류:

'SYMBOL_VOLUME_LIMIT' - 선언되지 않은 식별자 test.mq5 4 46
'SymbolInfoDouble' - 함수 호출 test.mq5 4 20에 오버로드 중 하나를 적용할 수 없습니다.

 

기사에서 인용합니다:"마지막 막대의 개장 시간을 얻으려면 심볼 이름, 시간 프레임 및 SERIES_LASTBAR_DATE 속성을 지정해야 하는 SeriesInfoInteger() 함수를 사용할 수 있습니다."

이전 버전의 참고서에는 대략 다음과 같이 CopyTime 함수를 사용하여 마지막 막대가 열린 시간을 구하는 예가 있었습니다:

datetime lastbar_time[1];

CopyTime(Symbol(),0,0,1,lastbar_time);

질문: 마지막 막대 오픈 시간을 가져오는 이 두 가지 옵션 중 정보 검색 속도와 사용 효율성 측면에서 어떤 것이 더 나은가요?

 
Yedelkin:

기사에서 인용합니다:"마지막 막대 오픈 시간을 얻으려면 심볼 이름, 시간 프레임 및 SERIES_LASTBAR_DATE 속성을 지정해야 하는 SeriesInfoInteger() 함수를 사용할 수 있습니다."

이전 버전의 참조 설명서에는 다음과 같이 CopyTime 함수를 사용하여 마지막 막대 열기 시간을 구하는 예가 있었습니다:

질문: 마지막 막대 열림 시간을 가져오는 이 두 가지 옵션 중 정보 검색 속도와 사용 효율성 측면에서 어떤 것이 더 낫습니까?

두 옵션은 시간 측면에서 동일하지만 SERIES_LASTBAR_DATE 옵션이 더 좋아 보입니다.