초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 877

 
일부 막대에서는 Upper[i]가 비어 있을 수 있습니다(0과 같음).
 
Sergey Savinkin :
일부 막대에서는 Upper[i]가 채워지지 않을 수 있습니다(0과 같음).

솔루션에 대한 단서를 찾은 것 같습니다. 코드를 실행하기 전에 가격의 현재 상태에 대해 조건이 작성되면 로그는 다음을 출력합니다.

중요한 점 - 이러한 매개변수 는 이전에 형성된 가격과 일치합니다.

명확성을 위해:

이것은 로그의 마지막 라인이 가격이 상위 라인을 넘어섰음을 나타내는 곳입니다. 유일한 질문은 - 그녀가 왜 이러는 것입니까? 처음부터 현재 순간까지 표시기를 다시 계산하는 동안이 조건의 코드가 이러한 이벤트를 등록하고 마지막으로 발생한 이벤트에서 중지하는 버전이 있습니다. 이는 가격 로그 데이터와 현재 데이터 간의 불일치를 설명합니다. 그러나 다른 것은 설명하지 않습니다. "가격이 상한을 넘어섰습니다. 경고를 보내고, 나가지 않았습니다. - 아무 것도 하지 않음"이라는 논리에서 비교를 통과하는 코드가 필요합니다.

나는 또한 코드의 상태를 확인했는데, 가격이 상단 라인 아래에 있을 때 - 로그에서는 단순히 위 화면에 있는 이벤트를 기록하지 않았습니다 - 나는 그것이 작동하는지 여부에 관계없이 결국 이해를 멈췄습니다.

 

친구, 저는 MQL5를 처음 사용합니다. 따라서 여기에서 쓰고 있는 문제가 제 문제라면 너무 세게 걷어차지 마십시오.

다중통화 올빼미를 만들고 싶었지만 다중통화 테스트 시 에만 나타나는 전략 테스터에서 이상한 점을 발견했습니다. 메인 차트의 심볼 이외의 심볼의 시계열의 이해할 수 없는 이동이 있습니다. 가장 간단한 올빼미를 만들었습니다. 각 막대의 시작 부분에서 0과 첫 번째 막대의 여는 시간을 두 개의 기호로 가져옵니다. 어떤 이유로 1 bar 이후에 두 번째 기호의 시계열이 이동하기 시작합니다. 모든 기호와 기간에 나타납니다. EURUSD에서 테스트했는데 두 번째 기호는 GBPUSD였습니다. 나는 또한 다른 방법으로 시도했고 다른 쌍에서 시도했습니다. 오류는 항상 나타납니다. M15에서 테스트한 후 잡지의 사진:

H1에서 테스트한 후 잡지의 사진:

전략 테스터 설정:

실제로 확인할 코드는 다음과 같습니다.

 #property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
input string SecondSymbol= "GBPUSD" ;

int OnInit ()
  {
   SymbolSelect (SecondSymbol, true ); //выбираем второй символ в MarketWatch(для тестера)
//---
   return ( INIT_SUCCEEDED );
  }

void OnDeinit ( const int reason)
  {
//---

  }

void OnTick ()
  {
   static datetime BarTime; //время начала бара
   int per= PeriodSeconds ( PERIOD_CURRENT );

   datetime time_curr= TimeCurrent ()/per*per;
   if (time_curr!=BarTime)
     {
      BarTime=time_curr;

       datetime Time_One[],Time_Two[];
       bool yes= ArraySetAsSeries (Time_One, true );
      yes= ArraySetAsSeries (Time_Two, true );

       int i= CopyTime ( NULL , PERIOD_CURRENT , 0 , 2 ,Time_One);     //текущий символ
      i= CopyTime (SecondSymbol, PERIOD_CURRENT , 0 , 2 ,Time_Two); //второй символ
      
       Print ( "ВремяНачалаБара по " , Symbol (), ":" ,Time_One[ 0 ], " ВремяНачалаБара по " ,SecondSymbol, ":" ,Time_Two[ 0 ]);
     }
  }

도움을 주시면 감사하겠습니다.

 
stroganow :

친구, 저는 MQL5를 처음 사용합니다. 따라서 여기에서 쓰고 있는 문제가 제 문제라면 너무 세게 걷어차지 마십시오.

다중통화 올빼미를 만들고 싶었지만 다중통화 테스트 시 에만 나타나는 전략 테스터에서 이상한 점을 발견했습니다. 메인 차트의 심볼 이외의 심볼의 시계열의 이해할 수 없는 이동이 있습니다. 가장 간단한 올빼미를 만들었습니다. 각 막대의 시작 부분에서 0과 첫 번째 막대의 여는 시간을 두 개의 기호로 가져옵니다. 어떤 이유로 1 bar 이후에 두 번째 기호의 시계열이 이동하기 시작합니다. 모든 기호와 시간대에 나타납니다. EURUSD에서 테스트했는데 두 번째 기호는 GBPUSD였습니다. 나는 또한 다른 방법으로 시도했고 다른 쌍에서 시도했습니다. 오류는 항상 나타납니다. M15에서 테스트한 후 잡지의 사진:

H1에서 테스트한 후 잡지의 사진:

전략 테스터 설정:

실제로 확인할 코드는 다음과 같습니다.

도움을 주시면 감사하겠습니다.

테스터가 올바르게 작동하고 있습니다. 프로그램 논리의 오류: 두 문자는 서로 다른 사람의 두 삶과 같습니다(여기서 "사람"은 "기호"와 유사함). 그리고 두 번째 사람은 첫 번째 사람과 동시에 일어나야 할 의무가 없습니다("깨어남"은 " 새 바 의 출현"과 유사합니다).

즉, 첫 번째 기호와 두 번째 기호에 새 막대가 나타날 때까지 기다려야 합니다.


추가됨: 기사 새 막대 이벤트 처리기

 

여기 강세 핀 바의 그림이 있습니다. 인식 조건의 주요 코드는 어떻게 생겼습니까?

 if (low[i] <= open[i] && high[i] > close[i] && open[i] >= close[i] && close[i] <= Base[i]) // верно ли это утверждение?
 
clickaider :

여기 강세 핀 바의 그림이 있습니다. 인식 조건의 주요 코드는 어떻게 생겼습니까?

이것은 약세 핀 바입니다. 촛불의 방향은 중요하지 않습니다. 긴 그림자의 위치는 중요합니다: 위 - 약세, 아래 - 강세. 그리고 레벨 표시기의 확인이 필요합니다.
 
Artyom Trishkin :
이것은 약세 핀 바입니다. 촛불의 방향은 중요하지 않습니다. 긴 그림자의 위치는 중요합니다: 위 - 약세, 아래 - 강세. 그리고 레벨 표시기의 확인이 필요합니다.
이것을 코드로 나타낼 수 있습니까? 코드가 어떻게 보이는지 명확하지 않습니다.
 
clickaider :
이것을 코드로 나타낼 수 있습니까? 코드가 어떻게 보이는지 명확하지 않습니다.
모바일에서 코드를 보낼 수 없습니다. 아무렇게나:
당신은 Hi-lo-Lo에서 촛불의 크기, 촛불의 몸체 크기, 전체 촛불의 크기에 대한 몸체의 백분율, 짧은 그림자의 크기가 특정 임계값을 초과해서는 안 됩니다. 부재 또는 몸체에 비해 상대적으로 작음), 몸체의 위/아래 위치는 상대적으로 양초의 전체 크기입니다.
이 같은...
 
Artyom Trishkin :
모바일에서 코드를 보낼 수 없습니다. 아무렇게나:
당신은 Hi-lo-Lo에서 촛불의 크기, 촛불의 몸체 크기, 전체 촛불의 크기에 대한 몸체의 백분율, 짧은 그림자의 크기가 특정 임계값을 초과해서는 안 됩니다. 부재 또는 몸체에 비해 상대적으로 작음), 몸체의 위/아래 위치는 상대적으로 양초의 전체 크기입니다.
이 같은...

그래픽으로 보면 다음과 같습니다.

 
clickaider :

그래픽으로 보면 다음과 같습니다.

이제 그래픽으로 설명한 것을 말로 설명하십시오. 높음, 낮음, 열기, 닫기를 사용합니다.
말로 설명하면 이미 TK를 작성했다고 생각하십시오. :)
언어 구성을 코드로 대체하는 것이 남아 있습니다.