기고글 토론 "MQL4에서 MQL5로 이전하기" - 페이지 8

 

다음 형식의 MQL4 문자열은 어떻게 들릴까요?

spread_ =MarketInfo(Symbol(), MODE_SPREAD)*Point;

를 MQL5에서 사용할 수 있나요?

미리 감사드립니다!

 
piv_:

다음 형식의 MQL4 문자열은 어떻게 들릴까요?

spread_ =MarketInfo(Symbol(), MODE_SPREAD)*Point;

를 MQL5에서 사용할 수 있나요?

미리 감사드립니다!

대략 다음과 같습니다:

spread=SymbolInfoInteger(symbol,SYMBOL_SPREAD)*Point();
 
iStdOnArray()가 누락되었습니다 :) 기본 통계가 없는 자동 거래 플랫폼은 MT5가 처음인 것 같습니다 :) 며칠 동안 MQL5로 무언가를 시도했지만 지금까지는 전체 금융 공학 창고를 만드는 것과 같은 다양한 문제 만 발생했습니다.
 
High와 같은 사전 정의된 변수를 대체하는 방법을 여전히 이해하지 못합니다. Low, Ask, Cose, Open.... 특수 함수 중 어느 함수에 선언해야 하나요?
[삭제]  
buh400:
High와 같은 사전 정의된 변수를 대체하는 방법을 여전히 이해하지 못합니다. Low, Ask, Cose, Open.... 특수 함수 중 어느 함수에 선언해야 하나요?
높음, 낮음, 열기, 닫기 - CopyHigh(), CopyLow() 등을 통해. 매수, 매도 - SymbolInfoDouble()을 통해. - 이것이 데이터 검색입니다. 그리고 데이터를 수신할 배열(복사... 함수의 경우)과 입찰 및 요청 값에 대한 변수를 선언해야 합니다. 이 데이터를 가져올 함수에서 선언하세요(전역 수준에서 선언할 수는 있지만, 전역 수준에서 선언해서는 안 됩니다). 예를 들어 각 틱에 대한 데이터를 받으려면 OnTick() 함수에 선언합니다. 초기화 시 - OnInit() 등에서. 문서를 읽어보세요.
 
나는 그것을 읽었고, mcl5를 배우려는 열정이 없습니다! 나는 브로커가 MT4를 포기하지 않을 것이라고 생각합니다! 예, 그리고 내 평생 동안 충분할 것입니다! 그냥 mcl4를 복잡하게하지 마십시오! 제발!
 
섹션 17의 코드를 컴파일할 때, 즉 상수를 선언하는 부분에서 이미 정의된 열거자 식별자 'MODE_MAIN'이라는 오류가 발생합니다.

 
buh400:
섹션 17의 코드를 컴파일할 때
온라인 버전의 도움말( https://docs.mql4.com/ru)에서 링크를 제공합니다.
Справочник MQL4 - Документация на MQL4
  • docs.mql4.com
Справочник MQL4 - Документация на MQL4
 
Rashid Umarov:
온라인 버전의 도움말에서 링크를 제공하세요 - https://docs.mql4.com/ru

이 코드는 MQL4에서 MQL5로의 마이그레이션 문서에서 가져온 것입니다.

17. Технические индикаторы
Получение значений технических индикаторов в своих экспертах очень подробно рассмотрено в одноимённой статье. В этом справочнике представлен краткий способ обращения к стандартным индикаторам, которого вполне достаточно для получения результата расчёта в одной точке. Для реализации такого механизма, нам потребуется вспомогательная функция:

double CopyBufferMQL4(int handle,int index,int shift)
  {
   double buf[];
   switch(index)
     {
      case 0: if(CopyBuffer(handle,0,shift,1,buf)>0)
         return(buf[0]); break;
      case 1: if(CopyBuffer(handle,1,shift,1,buf)>0)
         return(buf[0]); break;
      case 2: if(CopyBuffer(handle,2,shift,1,buf)>0)
         return(buf[0]); break;
      case 3: if(CopyBuffer(handle,3,shift,1,buf)>0)
         return(buf[0]); break;
      case 4: if(CopyBuffer(handle,4,shift,1,buf)>0)
         return(buf[0]); break;
      default: break;
     }
   return(EMPTY_VALUE);
  }
и объявим следующие константы:
ENUM_MA_METHOD MethodMigrate(int method)
  {
   switch(method)
     {
      case 0: return(MODE_SMA);
      case 1: return(MODE_EMA);
      case 2: return(MODE_SMMA);
      case 3: return(MODE_LWMA);
      default: return(MODE_SMA);
     }
  }
ENUM_APPLIED_PRICE PriceMigrate(int price)
  {
   switch(price)
     {
      case 1: return(PRICE_CLOSE);
      case 2: return(PRICE_OPEN);
      case 3: return(PRICE_HIGH);
      case 4: return(PRICE_LOW);
      case 5: return(PRICE_MEDIAN);
      case 6: return(PRICE_TYPICAL);
      case 7: return(PRICE_WEIGHTED);
      default: return(PRICE_CLOSE);
     }
  }
ENUM_STO_PRICE StoFieldMigrate(int field)
  {
   switch(field)
     {
      case 0: return(STO_LOWHIGH);
      case 1: return(STO_CLOSECLOSE);
      default: return(STO_LOWHIGH);
     }
  }
//+------------------------------------------------------------------+
enum ALLIGATOR_MODE  { MODE_GATORJAW=1,   MODE_GATORTEETH, MODE_GATORLIPS };
enum ADX_MODE        { MODE_MAIN,         MODE_PLUSDI, MODE_MINUSDI };
enum UP_LOW_MODE     { MODE_BASE,         MODE_UPPER,      MODE_LOWER };
enum ICHIMOKU_MODE   { MODE_TENKANSEN=1,  MODE_KIJUNSEN, MODE_SENKOUSPANA, MODE_SENKOUSPANB, MODE_CHINKOUSPAN };
enum MAIN_SIGNAL_MODE{ MODE_MAIN,         MODE_SIGNAL };
 
이 문제가 이미 제기된 적이 있어서 다른 글을 읽어야 한다는 것을 깨달았습니다:) 내 글을 삭제할 수 있습니다.