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

 
메타 편집기에서 유니코드로 저장을 비활성화하는 방법은 무엇입니까? ANSI가 필요합니다.
 
fxsaber :
메타 편집기에서 유니코드로 저장을 비활성화하는 방법은 무엇입니까? ANSI가 필요합니다.

왜 그런 필요가 있습니까?

텍스트에 128-255 범위의 문자가 포함된 경우 편집기는 자동으로 파일을 유니코드로 저장합니다.

 
Alexey Da :

왜 그런 필요가 있습니까?

텍스트에 128-255 범위의 문자가 포함된 경우 편집기는 자동으로 파일을 유니코드로 저장합니다.

이제 내 모든 파일이 두 배 커졌습니다. ANSI로 메모장에 저장합니다. 그 후에 메타에디터에서 열고 저장합니다. 다시 유니코드입니다.

이 첨부 파일 을 열어서 저장해 보세요.

 
여러 지표에 동일한 줄이 포함되어 있습니다.
 #property indicator_separate_window

#property indicator_plots 1
#property indicator_buffers 1

#property indicator_type1 DRAW_LINE
#property indicator_style1 STYLE_SOLID
#property indicator_color1 clrRed

나는 그것들을 mqh로 옮기고 "절약"을 위해 포함하기로 결정했습니다. 이것은 할 수 없다는 것이 밝혀졌습니다 - #property는 소스 mq5 파일에서만 설정할 수 있습니다.

왜 그런 제한이 있습니까?

 

첨부 파일은 비공개 메시지 에 첨부되지 않습니다.

최소 ex4 크기 4.9Mb

 
fxsaber :
여러 지표에 동일한 줄이 포함되어 있습니다.

나는 그것들을 mqh로 옮기고 "절약"을 위해 포함하기로 결정했습니다. 이것은 할 수 없다는 것이 밝혀졌습니다 - #property는 소스 mq5 파일에서만 설정할 수 있습니다.

왜 그런 제한이 있습니까?

본질적으로 이러한 속성은 MQL 표시기 프로젝트의 속성 입니다 .

현재 MQL 프로그램 프로젝트 파일은 *.mq5(4) 소스 파일이다.
또한 사용자는 이러한 속성을 포함할 수 있는 타사 *.mqh 파일을 사용할 수 있습니다.
 
Alexey Da :

왜 그런 필요가 있습니까?

텍스트에 128-255 범위의 문자가 포함된 경우 편집기는 자동으로 파일을 유니코드로 저장합니다.

이것은 새로운 것입니다. 시스템 설정에서 1바이트 문자에 대한 인코딩을 가져오지 않는 이유는 무엇입니까? 이것은 지금까지 기본적으로 수행되었습니다.

다시 말하지만, 필요한 사람들이 2바이트 형식을 켤 수 있도록 옵션을 만들 수 있었습니다.

 
Ilyas :
또한 사용자는 이러한 속성을 포함할 수 있는 타사 *.mqh 파일을 사용할 수 있습니다.

mqh에서 설정할 수 있지만 존재하지 않는 것처럼 인식되지 않습니다.

 
Karputov Vladimir :
예가 있으면 문제, 예, OS 및 터미널 데이터와 같은 모든 것을 하나의 게시물에 결합합니다.

준비가 된 ! 사실, 지금은 Win764bit에 있지만 문제는 여전히 동일합니다. 실시간으로 모든 것이 원래대로이지만 시각적인 테스터에서는 선의 왼쪽 점이 단단히 고정되고 오른쪽 점이 움직입니다.

 datetime prevtime= 0 ,
         time_last_bar[ 1 ]={ 0 };

bool     New_Bar= false ;       // Флаг нового бара
                 
const long             chart_ID= 0 ;         // ID графика 
const string           nname= "TrendLine" ;   // имя линии 
const int              sub_window= 0 ;       // номер подокна 
datetime               time1= 0 ;           // время первой точки 
double                 price1= 0 ;           // цена первой точки 
datetime               time2= 0 ;           // время второй точки 
double                 price2= 0 ;           // цена второй точки 
datetime prevbar= 0 ;
double cclose[];
datetime ttime[];

//--------------------------------------------------------------------
void Fun_New_Bar()                               // Ф-ия обнаружения ..
  {                                             // .. нового бара
   New_Bar= false ;                               // Нового бара нет
   
   CopyTime ( Symbol (), Period (), 0 , 1 ,time_last_bar);
   
   if (time_last_bar[ 0 ] != prevtime)                         // Сравниваем время
     {
      prevtime = time_last_bar[ 0 ];                         // Теперь время такое
      New_Bar= true ;                             // Поймался новый бар
     }
  }


//=============================================================================================================
int OnInit ()
  {
    
   CopyTime ( Symbol (), Period (), 0 , 1 ,time_last_bar);
   prevtime = time_last_bar[ 0 ];
ArraySetAsSeries (cclose, true );
ArraySetAsSeries (ttime, true );  
ArrayResize (cclose, 5 );
ArrayResize (ttime, 5 );   
   
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {  
   ObjectsDeleteAll ( 0 , " " ,- 1 ,- 1 );
   Print ( "------------Работа эксперта завершена!------------" ); 
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
 Fun_New_Bar();                               // Обращение к ф-ии
 if (New_Bar== false )                           // Если бар не новый..
     return ;                                   // ..то уходим
 Print ( "новый бар !" );  

ObjectsDeleteAll ( 0 , " " ,- 1 ,- 1 );
ArrayInitialize (cclose, 0 );
ArrayInitialize (ttime, 0 );
CopyTime ( Symbol (), 0 , 1 , 2 ,ttime);
CopyClose ( Symbol (), 0 , 1 , 2 ,cclose);
price1=cclose[ 1 ];
time1=ttime[ 1 ];
price2=cclose[ 0 ];
time2=ttime[ 0 ];

Print ( "price1=" ,price1, " time1=" ,time1, " price2=" ,price2, " time2=" ,time2);

//--- создадим трендовую линию по заданным координатам 
   if (! ObjectCreate (chart_ID,nname, OBJ_TREND ,sub_window,time1,price1,time2,price2)) 
     { 
       Print ( __FUNCTION__ , 
             ": не удалось создать линию тренда! Код ошибки = " , GetLastError ()); 
       return ; 
     } 


} 
 //--------------------------------------------------------------------------------


거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

알렉세이 크라브첸코 , 2016.10.04 09:09

안녕하세요 !

문제가 명확하지 않았습니다.

나는 두 개의 이전 막대의 종점 사이에 일반 TrendLine을 그립니다(각각의 새 막대 에 있음).

 ObjectsDeleteAll ( 0 , " " ,- 1 ,- 1 );
ArrayInitialize (cclose, 0 );
ArrayInitialize (ttime, 0 );
CopyTime ( Symbol (), 0 , 1 , 2 ,ttime);
CopyClose ( Symbol (), 0 , 1 , 2 ,cclose);
price1=cclose[ 1 ];
time1=ttime[ 1 ];
price2=cclose[ 0 ];
time2=ttime[ 0 ];

Print ( "price1=" ,price1, " time1=" ,time1, " price2=" ,price2, " time2=" ,time2);

//--- создадим трендовую линию по заданным координатам 
   if (! ObjectCreate (chart_ID,nname, OBJ_TREND ,sub_window,time1,price1,time2,price2)) 
     { 
       Print ( __FUNCTION__ , 
             ": не удалось создать линию тренда! Код ошибки = " , GetLastError ()); 
       return ; 
     } 

모든 것이 실시간으로 잘 작동합니다. 하지만 테스터의 시각화 모드에서는 선의 왼쪽 점이 원점에 붙어서 전혀 움직이지 않습니다. 문제가 무엇인지 아는 사람이 있습니까?

Z.Y. MT4에서는 그런 문제가 발생하지 않은 것 같습니다.


거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

알렉세이 크라브첸코 , 2016.10.04 09:57

예제에 문제가 있습니다. 거기에서 빈 셸 자체는 여러 파일을 차지합니다. 저녁에는 집에 가서 더 쉽게 장님이 될 것입니다.

OS WinXP SP3. 빌드 1434

LE 0 14:55:39.873 터미널 MetaTrader 5 빌드 1434 시작됨(MetaQuotes Software Corp.)
DI 0 14:55:39.889 터미널 Microsoft Windows XP(X86 기반 PC), IE 08.00, Intel Pentium Dual E2200 @ 2.20GHz, RAM: 1150 / 2037 Mb, HDD: 74562 / 152625 Mb, GMT+07:

LJ 0 14:55:39.889 터미널 C:\Program Files\MetaTrader 5

Z.Y. 여하튼 위에서 알려드린 조작 외에는 아무것도 하지 않습니다. 새 막대 가 발견되면 모든 것이 지워지고 새 선이 그려집니다. 그러나 나는 컴파일에 대한 완전한 예를 만들 것입니다.


 
Alexey Kravchenko :

준비가 된 ! 사실, 지금은 Win764bit에 있지만 문제는 여전히 동일합니다. 실시간으로 모든 것이 원래대로이지만 시각적인 테스터에서는 선의 왼쪽 점이 단단히 고정되고 오른쪽 점이 움직입니다.


확인합니다. 테스터에 일종의 버그가 있습니다.