두 MT4 터미널 간의 데이터 교환?

 

안녕하세요!


다음 전략을 구현하고 싶습니다. "다른 DC의 따옴표 차이에 대한 분기점":

이 전략은 매우 간단합니다. 두 개의 DC에서 하나의 상품에 반대 이율을 적용하고 호가가 올바른 방향으로 분기할 때까지 기다린 다음 두 비율을 모두 닫고 총 이익을 얻을 수 있다는 사실로 구성됩니다(가치 견적의 차이는 두 DC에 대한 총 수수료보다 커야 합니다.


이 전략은 오랫동안 새로운 것이 아니지만 아직 구현된 것을 보지 못했습니다. 여기에서 구현하고 싶습니다.


가장 큰 문제는 매 순간 두 DC의 견적가를 알아야 하고 어드바이저가 하나의 터미널(하나의 DC 포함)로만 작업한다는 사실에 있습니다.

저것들. MT4 단말기마다 어드바이저가 런칭되는데 이 어드바이저는 자신의 따옴표만 알고 '이웃'의 따옴표는 모릅니다!!!

두 고문이 서로의 인용문을 알고 있는지 확인하는 것이 필요합니다. 서로 데이터를 교환 할 수 있습니다.


여기에 대해 누가 알고 있는지 공유하고 싶습니다. 누군가 스레드가 이미 유사한 전략을 구현했을 수도 있습니다. 피드백도 듣고 싶습니다.


데이터를 교환하는 2가지 방법을 생각해 냈습니다.


1) 가장 평범한 것: 파일에 데이터를 쓰고 다른 조언자가 이 파일을 읽는 것. 기본적으로 하는 것은 매우 쉽습니다. 유일한 문제는 EA가 "해당 디렉토리"에서만 파일을 쓰고 읽을 수 있다는 것입니다. 그러나 모든 것은 dll의 도움으로 해결됩니다.

여전히 좋은 단점이 있습니다: 작은 환율. 메모리에서 읽고 쓰는 속도(((.


2) 이것이 가능한지 확신이 서지 않지만(저는 훌륭한 프로그래머가 아니기 때문에), 이제 프로그래머들에게 다음과 같이 묻고 싶습니다.

메모리에 장소를 할당하고 거기에 따옴표를 쓰면 이 장소에 대한 주소는 두 조언자 모두에게 알려져 있으므로 이 장소에 읽고 쓸 수 있습니다.

물론 이 모든 기술은 dll을 통해 이루어집니다.

3) 다른 GlobalAddAtom을 찾았지만 dll을 작성하는 방법은 무엇입니까? 저것들. 나는 그것이 어떻게 작동하는지 이해하지 못합니까?


누군가가 이 전략에 관심이 있고 그것을 구현하고 싶다면 저에게 연락하십시오. 제 모범 사례를 기꺼이 공유하겠습니다!

 
그러한 전략에 대한 슬픈 결말이 발생할 수 있습니다 . http://www.kroufr.ru/forum/index.php/topic,6265.0.html
 
그리고 DLL을 통해 이러한 종류의 작업을 어떻게 상상할 수 있습니까?
 
geopoint :
그러한 전략에 대한 슬픈 결말이 발생할 수 있습니다 . http://www.kroufr.ru/forum/index.php/topic,6265.0.html
내가 잘 이해하지 못했다? 아마 DC가 알면 그냥 던질 수 있다는 사실에 관한 것이겠죠?
 
D500_Rised :
그리고 DLL을 통해 이러한 종류의 작업을 어떻게 상상할 수 있습니까?

표준 MQL4 도구는 교환할 수 없다는 것뿐입니다. 그렇게 생각합니다. 하지만 방법을 아시는 분은 공유 부탁드립니다!

그리고 dll을 통해 예를 들어 한 디렉토리가 아닌 모든 디렉토리에서 파일을 읽을 수 있는 함수를 연결할 수 있습니다!

 

각 터미널의 dll은 여전히 동일한 공유 파일에 액세스합니다. 이것은 많은 오류를 일으켜 그러한 회로의 안정적인 작동을 불가능하게 만드는 것 같습니다. 임호.

멀티터미널 보셨나요? 다른 서버에 동시에 연결할 수 있는 방법이 있습니까?

멀티터미널이 여러 계정으로 작업할 수 있는 기능이 있으면 실제 서버와 데모 서버를 동시에 작업할 수 있다는 생각이 떠올랐습니다. 데모 서버 주소를 다른 DC의 실제 서버 주소로 바꾸면 어떻게 될까요?

 
D500_Rised :

각 터미널의 dll은 여전히 동일한 공유 파일에 액세스합니다. 이것은 많은 오류를 일으켜 그러한 회로의 안정적인 작동을 불가능하게 만드는 것 같습니다. 임호.

멀티터미널 보셨나요? 다른 서버에 동시에 연결할 수 있는 방법이 있습니까?

멀티터미널이 여러 계정으로 작업할 수 있는 기능이 있으면 실제 서버와 데모 서버를 동시에 작업할 수 있다는 생각이 떠올랐습니다. 데모 서버 주소를 다른 DC의 실제 서버 주소로 바꾸면 어떻게 될까요?

이미 파일을 통해 이 방법을 수행했기 때문에 오류가 없습니다. 파일이 2개뿐입니다. 각 EA에는 따옴표를 쓰는 자체 파일이 있으며 EA는 서로의 파일을 읽습니다. 가장 중요한 것은 올바르게 읽고 쓰는 것입니다(EA는 항상 같은 파일을 읽고 항상 같은 파일에 씁니다). 작업의 안정성이 메모리에 액세스하는 것보다 나쁘다는 데 동의합니다.


멀티터미널에서는 그런 가능성이 없으며, 설령 있다 해도 그곳에서 Expert Advisors를 실행할 수 없습니다. 그러한 계획을 수동으로 구현하시겠습니까 ??? (나는 원하지 않는다)

 
D500_Rised :

멀티터미널 보셨나요? 다른 서버에 동시에 연결할 수 있는 방법이 있습니까?


아니요
 

나는 정확한 시간 순서의 가능성을 의심합니다: write_1---read_2, write_2---read_1.

Expert Advisors가 동일한 파일에서 발생하지 않도록 프로세스를 정렬하는 방법, 이전에 읽은 데이터를 새 데이터와 구별할 수 있습니까(추가 임시 식별 필요)

그리고 일반적으로 게임이 촛불의 가치가 있습니까? 따옴표의 차이에 도달하면 한 번에 여러 가지가 이 게임에 반대됩니다.

1-2 스프레드(2*2-4핍)

2- 슬립

3- 실제 주문 실행 속도가 낮음(딜러가 주문을 처리하는 동안 가격이 변경되어 양의 차이를 무효화할 수 있음) + 재견적

등.

 
D500_Rised :

나는 정확한 시간 순서의 가능성을 의심합니다: write_1---read_2, write_2---read_1.

Expert Advisors가 동일한 파일에서 발생하지 않도록 프로세스를 정렬하는 방법, 이전에 읽은 데이터를 새 데이터와 구별할 수 있습니까(추가 임시 식별 필요)

그리고 일반적으로 게임이 촛불의 가치가 있습니까? 따옴표의 차이에 도달하면 한 번에 여러 가지가 이 게임에 반대됩니다.

1-2 스프레드(2*2-4핍)

2- 슬립

3- 실제 주문 실행 속도가 낮음(딜러가 주문을 처리하는 동안 가격이 변경되어 양의 차이를 무효화할 수 있음) + 재견적

등.

하나의 EA 는 항상 파일에 쓰고 다른 EA는 항상 이 파일을 읽고 어떤 순서로 발생하는지는 중요하지 않기 때문에 문제가 없습니다. 데이터의 관련성을 확인하기 위해 현지 시간을 사용했습니다. 따옴표는 100밀리초마다 기록되고 관련성은 현지 시간으로 확인됩니다.


"촛불"에 관해서는 : 정확한 답을 몰라서 확인하고 싶습니다. 너도 몰라서 눈으로 알아냈으니 정량적 데이터가 더 설득력 있어. 전체 스프레드 = 4점, 불일치가 10점이라면 나쁜 조건에서도 수익성 있는 6점 중 적어도 절반은 잡을 수 있습니다. 여러분은 어떻게 생각하시나요?

 
D500_Rised :

나는 정확한 시간 순서의 가능성을 의심합니다: write_1---read_2, write_2---read_1.

당신의 방법을 제안할 수 있습니까, 그렇지 않으면 우리는 한 가지 방법으로만 논의합니다: 파일을 통하지만 더 발전된 방법이 있습니다. 메모리를 통하는 방법에 대해 말씀해 주시겠습니까?