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

 
Alexey Viktorov :

Artyom, 내가 그 말로 대답을 시작한 것은 헛되지 않았다


포물선은 교대가 엄격하며 한 방향의 두 신호는 다른 막대에서도 불가능합니다. 그리고 이를 위해 아무 것도 발명할 필요가 없습니다. MA와 같은 제로 바에서도 덜거덕거리지 않습니다.

딸랑이 - 방금 전에 눈치채지 못한. 그 이후로 뭔가 달라졌을 수도 있겠지만, 제로 바의 점이 사라질 수 있다는 사실-이었다.

평소와 같이 나중에 표시기를 다른 표시기로 변경할 수 있는 상황에서 진행합니다. 이 코드 블록은 이미 독립적으로 작동합니다. 습관 ...

 
Artyom Trishkin :
도움이 될까요? 거기에서 당신이 원하는 것은 무엇이든 할 수 있는 템플릿을 마련했습니다.

감사합니다 대략적인 방법으로 적용해보았는데 아직도 거래를 열면 바로 SL이 바뀌는 느낌이 듭니다.
 
AlGuru :

감사합니다 대략적인 방법으로 적용해보았는데 아직도 거래를 열면 바로 SL이 바뀌는 느낌이 듭니다.
그런 다음 SL 값을 인쇄 취소하고 트롤 내부에 Print() 를 입력하여 작업 및 해당 값에 대해 기록하도록 합니다. 그렇지 않으면 느낌은 느낌일 뿐입니다.)
 
질문있어요 여러분! 매직넘버의 자릿수 제한이 있나요? 몇 자릿수가 있어야 합니까?
 
Rustam Bikbulatov :
질문있어요 여러분! 매직넘버의 자릿수 제한이 있나요? 몇 자릿수가 있어야 합니까?


Magick는 일반적으로 정수형 int로 정의됩니다.

정수

정수형 int의 크기는 4바이트(32비트)입니다. 최소값은 -2 147 483 648이고 최대값은 2 147 483 647입니다.

이 같은.

 
Alekseu Fedotov :


Magick는 일반적으로 정수형 int로 정의됩니다.

정수

정수형 int의 크기는 4바이트(32비트)입니다. 최소값은 -2 147 483 648이고 최대값은 2 147 483 647입니다.

이 같은.


매우 감사합니다!
 

안녕하세요! 나는 고문을 썼는데 , 나는 코드를 알아낼 수 없다. 서버의 모든 틱과 매초를 실행하는 기능이 필요합니다. 방금 OnTick 을 통해 내 기능을 2번 호출한 다음 OnTimer 를 통해 모든 것을 올바르게 수행한 것 같지만 여전히 종종 몇 초를 건너뛰고 이 때문에 때때로 적시에 작동하지 않습니다. 도와주세요, 누가 더듬거려요, 정말 감사하겠습니다) 아마도 서버와의 연결이 끊어져 작동이 중지됩니까? 연결이 끊어진 경우에도 1초마다 실행되도록 하고 동시에 초가 서버 시간과 엄격하게 동기화되도록 할 수 있습니까?


int OnInit()

  {

   EventSetTimer(1);

   return(INIT_SUCCEEDED);

  }

void OnTick()

{

Clicker (); //-- старт каждый тик

}

void OnTimer()

{

Clicker (); //-- старт каждую секунду

}

void Clicker()

  {

//--- тут идёт порядка 30 строк кода, вырезал чтобы никого не грузить

   Comment("Sek = " + (Seconds()));

   return;                                      // Выход из start()  

  }

 
친구 여러분, 초보 MQL4 프로그래머 에게 조언을 구하십시오.
마지막 n개 막대에 대한 기준의 최대 시가를 결정해야 하는 코드를 작성했지만 어떤 이유로 EA는 차트에 있는 모든 막대의 최대 시가를 계산합니다.

void OnTick()
{
   for (int i = 1; i <= BarTotal; i++)
   {
      double High_Open = iOpen(Symbol(), PERIOD_H1, i); 
      if (High_Open >= Current_High)
      {
         Current_High = High_Open;
         Print (Current_High); 
      }
   }
}

고맙습니다)

 
ivan-baaton :
친구 여러분, 초보 MQL4 프로그래머 에게 조언을 구하십시오.
마지막 n개 막대에 대한 기준의 최대 시가를 결정해야 하는 코드를 작성했지만 어떤 이유로 EA는 차트에 있는 모든 막대의 최대 시가를 계산합니다.

...

고맙습니다)

이 기능을 사용해 보세요:

 //+------------------------------------------------------------------+
double GetMaxOpen( const string symbol_name, const ENUM_TIMEFRAMES timeframe, uint start_pos, const uint count){
   double array[];
   ResetLastError ();
   if ( CopyOpen (symbol_name,timeframe,start_pos,count,array)==count) return (array[ ArrayMaximum (array)]);
   Print ( __FUNCTION__ , " > Ошибка копирования в массив: " , GetLastError ());
   return ( WRONG_VALUE );
}
//+------------------------------------------------------------------+

여기에서 직접 보지 않고 거의 "무릎 꿇고"라고 썼기 때문에 놓친 부분이 있을 수 있습니다.

 

나는 내 실수를 깨달았지만 그것을 해결하는 방법을 이해하지 못했습니다. 작업은 일반적으로 1초마다 시작되지만 현재 촛불의 시작 부분부터 시간을 올바르게 계산하지 않습니다.

Seconds() 함수 는 마지막으로 알려진 틱의 데이터에 따라 초를 제공하며 틱이 없더라도 분 촛불이 열린 순간 부터 함수 가 호출된 순간까지의 실제 시간(초)을 어떻게든 계산해야 합니다. 마지막 몇 초 동안 전혀.

TimeSeconds (TimeLocal() ) 또는 ( TimeLocal() - Time[0]) 도 작동 하지 않습니다. 컴퓨터의 현지 시간은 서버와 몇 초 정도 다를 수 있습니다. 문제를 해결하는 방법?