테스터의 긴 거래를 복사하지 않도록 자신을 보호하는 방법

 

모두를 환영합니다.

질문은 제목에 있습니다. 작업은 실제 데이터에서 어드바이저가 사용되지 않도록 보호하는 동시에 전략 테스터 에서 실행할 수 있도록 하는 것입니다. 데모 버전이 전략 테스터에서 실행되고 작동하는지 확인할 수 있지만 수동으로 다른 터미널로 전송하여 거래를 복사하는 것은 불가능합니다.

문제는 EA 거래가 몇 주 동안 지속될 수 있다는 것입니다. 이것은 파렴치한 사용자가 큰 스트레스 없이 전략 테스터에서 데모 버전을 실행하고 하루 늦게 다른 터미널에서 자신의 손으로 같은 거래를 열 수 있음을 의미합니다. 동시에 그는 많은 이익을 잃지 않습니다.

이에 테스터 내 Expert Advisor는 현재보다 한 달 앞선 날짜까지만 작업하기로 결정했다. 동시에 새로운 날짜가 오면 고문은 테스터에서 더 오래 일할 수 있도록 허용해야 합니다.

테스터의 작업 종료 날짜를 하드 코딩하는 것은 좋지 않습니다. 사용자는 견적이 단순히 Expert Advisor에 기록되는 것이 이 날짜까지라고 의심하기 시작합니다. 이것이 바로 거래되는 이유입니다. 따라서 테스터에서 현재 날짜를 가져와야 하며, EA가 1개월 미만의 날짜까지만 작동하도록 해야 합니다.

테스터에서 현재 날짜를 가져오기가 어려웠지만 가능했습니다. 그러나 교활한 사용자가 잡혔습니다. 그는 컴퓨터의 시간을 앞으로 설정하고 테스터에서 완료된 트랜잭션을 침착하게 읽습니다.

지난 달의 견적을 기반으로 테스터에서 실행을 방지하는 방법은 무엇입니까?

동료들에게 무엇을 제안합니까?

 
더 말할게! WINAPI에 대한 약간의 통찰력이 있으면 테스터의 "시작" 버튼을 누르고 보고서를 저장하고 거기에서 새로운 거래를 읽는 유틸리티를 작성할 수 있습니다. 그럼 터미널에서 트랜잭션을 복제하면 됩니다.
 

예, Dmitry, 이것은 WinAPI 없이도 AutoIT 스크립트의 도움으로만 수행할 수 있습니다.

동시에 일일 거래 세션에서 일하는 Expert Advisors뿐만 아니라 5분 세션에서 일하는 Expert Advisor들도 불편함을 느끼기 시작합니다.

내 생각에 가장 합리적인 것은 현재 날짜보다 한 달 전에 테스터를 중지하는 것입니다. 그러나 날짜가 컴퓨터에서 번역되면 어떻게 해야 합니까?

내 생각은 어떻게 든 테스터의 터미널에서 최신 따옴표의 실시간을 얻는 것입니다. 하지만 내가 그것을 하는 방법을 알아낼 때까지. 또한 추가 자체 작성 DLL을 엉망으로 만들고 싶지 않습니다. 또한 클라이언트를 "겁주게" 합니다.

 
George Merts :

예, Dmitry, 이것은 WinAPI 없이도 AutoIT 스크립트의 도움으로만 수행할 수 있습니다.

동시에 일일 거래 세션에서 일하는 Expert Advisors뿐만 아니라 5분 세션에서 일하는 Expert Advisor들도 불편함을 느끼기 시작합니다.

내 생각에 가장 합리적인 것은 현재 날짜보다 한 달 전에 테스터를 중지하는 것입니다. 그러나 날짜가 컴퓨터에서 번역되면 어떻게 해야 합니까?

내 생각은 어떻게 든 테스터의 터미널에서 최신 따옴표의 실시간을 얻는 것입니다. 하지만 내가 그것을 하는 방법을 알아낼 때까지. 또한 추가 자체 작성 DLL을 엉망으로 만들고 싶지 않습니다. 또한 클라이언트를 "겁주게" 합니다.

터미널의 날짜는 번역되지 않습니다. TimeCurrent()는 최신 서버 시간 을 반환합니다. 그에게서 당신은 춤을 추어야합니다.
 
Dmitiry Ananiev :
터미널의 날짜는 번역되지 않습니다. TimeCurrent()는 최신 서버 시간을 반환합니다. 그에게서 당신은 춤을 추어야합니다.

그래서 TimeCurrent()는 테스터에서 시뮬레이션됩니다... 아니면 제가 뭔가를 놓치고 있는 건가요? 결국 테스터에서 실제 현재 시간 을 찾아야합니다.

이론적으로 일부 서버(자신의 서버 포함)에서 실제 현재 시간을 요청하면 WebRequest와 혼동될 수 있습니다. 그리고 전략 테스트의 요구 사항은 터미널에 이 서버의 주소를 입력하는 것입니다.

 
Игорь Герасько :

그래서 TimeCurrent()는 테스터에서 시뮬레이션됩니다... 아니면 제가 뭔가를 놓치고 있는 건가요? 결국 테스터에서 실제현재 시간 을 찾아야합니다.

테스터에서 컴퓨터의 현재 시간을 알 수 있습니다.

단 한 가지 문제가 있습니다. 악의적인 의도를 가진 사용자가 크게 변경할 수 있습니다.

이론적으로 일부 서버(자신의 서버 포함)에서 실제 현재 시간을 요청하면 WebRequest와 혼동될 수 있습니다. 그리고 전략 테스트의 요구 사항은 터미널에 이 서버의 주소를 입력하는 것입니다.

WebRequest는 전략 테스터에서 실행되지 않습니다.
 

George Merts :

따라서 테스터에서 현재 날짜를 가져와야 하며, EA가 1개월 미만의 날짜까지만 작동하도록 해야 합니다.

--

[]...나는 교활한 사용자에게 잡혔습니다. 그 교활한 사용자는 밝혀진 대로 컴퓨터의 시간을 앞당기고 테스터에서 완료된 트랜잭션을 침착하게 읽습니다.

위에서 조언한 대로 DLL 또는 WebRequest 를 통해 제3의 독립 당사자로부터 시간을 얻으십시오. 다른 선택지가 없는 것 같아요.
 
Igor Konyashin :
위에서 조언한 대로 DLL 또는 WebRequest를 통해 제3의 독립 당사자로부터 시간을 얻으십시오. 다른 선택지가 없는 것 같아요.
WebRequest는 전략 테스터 에 적용할 수 없는 것으로 밝혀졌습니다. 네, 많이 아쉽긴 한데, 아직까지는 자체 작성 DLL 외에는 딱히 생각해낼 것이 없습니다... 하지만 실제 터미널 견적을 마지막으로 받은 날짜만 알면 될 것 같습니다...
 
George Merts :

테스터에서 컴퓨터의 현재 시간을 알 수 있습니다.

단 하나의 문제가 있습니다. 악의적인 의도를 가진 사용자가 크게 변경할 수 있습니다.

그래서 나는 같은 것에 대해 이야기하고 있습니다. 그러나 TimeCurrent() 도 테스터에 적합하지 않습니다.
WebRequest는 전략 테스터에서 실행되지 않습니다.
몰랐다. 정보 주셔서 감사합니다.
 
Игорь Герасько :
그래서 나는 같은 것에 대해 이야기하고 있습니다. 그러나 TimeCurrent()는 테스터에서도 작동하지 않습니다.
TimeCurrent() - 작동하지 않고 컴퓨터의 현재 시간이 아니라 전략 테스터 의 설정에 따라 견적 시간을 반환합니다.
 
George Merts :
TimeCurrent() - 작동하지 않고 컴퓨터의 현재 시간이 아니라 전략 테스터 의 설정에 따라 견적 시간을 반환합니다.
어떤 설정을 어디에 삽입해야 합니까? 당신이 완전히 혼란스러워하는 것. TimrCurrent() 서버 시간. 테스터에서는 서버 시간에 따른 틱이 도착한 시간입니다. 내가 쓰는 올빼미의 수는 컴퓨터의 현지 시간과 관련이 없습니다.
사유: