따라서 지연 이 만료 시간 까지 닫히면 OnTrade 기능에 의해 추적되지 않는 것입니다.
추신: 일반적으로 OnTrade 거래 이벤트 핸들러의 목적은 명확하지 않습니다. 손절매와 테이크를 포착하지 못한다면, 주문 만료 시간까지 폰의 청산을 포착하지 못한다면 말입니다. 우리 모두는 알고리즘을 실행하는 동안 다시 확인해야 합니다. 이 접근 방식은 혼란스럽기 때문에 거래 이벤트 처리기에 의존하지만 다시 확인해야 합니다. 또한 재확인 후 OnTrade()에서 처리하지 않는 이벤트를 포착합니다. 글쎄, 그것은 무엇을위한 것입니까? 그러나 이제 우리는 테트리스를 플레이하고 차트에서 온갖 종류의 넌센스를 그릴 수 있습니다. 개발자 여러분, 플랫폼의 거래 부분을 논리적인 결론으로 가져오십시오.
나는 정리해고에 대해 아무 말도 할 수 없고, 그들과 함께 일하지도 않았고, 아직 필요도 없었지만, 테스터와 실시간 모두에서 OnTrade에서 스톱과 테이크가 완벽하게 처리됩니다.
OnTrade는 모든 거래, 거래량, 이익을 추적하기 때문에 삽입 없이도 모든 것이 작동합니다. 이 모든 것이 각 기호에 대해 개별적으로 OnDeinite에 요약되어 표시됩니다. 그리고 모든 합산 지표(거래 횟수, 이익)가 테스터의 보고서와 정확히 일치하기 때문에 OnTrade() 함수의 작동을 의심할 이유가 없습니다.
OnTrade에서 처리되지 않는 유일한 것은 테스트 종료 시 포지션 청산('테스트 종료' 주석 포함)과 테스터에서 중단에 의한 청산(주석 'so ...')에 대한 거래입니다. , 그들은 테스트 모드에 있으며 OnDeinit에서 추가 프로세스입니다. 테스터 로그에서 발췌:
2011.08.09 00:06:43 Core 1 로그 파일 "E:\Program Files\MetaTrader 5\Tester\Agent-127.0.0.1-3000\logs\20110809.log" 작성 2011.08.09 00:06:43 코어 1 EURUSD,H1: 13962ms 이내에 생성된 888296틱(275바)(역사의 총 바 6479, 총 시간 16177ms) 2011.08.09 00:06:43 테스트 간격의 8%에서 Core 1 stop out 발생 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 Deinit 종료 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 모든 이익 = -9072.04 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 총 거래수: 17 ..... 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 -------------------------------- -------- 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 총 이익 EURGBP = -4738.97 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 이번주 수익 EURGBP = 319.68 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 총 이익 GBPUSD = -3775.86 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 이번주 수익 GBPUSD = -1798.83 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 총 이익 EURUSD = -557.21 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 이번주 수익 EURUSD = 65.85 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 잔액=927.96 Equite=927.96 Profit=0.00 MarginLevel=0.00 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 ---------------제보---------------- --- 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 잔액=10000.00 Equite=927.96 Profit=0.00 MarginLevel=0.00 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 오류 열기: 1 닫기 오류: 0 수정 오류: 0 인용: 1 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 런타임: 0분 14초 2011.08.09 00:06:43 핵심 1 2011.01.18 10:11:00 ChTestExp Expert Advisor가 H1 기간 동안 EURUSD 차트에서 2011.01.18 10:11 작업을 완료했습니다. 2011.08.09 00:06:43 Core 1 2011.01.18 10:11:00 Deinit 실행 2011.08.09 00:06:43 코어1 2011.01.18 10:11:00 OnDeinit_UninitReason = 또 다른 이유 2011.08.09 00:06:43 Core 1 OnTester 결과 0 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 주문이 1.59804에 1.65를 매수했습니다 [#69 1.59804에 1.65 GBPUSD를 매수] 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 거래 성사 [#68 1.59804에서 1.65 GBPUSD 구매] 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 거래 #68 1.59804에 1.65 GBPUSD 구매 완료(주문 #69 기준) 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 테스트 종료 기한 1.59804 [판매 1.65 GBPUSD 1.57341182 tp: 1.57247] 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 주문이 0.83931에 0.45를 매수했습니다 [#68 매수 0.45 EURGBP 0.83931] 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 거래 수행 [#67 매수 0.45 EURGBP 0.83931] 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 거래 #67 매수 0.45 EURGBP 0.83931 완료(주문 #68 기준) 2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 29.09%에서 트리거된 포지션 스탑 아웃 [매도 0.45 EURGBP 0.83930333 tp: 0.80463] 2011.08.09 00:06:43 Core 1 2011.01.17 14:39:39 EURUSD 롱포지션, 손절매 청산 2011.08.09 00:06:43 코어1 2011.01.17 14:39:39 ------------------거래 #66 sl 1.32900
2011.08.09 00:06:43 코어 1 2011.01.17 14:39:39 oldDealsTotal=65 newDealsTotal=66
테스터의 보고서에서:
결과
기록 품질:
100%
바:
275
티키:
888296
순이익:
-9 072.04
총 이윤:
1 652.29
총 손실:
-10 724.33
수익성:
0.15
우승 기대치:
-533.65
회복 계수:
-0.92
샤프 비율:
-0.35
잔액 감소:
잔액에 의한 절대 손실:
9 072.04
잔액별 최대 인출액:
10 392.34 (91.80%)
잔액별 상대적 하락:
91.80% (10 392.34)
자금 인출:
수단에 의한 절대적 감소:
9 072.04
자기자본으로 인한 최대 손실액:
9 852.02 (91.39%)
자기 자본에 의한 상대적 하락:
91.39% (9 852.02)
총 거래:
17
짧은 거래(% 승):
10 (70.00%)
긴 거래(% 승):
7 (85.71%)
총 거래:
67
수익성 있는 거래(전체의 %):
13 (76.47%)
손실 거래(전체의 %):
4 (23.53%)
가장 큰 수익을 내는 거래:
263.25
가장 큰 손실 거래:
-5 036.39
평균 수익성 거래:
127.10
평균 손실 거래:
-2 681.08
최대 연속 상금 수(이익):
10 (1 320.30)
최대 연속 손실 수(손실):
2 (-4 084.59)
최대 연속 수익(승리 횟수):
1 320.30 (10)
최대 연속 손실(손실 수):
-5 036.39 (1)
평균 연속 승리:
4
평균 연속 손실:
하나
보시다시피, 독립적으로 계산된 최종 수치는 동일하므로 모든 것이 정확합니다. 특히 stop-out을 예로 들었다.
그런 다음 서비스 데스크에 작성하고 코드를 첨부하십시오.
네, 전문가의 코드를 첨부하여 서비스 데스크에 가는 것이 좋습니다.
코드에 대해 걱정하지 마십시오. 테스트 후에 모든 것을 지웁니다. 우리의 주요 임무는 오류를 찾는 것 입니다.
다른 질문. CopyTime 기능을 사용하고 있습니다 . 부르다:
어떤 이유로 값이 D'2011.08.01'인 요소 하나만 반환합니다. 그리고 D'2011.07.01'은 어디에 있습니까? 캐치가 뭐에요?
PS 배열 Array[]는 동적입니다.
다른 질문. CopyTime 기능을 사용하고 있습니다 . 부르다:
어떤 이유로 값이 D'2011.08.01'인 요소 하나만 반환합니다. 그리고 D'2011.07.01'은 어디에 있습니까? 캐치가 뭐에요?
PS Array[] 배열은 동적입니다.
예, 어떤 이유로 첫 번째 요소를 건너뛰었습니다. 서비스 데스크에 글을 쓰십시오.
1 2011.08.01 00:00:00
0 2011.07.01 00:00:00
다른 질문. CopyTime 기능을 사용하고 있습니다 .
이미 유사한 요청이 있습니다.
우리는 이해한다.
여기에 또 다른 미스터리가 있습니다. 나는 어떤 식 으로든 버그를 잡을 수 없습니다. 내 것인지 터미널인지 모르겠습니다.
전문가가 주문한 수를 세는 간단한 코드가 있습니다. 카운터는 전역 변수에 저장됩니다. 다음과 같이 보입니다.
이 개수는 주문 설명에 사용됩니다. 그 결과, 나는 다음 주문의 수가 이미 시장에 있는 포지션보다 (몇 단위만큼) 적다는 것을 주기적으로 관찰합니다. 로그에 오류가 없습니다.
어떤 아이디어? 예를 들어 특정 조건에서 터미널을 종료할 때 터미널이 저장하지 않기 때문에 누군가 가 전역 변수의 마지막 값 과 유사한 "사라짐"에 직면했을 수 있습니다(예: 연결이 분실 - 단 하나의 버전)?
여기에 또 다른 미스터리가 있습니다. 나는 어떤 식 으로든 버그를 잡을 수 없습니다. 내 것인지 터미널인지 모르겠습니다.
이런 식으로 시도하십시오. 나는 글로벌에서 진실을 추론하지 않았다. 그러나 모든 것이 올바른 것으로 간주됩니다.
이런 식으로 시도하십시오. 나는 글로벌에서 진실을 추론하지 않았다. 그러나 모든 것이 올바른 것으로 간주됩니다.
개발자:
따라서 지연 이 만료 시간 까지 닫히면 OnTrade 기능에 의해 추적되지 않는 것입니다.
추신: 일반적으로 OnTrade 거래 이벤트 핸들러의 목적은 명확하지 않습니다. 손절매와 테이크를 포착하지 못한다면, 주문 만료 시간까지 폰의 청산을 포착하지 못한다면 말입니다. 우리 모두는 알고리즘을 실행하는 동안 다시 확인해야 합니다. 이 접근 방식은 혼란스럽기 때문에 거래 이벤트 처리기에 의존하지만 다시 확인해야 합니다. 또한 재확인 후 OnTrade()에서 처리하지 않는 이벤트를 포착합니다. 글쎄, 그것은 무엇을위한 것입니까? 그러나 이제 우리는 테트리스를 플레이하고 차트에서 온갖 종류의 넌센스를 그릴 수 있습니다. 개발자 여러분, 플랫폼의 거래 부분을 논리적인 결론으로 가져오십시오.
나는 정리해고에 대해 아무 말도 할 수 없고, 그들과 함께 일하지도 않았고, 아직 필요도 없었지만, 테스터와 실시간 모두에서 OnTrade에서 스톱과 테이크가 완벽하게 처리됩니다.
예를 들어, 로그의 다음 행은 OnTrade 핸들러에 의해 표시됩니다.
2011.08.08 09:03:05 ChTestExp (EURUSD,H1) 손절매를 마감할 EURAUD의 매수 포지션2011.08.08 09:03:05 ChTestExp (EURUSD,H1) ------------------거래 #5263582 [sl 1.37819]
2011.08.08 09:03:05 ChTestExp (EURUSD,H1) oldDealsTotal=558 newDealsTotal=559
OnTrade() 함수에 Print( __FUNCTION__ ) 함수를 넣습니다. 그리고 언제 당신의 로그에있을 것입니다
손절매 발동 매수 0.10 AUDUSD 0.89783 sl: 0.89544 tp: 0.90024 [#15 매도 0.10AUDUSD 0.89544]
거래 #7 0.10 AUDUSD를 0.89544에 판매 완료(주문 #15 기준)
수행된 거래 [#7 0.89544에서 0.10AUDUSD 판매]
수행된 주문은 0.89544에 0.10을 매도 [#15 0.89544에 0.10 AUDUSD 매도]
OnTrade()가 작동하는지 보셨습니까?
OnTrade는 모든 거래, 거래량, 이익을 추적하기 때문에 삽입 없이도 모든 것이 작동합니다. 이 모든 것이 각 기호에 대해 개별적으로 OnDeinite에 요약되어 표시됩니다. 그리고 모든 합산 지표(거래 횟수, 이익)가 테스터의 보고서와 정확히 일치하기 때문에 OnTrade() 함수의 작동을 의심할 이유가 없습니다.
OnTrade에서 처리되지 않는 유일한 것은 테스트 종료 시 포지션 청산('테스트 종료' 주석 포함)과 테스터에서 중단에 의한 청산(주석 'so ...')에 대한 거래입니다. , 그들은 테스트 모드에 있으며 OnDeinit에서 추가 프로세스입니다. 테스터 로그에서 발췌:
2011.08.09 00:06:43 Core 1 로그 파일 "E:\Program Files\MetaTrader 5\Tester\Agent-127.0.0.1-3000\logs\20110809.log" 작성2011.08.09 00:06:43 코어 1 EURUSD,H1: 13962ms 이내에 생성된 888296틱(275바)(역사의 총 바 6479, 총 시간 16177ms)
2011.08.09 00:06:43 테스트 간격의 8%에서 Core 1 stop out 발생
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 Deinit 종료
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 모든 이익 = -9072.04
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 총 거래수: 17
.....
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 -------------------------------- --------
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 총 이익 EURGBP = -4738.97
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 이번주 수익 EURGBP = 319.68
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 총 이익 GBPUSD = -3775.86
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 이번주 수익 GBPUSD = -1798.83
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 총 이익 EURUSD = -557.21
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 이번주 수익 EURUSD = 65.85
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 잔액=927.96 Equite=927.96 Profit=0.00 MarginLevel=0.00
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 ---------------제보---------------- ---
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 잔액=10000.00 Equite=927.96 Profit=0.00 MarginLevel=0.00
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 오류 열기: 1 닫기 오류: 0 수정 오류: 0 인용: 1
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 런타임: 0분 14초
2011.08.09 00:06:43 핵심 1 2011.01.18 10:11:00 ChTestExp Expert Advisor가 H1 기간 동안 EURUSD 차트에서 2011.01.18 10:11 작업을 완료했습니다.
2011.08.09 00:06:43 Core 1 2011.01.18 10:11:00 Deinit 실행
2011.08.09 00:06:43 코어1 2011.01.18 10:11:00 OnDeinit_UninitReason = 또 다른 이유
2011.08.09 00:06:43 Core 1 OnTester 결과 0
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 주문이 1.59804에 1.65를 매수했습니다 [#69 1.59804에 1.65 GBPUSD를 매수]
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 거래 성사 [#68 1.59804에서 1.65 GBPUSD 구매]
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 거래 #68 1.59804에 1.65 GBPUSD 구매 완료(주문 #69 기준)
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 테스트 종료 기한 1.59804 [판매 1.65 GBPUSD 1.57341182 tp: 1.57247]
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 주문이 0.83931에 0.45를 매수했습니다 [#68 매수 0.45 EURGBP 0.83931]
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 거래 수행 [#67 매수 0.45 EURGBP 0.83931]
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 거래 #67 매수 0.45 EURGBP 0.83931 완료(주문 #68 기준)
2011.08.09 00:06:43 코어 1 2011.01.18 10:11:00 29.09%에서 트리거된 포지션 스탑 아웃 [매도 0.45 EURGBP 0.83930333 tp: 0.80463]
2011.08.09 00:06:43 Core 1 2011.01.17 14:39:39 EURUSD 롱포지션, 손절매 청산
2011.08.09 00:06:43 코어1 2011.01.17 14:39:39 ------------------거래 #66 sl 1.32900
2011.08.09 00:06:43 코어 1 2011.01.17 14:39:39 oldDealsTotal=65 newDealsTotal=66
테스터의 보고서에서:
보시다시피, 독립적으로 계산된 최종 수치는 동일하므로 모든 것이 정확합니다. 특히 stop-out을 예로 들었다.