멀티스레딩에 대한 추가 정보 - 페이지 5

 

제가 전문가가 아니라서 미리 사과드립니다.

나는 고문을 쓰고 있다.

일:

1) 여러 지표를 사용합니다. 동일한 표시기를 다른 설정(기간)과 함께 사용할 수 있습니다. 신호 수신 시간을 줄이기 위해 병렬로 작동하게 하는 방법은 무엇입니까?

2) 지표로부터 신호를 수신함과 동시에 수익성이 있거나 없는 포지션을 지속적으로 확인하고 청산합니다. 또한 공개적으로 많은 입장이 있다고 합시다. 이 과정을 부분적으로 병렬화하는 것이 바람직합니다. 3~4개의 스레드에서 1000개의 주문을 확인 한다고 가정해 보겠습니다.

3) 위의 프로세스와 병행하여 단락 1의 지표에서 수신된 신호에 따라 구매 또는 판매를 수행합니다.


그리고 가장 흥미로운 점은 테스터와 테스터의 최적화를 사용할 수 있도록 이러한 모든 작업을 병렬화하는 방법입니다.

가급적이면 예를 들어 코를 찌르십시오. 미리 감사드립니다.

 
dd :

제가 전문가가 아니라서 미리 사과드립니다.

일:

1) 여러 지표를 사용합니다. 동일한 표시기를 다른 설정(기간)과 함께 사용할 수 있습니다. 즉, 신호 수신 시간을 줄이기 위해 병렬로 작동하게 하는 방법입니다.

2) 지표로부터 신호를 수신함과 동시에 수익성이 있거나 없는 포지션을 지속적으로 확인하고 청산합니다. 또한 공개적으로 많은 입장이 있다고 합시다. 이 과정을 부분적으로 병렬화하는 것이 바람직합니다. 3~4개의 스레드에서 1000개의 주문을 확인 한다고 가정해 보겠습니다.

3) 위의 프로세스와 병행하여 단락 1의 지표에서 수신된 신호에 따라 구매 또는 판매를 수행합니다.


그리고 가장 흥미로운 점은 테스터와 테스터의 최적화를 사용할 수 있도록 이러한 모든 작업을 병렬화하는 방법입니다.

가급적이면 예를 들어 코를 찌르십시오. 미리 감사드립니다.

터미널을 한 번 이상 열어 본 적이 있습니까? 테스터와 옵티마이저는 계정 거래와 동시에 항상 사용할 수 있습니다.

흥미롭게도, 병렬화의 필요성에 대한 질문이 발생하는 경우 지표로부터 신호를 수신하는 데 얼마나 걸립니까?

 
Dmitry Fedoseev :

터미널을 한 번 이상 열어 본 적이 있습니까? 테스터와 옵티마이저는 계정 거래와 동시에 항상 사용할 수 있습니다.

흥미롭게도, 병렬화의 필요성에 대한 질문이 발생하는 경우 지표로부터 신호를 수신하는 데 얼마나 걸립니까?

열렸고 분명히 당신보다 더 많습니다. 1틱은 1초입니다. 이 시간 동안 4가지 지표(그래프 작성)를 확인해야 합니다. 신호 받기, 매수 또는 매도, 1000개 주문 마감 등... 그리고 매 밀리초가 중요합니다... 더 정확하게는 계정의 빨간색으로 표시됩니다. 시간은 돈이다 :)
 
dd :

1) 여러 지표를 사용합니다. 동일한 표시기를 다른 설정(기간)과 함께 사용할 수 있습니다. 신호 수신 시간을 줄이기 위해 병렬로 작동하게 하는 방법은 무엇입니까?

2) 지표로부터 신호를 수신함과 동시에 수익성이 있거나 없는 포지션을 지속적으로 확인하고 청산합니다. 또한 공개적으로 많은 입장이 있다고 합시다. 이 과정을 부분적으로 병렬화하는 것이 바람직합니다. 3~4개의 스레드에서 1000개의 주문을 확인한다고 가정해 보겠습니다.

3) 위의 프로세스와 병행하여 단락 1의 지표에서 수신된 신호에 따라 구매 또는 판매를 수행합니다.

하나의 기기에서 시작된 표시기는 모두 하나의 스레드에서 작동합니다. 그러나 정상적으로 작성되면 지연이 발생하지 않습니다(밀리초 단위로 계산됨).

그러나 모든 거래 작업은 추가 Expert Advisors/스크립트를 사용하여 병렬화할 수 있습니다. 필요에 따라 기본 EA에서 호출하거나 지속적으로 실행하십시오. 구현 예는 이 문서 에 있습니다. 또는 비동기식 OrderSend를 사용하지만 제어하기가 조금 더 어려워집니다.


dd :

그리고 가장 흥미로운 점은 테스터와 테스터의 최적화를 사용할 수 있도록 이러한 모든 작업을 병렬화하는 방법입니다.

테스터의 경우 이 모든 것이 필요하지 않으며 동기식으로 작동하며 틱을 놓치지 않습니다. 테스터용과 온라인용(if( IsTesting())용) 2가지 옵션을 만드십시오.

Многопоточный асинхронный WebRequest на MQL5 своими руками
Многопоточный асинхронный WebRequest на MQL5 своими руками
  • www.mql5.com
Реализация торговых алгоритмов часто требует анализа информации из различных внешних источников, в частности из Internet. MQL5 предоставляет функцию WebRequest для отправки HTTP-запросов во "внешний мир", но она, к сожалению, обладает одним заметным недостатком. Эта функция является синхронной, а потому блокирует работу эксперта на все время...
 
Andrey Khatimlianskii :

하나의 기기에서 시작된 표시기는 모두 하나의 스레드에서 작동합니다. 그러나 정상적으로 작성되면 지연이 발생하지 않습니다(밀리초 단위로 계산됨).

그러나 모든 거래 작업은 추가 Expert Advisors/스크립트를 사용하여 병렬화할 수 있습니다. 필요에 따라 기본 EA에서 호출하거나 지속적으로 실행하십시오. 구현 예는 이 문서 에 있습니다. 또는 비동기식 OrderSend를 사용하지만 제어하기가 조금 더 어려워집니다.


테스터의 경우 이 모든 것이 필요하지 않으며 동기식으로 작동하며 틱을 놓치지 않습니다. 테스터용과 온라인용(if( IsTesting())용) 2가지 옵션을 만드십시오.



하나의 기기에서 시작된 표시기는 모두 하나의 스레드에서 작동합니다. 그러나 정상적으로 작성되면 지연이 발생하지 않습니다(밀리초 단위로 계산됨).

--- cheto는 이해하지 못했습니다. 나는 내 자신의 지표를 쓰지 않을 것입니다. 나는 일반 것을 사용합니다. 그리고 요점은 응답 시간을 줄이기 위해 병렬로 사용하고 싶다는 것입니다 ...


테스터의 경우 이 모든 것이 필요하지 않으며 동기식으로 작동하며 틱을 놓치지 않습니다. 테스터용과 온라인용(if( IsTesting())용) 2가지 옵션을 만드십시오.

---- 전혀 이해가 되지 않습니다. 누가 필요하지 않습니까? 그것은 동기식으로 작동합니다 --- 하지만 제 비동기식을 고려하기 위해 반대 방향이 필요합니다. 두 가지 옵션이 무엇입니까? 내 Expert Advisor 버전이 하나 있고 테스터에서 실행하고 싶지만 프로세스를 병렬화하여 테스터에서 볼 수 있도록 하고 싶습니다.

모든 것이 순차적으로 수행된다는 사실 때문에 나는 인출을 시작하고 그런 것은 없습니다.

 
dd :

--- cheto는 이해하지 못했습니다. 나는 내 자신의 지표를 쓰지 않을 것입니다. 나는 일반 것을 사용합니다. 그리고 요점은 응답 시간을 줄이기 위해 병렬로 사용하고 싶다는 것입니다 ...

응답 시간을 측정했습니까? 병렬화에서 더 많은 것을 잃게 됩니다.


dd :

---- 전혀 이해가 되지 않습니다. 누가 필요하지 않습니까? 그것은 동기식으로 작동합니다 --- 하지만 제 비동기식을 고려하기 위해 반대 방향이 필요합니다. 두 가지 옵션이 무엇입니까? 내 Expert Advisor 버전이 하나 있고 테스터에서 실행하고 싶지만 프로세스를 병렬화하여 테스터에서 볼 수 있도록 하고 싶습니다.

한 고문:

 if ( IsTesting() )
{
   // работаем нормально
}
else
{
   // распараллеливаем торговые приказы
}

테스터에서 병렬화를 테스트하는 이유는 무엇입니까?

 
dd :

모든 것이 순차적으로 수행된다는 사실 때문에 나는 인출을 시작하고 그런 것은 없습니다.

거래 주문 전송을 배포하거나 OrderSendAsync를 사용합니다 .

군중 속에서 많은 거래를 성사시켜야 하는 경우 큰 반대편 하나를 열어 이익을 고정한 다음 차분하게 OrderCloseBy를 다른 하나에 대해 닫을 수 있습니다.
 
Andrey Khatimlianskii :

거래 주문 전송을 배포하거나 OrderSendAsync를 사용합니다 .

그래서 그것은 단지 보내기 주문이 아니라 많은 검사가 수행되고 있습니다. 그러나 그들은 하나의 기능이 완료될 때까지 모두 큐에 대기하고 다른 기능은 실행되지 않습니다....

나는 문제의 조건에서 모든 것을 설명했습니다. 그리고 이것은 복잡한 작업입니다. DLL 또는 채팅 또는 다른 것 - 어떤 시나리오에서 이러한 작업을 병렬화할 수 있는지와 동시에 테스터에서 운전하여 무엇이 무엇인지 이해하는 데 흥미를 줍니다.

 
dd :

그래서 그것은 단지 보내기 주문이 아니라 많은 검사가 수행되고 있습니다. 그러나 그들은 하나의 기능이 완료될 때까지 모두 큐에 대기하고 다른 기능은 실행되지 않습니다....

나는 문제의 조건에서 모든 것을 설명했습니다. 그리고 이것은 복잡한 작업입니다. DLL 또는 채팅 또는 다른 것 - 어떤 시나리오에서 이러한 작업을 병렬화할 수 있는지와 동시에 테스터에서 운전하여 무엇이 무엇인지 이해하는 데 흥미를 줍니다.

얼마나 소중한 시간을 낭비하고 있으며 그 결과는 무엇입니까? 그리고 그러한 "손실"이 없다면 이익은 무엇입니까?

 
Dmitry Fedoseev :

얼마나 소중한 시간을 낭비하고 있으며 그 결과는 무엇입니까? 그리고 그러한 "손실"이 없다면 이익은 무엇입니까?

dofiga, 테스터에서 이 전략을 실행하려면 24개의 코어를 마음대로 사용할 수 있어 5일이 걸립니다. 그리고 하나의 코어가 작동합니다. 이 시간 동안 아무도 필요로 하지 않는 어리석은 로그가 몇 테라바이트까지 늘어날 수 있다는 사실에 대해서는 침묵합니다. 그리고 이것은 최적화가 없습니다. 그리고이 어리석은 로그는 어떤 식 으로든 끌 수 없습니다 ...

프로세스를 가속화하면 각각 자체 코어에 4개의 차트가 있다고 가정해 보겠습니다. 이 항목이 4배 증가합니다. 또한 1000개의 거래를 성사시키는 별도의 프로세스가 있다고 가정해 보겠습니다. 또는 이 프로세스를 5개 또는 10개 스레드로 10번 분할합니다. 또한 신호에서 위치를 여는 별도의 프로세스 ...

나는 여러 번 그리고 때때로 ...

그러나 각 밀리초 + 브로커까지의 지연 + 브로커에서 거래소까지의 지연(이것이 주방이 아닌 경우)은 엄청난 손실입니다. 시베리아에서 그들이 이것을 이해하지 못하는 것은 이상합니다 ...
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...