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

 

컴파일러가 이 줄에 경고를 표시하는 이유는 무엇입니까?

 datetime time_setup= OrderGetInteger ( ORDER_TIME_SETUP );
possible loss of data due to type conversion    
 
말하다. 빼면 3e-5라는 숫자가 나옵니다. 0.00003 형식으로 가져오는 방법은 무엇입니까? 고맙습니다.
 
awsomdino :

컴파일러가 이 줄에 경고를 표시하는 이유는 무엇입니까?

XxxxGetInteger는 long(부호 있는 정수)을 반환하는 반면 datetime은 부호 없는 정수이며 완전히 별도의 유형이기 때문입니다. 지시해야 한다

datetime timeProperty = (datetime)XxxGetInteger(...)

 
prom18 :
말하다. 빼면 3e-5라는 숫자가 나옵니다. 0.00003 형식으로 가져오는 방법은 무엇입니까? 고맙습니다.

어디서 얻나요?

 

안녕하세요!

OnCalculate 함수 는 주기적으로 0을 반환합니다.

prev_calculated = 0

차트가 타사 리소스의 인용문으로 채워져 있기 때문이라고 생각합니다. 일정을 다시 쓰는 것 같지는 않지만.

이전 데이터를 덮어쓰지 않고 이러한 조건에서 새 데이터를 쓰는 방법은 무엇입니까?

특정 계산을 사용하여 지표를 생성할 뿐이며 따옴표를 로드하려는 것이 아닙니다.

 void filter( const int rates_total, const int prev_calculated)
  {
 
   int start=prev_calculated;
//--- если значения индикатора уже были рассчитаны на предыдущем тике, то работаем на последнем баре
   if (prev_calculated> 0 )
      start--;
//---
   for ( int p= 2 ; p<Pmax; p++) // отбор по периодам
       for ( int b=start>rates_total-Pmax?start:rates_total-Pmax; b<rates_total; b++)
        {
 
모두들 좋은 시간 되세요. 질문: MT4에서 십자형(달러 없는 쌍)이 있는 테스터에서 작업할 때 테스트 중인 계정이 달러인 경우 테스터는 마감된 위치 의 결과를 어떻게 계산합니까? 총포지션을 달러로 환산하는 테스터는 현재 시점의 달러에 대한 크로스의 기준 통화 의 환율을 취합니까, 아니면 연구 구간의 순간에 환율을 취합니까? 나는 현시점에서 그것을 강력히 의심한다. 그렇다면 간격 시간에 강제로 계산할 수 있습니까?
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
Mihail Matkovskij :

MQL4에서는 다음과 같은 방법으로만 가능합니다.

결과:


당신의 도움을 주셔서 대단히 감사합니다.

 
Mihail Matkovskij :

어디서 얻나요?

여기.

 double price1= 1.23450 ;
double price2= 1.23447 ;
double delta=price1-price2;
Alert ( "Разбег " ,delta);
 
prom18 :

여기.

Alert("Разбег "+DoubleToString(delta,_Digits));

또는 Alert( StringFormat ("%.5f 실행",delta));

일반적으로 익숙해지면 동일한 숫자의 다른 표현일 뿐입니다. 멋진 학창 시절을 기억하십시오 - 이것은 거기에서 왔습니다.

 
Top2n :

안녕하세요!

OnCalculate 함수 는 주기적으로 0을 반환합니다.

차트가 타사 리소스의 인용문으로 채워져 있기 때문이라고 생각합니다. 일정을 다시 쓰는 것 같지는 않지만.

이전 데이터를 덮어쓰지 않고 이러한 조건에서 새 데이터를 쓰는 방법은 무엇입니까?

특정 계산을 사용하여 지표를 생성할 뿐이며 따옴표를 로드하려는 것이 아닙니다.

전역 변수 선언(터미널 전역 변수와 혼동하지 말 것)

 bool firstRun = false ;

첫 번째 틱에서만 전체 재계산을 수행하십시오.

 // простейшее условие пересчёта
if (!firstRun) {
   // пересчёт ...
  firstRun = true ;
}

firstRun도 OnCalculate 매개변수와 함께 0으로 재설정되면 재설정 이유는 표시기를 다시 시작하기 위한 것입니다.