Hatalar, hatalar, sorular - sayfa 1718

 
Meta düzenleyicide unicode'da kaydetme nasıl devre dışı bırakılır? ANSI'ye ihtiyacınız var.
 
fxsaber :
Meta düzenleyicide unicode'da kaydetme nasıl devre dışı bırakılır? ANSI'ye ihtiyacınız var.

Neden böyle bir ihtiyaç?

Metin 128-255 aralığında karakterler içeriyorsa, düzenleyici dosyaları otomatik olarak Unicode'a kaydeder.

 
Alexey Da :

Neden böyle bir ihtiyaç?

Metin 128-255 aralığında karakterler içeriyorsa, düzenleyici dosyaları otomatik olarak Unicode'a kaydeder.

Tüm dosyalarım artık iki kat daha büyük. Bunları ANSI'de not defterine kaydediyorum - normal. Bundan sonra meta düzenleyicide açıp kaydediyorum - tekrar unicode.

Ekli bu dosyayı açmayı ve kaydetmeyi deneyin.

 
Aynı satırları içeren birkaç göstergem var
 #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

Onları mqh'ye taşımaya ve "tasarruf" için dahil etmeye karar verdim. Bunun yapılamayacağı ortaya çıktı - #özellik yalnızca kaynak mq5 dosyasında ayarlanabilir.

Neden böyle bir kısıtlama?

 

Ekler özel mesajlara eklenmez .

En az ex4 boyutu 4.9 Mb

 
fxsaber :
Aynı satırları içeren birkaç göstergem var

Onları mqh'ye taşımaya ve "tasarruf" için dahil etmeye karar verdim. Bunun yapılamayacağı ortaya çıktı - #özellik yalnızca kaynak mq5 dosyasında ayarlanabilir.

Neden böyle bir kısıtlama?

Özünde, bu özellikler göstergenin MQL projesinin özellikleridir.

Şu anda MQL programının proje dosyası *.mq5(4) kaynak dosyasıdır.
Ayrıca, kullanıcılar bu özellikleri içerebilecek üçüncü taraf *.mqh dosyalarını kullanabilir.
 
Alexey Da :

Neden böyle bir ihtiyaç?

Metin 128-255 aralığında karakterler içeriyorsa, düzenleyici dosyaları otomatik olarak Unicode'a kaydeder.

Bu yeni bir şey. Tek baytlık karakterlerin kodlamasını neden sistem ayarlarından almıyorsunuz? Bu şimdiye kadar varsayılan olarak yapıldı.

Yine, ihtiyacı olanların çift bayt biçimini açabilmesi için bir seçenek yapılabilirdi.

 
Ilyas :
Ek olarak, kullanıcılar bu özellikleri içerebilecek üçüncü taraf *.mqh dosyalarını kullanabilir.

Onları mqh olarak ayarlayabilirsiniz, ancak algılanmayacaklar - sanki yokmuşlar gibi.

 
Karputov Vladimir :
Bir örnek olduğunda, her şeyi tek bir gönderide birleştireceğiz: problem, örnek, işletim sistemi ve terminal verileri.

Hazır ! Doğru, şimdi Win764bit'in altındayım ama sorun hala aynı. Gerçek zamanlı olarak her şey olması gerektiği gibi ancak görseldeki test cihazında çizginin sol noktası sıkıca yapışıyor ve sağdaki hareket ediyor.

 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 ; 
     } 


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


Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Hatalar, hatalar, sorular

Alexey Kravchenko , 2016.10.04 09:09

Merhaba !

Sorun net değildi.

Önceki iki çubuğun kapanış noktaları arasına sıradan bir TrendLine çiziyorum (her yeni barda ).

 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 ; 
     } 

Her şey gerçek zamanlı olarak harika çalışıyor. Ancak test cihazındaki görselleştirme modunda, çizginin sol noktası orijine bağlıdır ve hiç hareket etmez. Sorun nedir, bilen var mı?

ZY MT4'te böyle bir sorun ortaya çıkmadı.


Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Hatalar, hatalar, sorular

Alexey Kravchenko , 2016.10.04 09:57

Örnekte sorun var. Orada, boş kabuğun kendisi birkaç dosya kaplar. Akşam eve gideceğim ve daha kolay kör edeceğim.

İşletim Sistemi WinXP SP3. 1434'ü inşa et

LE 0 14:55:39.873 Terminal MetaTrader 5 build 1434 başladı (MetaQuotes Software Corp.)
DI 0 14:55:39.889 Terminal Microsoft Windows XP (X86 tabanlı PC), IE 08.00, Intel Pentium Dual E2200 @ 2.20GHz, RAM: 1150 / 2037 Mb, HDD: 74562 / 152625 Mb, GMT+07:00

LJ 0 14:55:39.889 Terminal C:\Program Dosyaları\MetaTrader 5

ZY Her durumda, yukarıda verdiğim manipülasyonlar dışında başka bir şey yapılmamaktadır. Yeni bir çubuk bulunduğunda her şey silinir ve yeni bir çizgi çizilir. Ama derleme için tam bir örnek yapacağım.


kuyu

 
Alexey Kravchenko :

Hazır ! Doğru, şimdi Win764bit altındayım, ancak sorun hala aynı. Gerçek zamanlı olarak her şey olması gerektiği gibi ancak görseldeki test cihazında çizginin sol noktası sıkıca yapışıyor ve sağdaki hareket ediyor.


onaylıyorum. Test cihazında bir tür hata var.