오류, 버그, 질문 - 페이지 2031

 
Andrey Barinov :

유형 캐스팅 및 손실에 대해 읽어보세요. https://www.mql5.com/ru/docs/basis/types/casting


고맙습니다! 아이디어는 다음과 같습니다. 정확한 신호를 거의 제공하지 않는 지표가 있습니다.

우리는 차트를 얼마든지 열 수 있으며 따라서 MM과 지표 신호에 따라 포지션을 엽니다. 우리는 기호와 열린 위치 의 현재 이익을 나타내는 차트에 텍스트 레이블이나 버튼을 만듭니다. 버튼을 누르면 원하는 차트를 전경으로 가져옵니다.

 
Metaquotes-Demo에서 FOREX 따옴표의 출처가 변경되었습니까? 스프레드가 훨씬 작아졌습니다.
 
Slava :
4개?

 
컴파일 오류 대신 이상한 런타임 동작이 발생합니다.
 // Запускаем на MT5

#import "Temp.ex4" // EX4 - не ошибка
   void Func();
#import

void OnInit ()
{
  Func();
}

DLL도 없고 Temp.ex4도 없습니다!

 
Vitaly Muzichenko :

문제는 새 MQL4의 문자열이 유니코드라는 것입니다. 다른 모든 위치: 개체, 지표, 차트, 기호 이름, 로그, 설정 등 - 문자열은 계속 사용할 수 있습니다. 따라서 MQL4 프로그램에서 "외부 세계"와 통신할 때마다 WideCharToMultiByte 변환이 수행됩니다. 일반적인 경우 문자열의 문자는 단일 바이트입니다(그러나 다른 인코딩에서는 다릅니다). 동남아시아에서는 다중 바이트입니다(중국어 레이아웃에서 1개의 문자는 1에서 4바이트를 차지합니다.

즉, 중국인뿐만 아니라 유럽인도 코드 페이지 1251을 제안하는 비문을 이해하지 못할 것입니다.

 
Slava :

문제는 새 MQL4의 문자열이 유니코드라는 것입니다. 다른 모든 위치: 개체, 지표, 차트, 기호 이름, 로그, 설정 등 - 문자열은 계속 사용할 수 있습니다. 따라서 MQL4 프로그램에서 "외부 세계"와 통신할 때마다 WideCharToMultiByte 변환이 수행됩니다. 일반적인 경우 문자열의 문자는 단일 바이트입니다(그러나 다른 인코딩에서는 다릅니다). 동남아시아에서는 다중 바이트입니다(중국어 레이아웃에서 1개의 문자는 1에서 4바이트를 차지합니다.

즉, 중국인뿐만 아니라 유럽인도 코드 페이지 1251을 제안하는 비문을 이해하지 못할 것입니다.

요점: 키릴 자모 이름을 사용하여 개체를 만든 다음 클릭하면 OnChartEvent 에서 개체를 처리하지만 개체 이름은 거기에 표시되지 않습니다.

오늘 우리는 이 장소에 문제가 있는 경우 상위 5개를 확인할 것입니다.

 
Vitaly Muzichenko :

요점: 키릴 자모 이름을 사용하여 개체를 만든 다음 클릭하면 OnChartEvent 에서 개체를 처리하지만 개체 이름은 거기에 표시되지 않습니다.

오늘 우리는 이 장소에 문제가 있는 경우 상위 5개를 확인할 것입니다.

5에서 작동합니다

그리고 귀하의 경우 네 번째에 해결책이 있습니다.

OnInit에서 MQLSetInteger (MQL_CODEPAGE,CP_ACP)를 호출합니다.

그러면 "앞뒤로" 문자열 변환이 적절할 것입니다.


MQLSetInteger - Проверка состояния - Справочник MQL4
MQLSetInteger - Проверка состояния - Справочник MQL4
  • docs.mql4.com
Функция MQLSetInteger() предназначена для изменения текущей кодовой страницы в запущенной mql4-программе. Это может понадобиться в тех случаях, когда для запускаемых mql4-программ терминал устанавливает по умолчанию кодовую страницу, отличающаяся от той, которая использовалась при её компиляции. Например, mql4-программа скомпилирована на...
 
누군가 내가 뭘 잘못하고 있는지 말해 줄 수 있습니까?

이 코드는 EURUSD 30m에서 실행됩니다.

 #property indicator_chart_window
#property indicator_buffers 0
#property indicator_plots    0
ENUM_MA_METHOD      MA_Type   = MODE_SMA ;
ENUM_APPLIED_PRICE MA_Price  = PRICE_CLOSE ;
int handle;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
{
   handle = iMA ( "AAPL" , _Period , 10 , 0 ,MA_Type,MA_Price);

   return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
{

   return (rates_total);
}
//+------------------------------------------------------------------+


터미널에서 오류가 발생합니다.
2017.10.11 14:35:23.352 111111111111111111111111111111111(EURUSD,M30) 표시기 ' 이동 평균 '을 로드할 수 없습니다. [4302]

핸들은 -1을 출력합니다.

 
Money_Man :
내가 뭘 잘못하고 있는지 아는 사람을 알려주세요.

이 코드는 EURUSD 30m에서 실행됩니다.



터미널에서 오류가 발생합니다.
2017.10.11 14:35:23.352 111111111111111111111111111111111(EURUSD,M30) '이동 평균' 표시기를 로드할 수 없습니다. [4302]



그래서:

   handle = iMA ( Symbol (), Period (), 10 , 0 ,MA_Type,MA_Price);

?

 
Money_Man :
누군가 내가 뭘 잘못하고 있는지 말해 줄 수 있습니까?

이 코드는 EURUSD 30m에서 실행됩니다.



터미널에서 오류가 발생합니다.
2017.10.11 14:35:23.352 111111111111111111111111111111111(EURUSD,M30) '이동 평균' 표시기를 로드할 수 없습니다. [4302]


오류 4302는 무엇을 의미합니까?