오류, 버그, 질문 - 페이지 1634

 
fxsaber :
LifeHack: 시각화 창을 원하는 수만큼 가져옵니다.
메타에디터에서 히스토리 디버깅을 하세요 - CTRL+F5. 나타나는 시각화 창을 닫지 말고 터미널 창을 닫으십시오. 더 나아가 - 처음부터. 저것. 코드 변경에 따라 Expert Advisor 결과의 변경 사항을 분석할 때 편리할 수 있는 새로운 시각화 창이 나타납니다.

더 쉬울 수 있습니다. 앞으로 시각화를 실행합니다.

다음 시각화는 두 번째 전방 렌더러에서 실행됩니다.

 
fxsaber :
테스터->설정에서 "시작 후 이전 로그 삭제" 옵션을 보고 싶습니다. 테스터 -> 로그에서 "로그 삭제"를 마우스로 클릭할 때마다 피곤합니다. 분명히 과거 백테스트의 로그는 드문 경우에 유용할 수 있습니다. 대부분 필요하지 않습니다. 따라서 오래된 로그를 자동으로 삭제하는 옵션은 편의성과 HDD/SDD의 공간 절약 모두에 유용합니다.
모든 것이 정확합니다. "드문 경우 에 유용할 수 있습니다 "
 
fxsaber :
계정/테스터에서 헤지 모드가 활성화/비활성화되었는지 어떻게 알 수 있습니까? 오프라인 도움말에는 이에 대한 언급이 없습니다.

네비게이터에서 계정 위로 마우스를 가져갑니다. 툴팁에 계정이 표시됩니다.

계정 연결 후 터미널 로그에 상계 또는 헷지가 기록됩니다.

 

이전에 첨부된 코드의 결과가 다음과 같은 정방향 생성자 호출에 대한 티켓 #1534780 에서

2016.08.10 16:39:26.982 테스트 (GBPUSD,M15) void A::~A():12855
2016.08.10 16:39:26.982 테스트 (GBPUSD,M15) OnDeinit:3
2016.08.10 16:39:26.975 테스트 (GBPUSD,M4) void A::A():17233
2016.08.10 16:39:15.587 테스트 (GBPUSD,M15) void A::A():12855

답변(*)은 다음과 같습니다.

지원팀 2016.08.11 13:35

착신 전환이 없으며 시간대 변경 시 새로운 지표가 생성(복제)되고 이전 지표가 삭제됩니다.


그렇다면 다음 예제에서는 지연된 생성자 호출에 대해 설명합니다.

시퀀싱:

  1. 새 차트 열기 GBPUSD,M15
  2. 차트 기간 을 H1으로 변경
  3. Test.ex5 지표를 차트에 부착
  4. 차트 기간을 M15로 변경

결과:

2016.08.11 15:51:51.188 테스트 (GBPUSD,M15) void A::A():17936
2016.08.11 15:51:50.932 테스트 (GBPUSD,H1) void A::~A():12285
2016.08.11 15:51:50.931 테스트 (GBPUSD,H1) OnDeinit:3
2016.08.11 15:51:39.421 테스트 (GBPUSD,H1) void A::A():12285

그러나 그것은 있어야합니다 (* 참조) - 밑줄이 그어진 줄이 마지막이 아닌 두 번째 (시간상)로 가야합니다.

 //Test.mq5
class A { public :
        A() : a( MathRand ()) { Print ( __FUNCSIG__ , ":" , a ); }
         virtual ~A()         { Print ( __FUNCSIG__ , ":" , a ); }
         int a;
};
static A a;
void OnInit () {}
void OnDeinit ( const int reason ) { Print ( __FUNCTION__ , ":" , reason ); }
int OnCalculate ( const int rates_total, const int , const int , const double & [] ) { return rates_total; }
 

지표는 별도의 기호 스레드에서 계산 되어 차트 기간을 설정하고 GUI 스레드에서 클론을 생성합니다.

그렇기 때문에 이전 지표를 제거하기 전에 새 지표가 계산되거나 그 반대의 경우에도 상황이 발생할 수 있습니다.

기호 흐름 작업(추상)

  1. 액션 #1
  2. 액션 #2
  3. 조치 #3 - 지표 계산
  4. 액션 #4
  5. action #5 - 사용하지 않는 지표 확인 및 삭제
  6. 액션 #6
  7. 액션 #N
  8. 흐름을 멈추지 않으면 1단계로 이동

심볼 스트림이 위치한 지점에 따라 새 인디케이터를 초기화하고 이전 인디케이터를 삭제하는 순서가 달라집니다.

 
Slawa :
모든 것이 맞습니다. "드문 경우 에 유용할 수 있습니다 "
사용자가 특별히 요청할 때 기가바이트를 쓰지 않는 것이 논리적입니다. 여전히 수동으로 청소해야 합니다.
 
Slawa :

네비게이터에서 계정 위로 마우스를 가져갑니다. 툴팁에 계정이 표시됩니다.

계정 연결 후 터미널 로그에 상계 또는 헷지가 기록됩니다.

프로그래밍 방식으로 어떻게?
 
fxsaber :
프로그래밍 방식으로 어떻게?
 ENUM_ACCOUNT_MARGIN_MODE margin_mode=( ENUM_ACCOUNT_MARGIN_MODE ) AccountInfoInteger ( ACCOUNT_MARGIN_MODE );
bool is_hedging=(margin_mode== ACCOUNT_MARGIN_MODE_RETAIL_HEDGING );
 
fxsaber :
계정/테스터에서 헤지 모드가 활성화/비활성화되었는지 어떻게 알 수 있습니까? 오프라인 도움말에는 이에 대한 언급이 없습니다.

MQL5 참조 - 표준 상수, 열거 및 구조 - 환경 상태 - 계정 정보 - ENUM_ACCOUNT_MARGIN_MODE

MQL5 참조 - 계정 정보 - AccountInfoInteger - ENUM_ACCOUNT_INFO_INTEGER - ENUM_ACCOUNT_MARGIN_MODE

MQL5\Include\Trade\Trade.mqh - CTrade::IsHedging

 
Slawa :

MQL5 참조 - 표준 상수, 열거 및 구조 - 환경 상태 - 계정 정보 - ENUM_ACCOUNT_MARGIN_MODE

MQL5 참조 - 계정 정보 - AccountInfoInteger - ENUM_ACCOUNT_INFO_INTEGER - ENUM_ACCOUNT_MARGIN_MODE

MQL5\Include\Trade\Trade.mqh - CTrade::IsHedging

고맙습니다! 고백합니다. 헤지라는 단어를 찾고 있었습니다.