MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1382

 
Boris :

그래서... 문서를 (다시) 읽었습니다.

문제. 뭐가 문제 야? CopyTicksRange 또는 CopyTicks를 통해 계산되지 않습니다.

계속해서 읽으세요... 설명서에서 내가 개인적으로 복사하고 굵은 빨간색으로 강조 표시된 내용을 읽을 때까지 계속 읽으십시오.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론

알렉세이 빅토 로프 , 2021.02.09 10:17

문서를 읽으십시오!!!

아니면 여기에서 모든 문서를 부분적으로 복사하시겠습니까 ???

성가신 일입니다 ... 따옴표가 달라 붙지 않습니다 ... 복제해야합니다 ...

from_msc

【인】 틱이 요청된 날짜입니다. 1970년 1월 1일부터 밀리초 단위로 지정됩니다 . from_msc 매개변수를 지정하지 않으면 기록의 맨 처음부터 틱이 제공됩니다. 틱은 시간 >= from_msc와 함께 반환됩니다.

to_msc

【인】 틱이 요청되는 날짜입니다. 1970년 1월 1일부터 밀리초 단위로 지정됩니다 . 틱은 시간 <= to_msc와 함께 반환됩니다. to_msc 매개변수를 지정하지 않으면 기록이 끝날 때까지의 모든 틱이 반환됩니다.


 
Boris :

그래서... 문서를 (다시) 읽었습니다.

문제. 뭐가 문제 야? CopyTicksRange 또는 CopyTicks를 통해 계산되지 않습니다.

예를 들어 저에게 생긴 질문은 mkl5를 잘 모릅니다. 이것은 시간이 아니라 날짜라는 단어입니다. 따라서 문제는 같은 날짜 내에 반환되는 금액은 무엇입니까?

그리고 힌트 후에. 밀리초 단위 로 시간을 얻는 방법은 무엇입니까?

 
Valeriy Yastremskiy :

예를 들어 저에게 생긴 질문은 mkl5를 잘 모릅니다. 이것은 시간이 아니라 날짜라는 단어입니다. 따라서 문제는 같은 날짜 내에 반환되는 금액은 무엇입니까?

그리고 힌트 후에. 밀리초 단위로 시간을 얻는 방법은 무엇입니까?

1초 = 1000밀리초. 그리고 "Date"는 "Date and Time"을 의미합니다. 유형이 날짜가 아니라 datetime이기 때문입니다.

 
Alexey Viktorov :

계속해서 읽으세요... 설명서에서 내가 개인적으로 복사하고 굵은 빨간색으로 강조 표시된 내용을 읽을 때까지 계속 읽으십시오.

성가신 일입니다 ... 따옴표가 달라 붙지 않습니다 ... 복제해야합니다 ...


젠장 ... 글쎄, 네 ... 효과가있었습니다!

 

mql4에 대한 질문:

EA 코드에는 스프레드 제한이 있으며 EA는 여러 차트에 설치됩니다.

한 쌍의 평균 스프레드를 입력 매개변수에 입력하는 것은 완전히 정확하지 않으며 딜링 데스크마다 다릅니다.

쌍의 평균 스프레드는 5pp이지만 몇 분 동안 12pp로 확장되는 경우가 있으며 이것은 롤오버 순간이 아닙니다.

평균 스프레드를 계산하고 확장된 오픈 포지션 이 아닌 것을 계산하기 위해 이것을 자동화하는 방법은 무엇입니까?

   MqlRates rates[]; 
   int copied= CopyRates ( NULL , PERIOD_M1 , 0 , 100 ,rates); 
   if (copied> 0 ) 
   for ( int e = ArraySize (rates)- 1 ; e >= 0 ; e--) {
     Print (e, "=" ,rates[e]. spread ); // всегда "0"
   }
 

안녕하세요 여러분, 지표를 사용하지 않고 거래를 열고 닫는 그러한 알고리즘을 기반으로 전문가를 만드는 방법과 가능합니까?

예를 들어, 우리는 두 개의 선을 취합니다. 하나의 추세선은 위쪽이고 두 번째 추세선도 아래쪽이며 서로 위에 놓여 있고 두 선 사이에 교차점이 나타납니다. 이 점이 시간상 15-30이라고 가정해 보겠습니다. 어떤 식 으로든 시작하기 위해 정확히 같은 시간에 자동으로 주문을 여는 방법, 알고리즘이 이러한 점을 찾도록하는 방법 및   포지션을 열다 ? 설명과 여러분의 의견을 듣고 싶습니다.

그런 T3를 기반으로 Expert Advisor를 만들 수 있습니까?
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением...
 
Vitaly Muzichenko :

mql4에 대한 질문:

EA 코드에는 스프레드 제한이 있으며 EA는 여러 차트에 설치됩니다.

한 쌍의 평균 스프레드를 입력 매개변수에 입력하는 것은 완전히 정확하지 않으며 딜링 데스크마다 다릅니다.

쌍의 평균 스프레드는 5pp이지만 몇 분 동안 12pp로 확장되는 경우가 있으며 이것은 롤오버 순간이 아닙니다.

평균 스프레드를 계산하고 확장된 오픈 포지션 이 아닌 것을 계산하기 위해 이것을 자동화하는 방법은 무엇입니까?

좋은 스프레드를 위해서는 모든 틱을 살펴봐야 합니다. 무스가 급격히 증가한 상인의 수사학과 문제로 판단합니다. 내가 이해하는 것처럼 문제는 길고 큰 스프레드에 있는 것이 아니라 이것이 가장 작은 문제이지만 스프레드가 급격하고 크고 단기적으로 증가하는 것입니다.

속성에 지정된 기호 를 보고 평균으로 간주하고 합리적으로 증가시켜 주문을 열기 전에 조건을 설정합니다. 그리고 닫거나 수정하려면 스프레드도 살펴봅니다. 음, 또는 마지막 3 - 10 틱의 스프레드가 평균으로 모니터링되었습니다.

 
Valeriy Yastremskiy :

좋은 스프레드를 위해서는 모든 틱을 살펴봐야 합니다. 무스가 급격히 증가한 상인의 수사학과 문제로 판단합니다. 내가 이해하는 것처럼 문제는 길고 큰 스프레드에 있는 것이 아니라 이것이 가장 작은 문제이지만 스프레드가 급격하고 크고 단기적으로 증가하는 것입니다.

속성에 지정된 기호 를 보고 평균으로 간주하고 합리적으로 증가시켜 주문을 열기 전에 조건을 설정합니다. 그리고 닫거나 수정하려면 스프레드도 살펴봅니다. 음, 또는 마지막 3 - 10 틱의 스프레드가 평균으로 모니터링되었습니다.

어제 약 1분 동안(10틱이 아님) 평균 4pp의 스프레드와 ~14pp의 스프레드가 있었습니다. 따라서 스프레드가 확장되는 순간에 로봇은 매수 포지션에 진입했습니다.

10틱은 확실히 부족하다

 
Vitaly Muzichenko :

어제 약 1분 동안(10틱이 아님) 평균 4pp의 스프레드와 ~14pp의 스프레드가 있었습니다. 따라서 스프레드가 확장되는 순간에 로봇은 매수 포지션에 진입했습니다.

10틱은 확실히 부족하다

여기에서 변경의 시작과 끝을 수정하는 작업이 있습니다. 단일 변경의 배출. 그리고 고정은 단기간에 이루어져야 합니다. 저것들. 시간에 따라 플로팅 윈도우로 평균 스프레드 값을 1초에서 10초로 고정합니다. 초당 평균 몇 틱을 보거나 평균 10초 동안 틱을 봐야 합니다. 나는 첫 번째 옵션을 선호합니다.

 
Valeriy Yastremskiy :

여기에서 변경의 시작과 끝을 수정하는 작업이 있습니다. 단일 변경의 배출. 그리고 고정은 단기간에 이루어져야 합니다. 저것들. 시간에 따라 플로팅 윈도우로 평균 스프레드 값을 1초에서 10초로 고정합니다. 초당 평균 몇 틱을 보거나 평균 10초 동안 틱을 봐야 합니다. 나는 첫 번째 옵션을 선호합니다.

이 방법으로 해결:

 void OnTick ( void )
{
 int sp = SymbolInfoInteger ( Symbol (), SYMBOL_SPREAD );

   if (CheckSpr(sp)) {
     // Здесь код отправки
   }
}

//+------------------------------------------------------------------+
bool CheckSpr( int _sp)
{
   static int ts= 0 , res= 0 ;
   static long tc= 0 ;
   tc++;
   ts += _sp;
   res =ts/tc;
   if (tc> LONG_MAX - 1 ) {
      tc= 0 ;
      ts= 0 ;
   }
   // Comment( res,"=",tc );
   if (tc< 500 ) return ( false );
   return (res>_sp? true : false );
}

문제는 롤오버 시 그가 엄청난 스프레드를 기록하고 작업할 것이라는 점입니다.

나는 이 솔루션이 비효율적이라고 생각 합니다. 시간 제한을 적용하지 않고 롤오버 중에 어떻게든 녹화를 제한해야 합니다.