Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 774

 
0Aleksandr0 :

Bu ne? MQL4'te pek iyi düşünmüyorum ne alacağımı söylersen hemen her şeyi MQL5'e yazabilirsin.
Tarihte kar/zarar hesabıyla ilgili bir şey gibi mi?


Sadece mesele bu, kendim anlamıyorum - kod benim için sipariş vermek için yazılmış, sınıftan çekilmiş. Ayrıca bu kodun bakiyeyi hesaplamak için olduğuna inanmaya meyilliyim. Ama fikre göre yeni bir düzenin açılıp kapanmasıyla oluşan denge değişikliği bir diziye atılmalı ama ben göremiyorum...

 
Aleksey Vyazmikin :

Lütfen MT5'teki kodu yeniden yazmama yardım edin - siparişleri hiç anlamıyorum :(

 #include <MT4Orders.mqh>
 
fxsaber :

Teşekkürler, bu sınıfla EA derlendi - çakışıp çakışmayacağını bilmeme rağmen ...


Şimdi testi çalıştırdığımda bir hata alıyorum

2017.08.23 11:22:59.929 çekirdek 3 2016.06.01 00:00:00 DLL yüklenmesine izin verilmiyor

2017.08.23 11:22:59.929 çekirdek 3 genel başlatma başarısız

2017.08.23 11:22:59.929 çekirdek 3 küresel başlatma kritik hatası

2017.08.23 11:22:59.929 çekirdek 3 uzman başlatma başarısız olduğu için test cihazı durduruldu


kütüphane çağrısı kullanılır - MT4'te her şey doğrudur.

 #import "Kernel32.dll"
bool CopyFileW( string lpExistingFileName, string lpNewFileName, bool bFailIfExists);
#import 

Nedeni ne olabilir?

 
Aleksey Vyazmikin :

Teşekkürler, bu sınıfla EA derlendi - çakışıp çakışmayacağını bilmeme rağmen ...

olmaz.

Şimdi testi çalıştırdığımda bir hata alıyorum

2017.08.23 11:22:59.929 çekirdek 3 2016.06.01 00:00:00 DLL yüklenmesine izin verilmiyor

2017.08.23 11:22:59.929 çekirdek 3 genel başlatma başarısız

2017.08.23 11:22:59.929 çekirdek 3 küresel başlatma kritik hatası

2017.08.23 11:22:59.929 çekirdek 3 uzman başlatma başarısız olduğu için test cihazı durduruldu


kütüphane çağrısı kullanılır - MT4'te her şey doğrudur.

Nedeni ne olabilir?

Terminalde DLL kullanımına izin verin.

 
fxsaber :

olmaz.

Terminalde DLL kullanımına izin verin.


İnanma - İzin verdim, ama hiçbir etkisi olmadı - görünüşe göre önbellek orada, bir süre sonra temizleniyor - şimdi çalışıyor. Teşekkür ederim.

 

Temsilcilere bir dosyaya yazmaları nasıl öğretilir? Artık herkes kendi klasöründe kendi dosyasını yaratıyor, bu iyi değil.

 
Aleksey Vyazmikin :

Temsilcilere bir dosyaya yazmaları nasıl öğretilir? Artık herkes kendi klasöründe kendi dosyasını yaratıyor, bu iyi değil.

Aleksey, peki, belgeleri en az bir kez aç... Sonuçta, orada her şey açıkça yazıyor, hangi bayrağın paylaşılan bir klasörü gösterdiğini, hangisinin bir dosyaya paylaşılan erişimi açtığını. Eh, bir cevap beklemek belgeleri okumaktan daha kolay değil mi ???

Документация по MQL5: Файловые операции
Документация по MQL5: Файловые операции
  • www.mql5.com
Файловые операции - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Aleksey Vyazmikin :

Temsilcilere bir dosyaya yazmaları nasıl öğretilir? Artık herkes kendi klasöründe kendi dosyasını yaratıyor, bu iyi değil.


İlk önce (Adım 1) şunların üstesinden gelmeniz gerekir:

... klasörünüzde, ...


Bu, FILE_COMMON bayrağı kullanılarak yapılır - tüm aracılar şimdi paylaşılan klasöre yazacaktır (ancak yine de her aracı kendi dosyasına yazacaktır).


Danışman örneği:

 //+------------------------------------------------------------------+
//|                                           Agents FILE_COMMON.mq5 |
//|                              Copyright © 2017, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2017, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.00"
//---
input int s= 0 ;
//---
string InpFileName= "" ;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- Initialize the generator of random numbers 
   MathSrand ( GetTickCount ());
   InpFileName= IntegerToString ( MathRand ())+ ".txt" ;
//--- open the file 
   ResetLastError ();
   int file_handle= FileOpen (InpFileName, FILE_WRITE | FILE_TXT | FILE_COMMON );
   if (file_handle!= INVALID_HANDLE )
     {
       //--- the string is formed, write it to the file 
       FileWriteString (file_handle,InpFileName);
       //--- close the file 
       FileClose (file_handle);
       PrintFormat ( "Data is written, %s file is closed" ,InpFileName);
       PrintFormat ( "Common path for all of the terminals installed on a computer: %s" , TerminalInfoString ( TERMINAL_COMMONDATA_PATH ));
     }
   else
     {
       PrintFormat ( "Failed to open %s file, Error code = %d" ,InpFileName, GetLastError ());
       return ( INIT_FAILED );
     }
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---

  }
//+------------------------------------------------------------------+


Bu paylaşılan klasörü hızlı bir şekilde açmak için şunu yapın: MetaEditor kod düzenleyicisinde, Dosya menüsünde "Ortak Veri Klasörünü Aç" öğesini seçin.


Şimdi optimizasyon için bu Uzman Danışmanı çalıştırın ve testler geçtikçe paylaşılan klasörde yeni dosyaların nasıl oluşturulacağını izleyin.

Dosyalar:
 
Vladimir Karputov :

İlk önce (Adım 1) şunların üstesinden gelmeniz gerekir:


Bu, FILE_COMMON bayrağı kullanılarak yapılır - tüm aracılar şimdi paylaşılan klasöre yazacaktır (ancak yine de her aracı kendi dosyasına yazacaktır).


Danışman örneği:


Bu paylaşılan klasörü hızlı bir şekilde açmak için şunu yapın: MetaEditor kod düzenleyicisinde, Dosya menüsünde "Ortak Veri Klasörünü Aç" öğesini seçin.


Şimdi optimizasyon için bu Uzman Danışmanı çalıştırın ve testler geçtikçe paylaşılan klasörde yeni dosyaların nasıl oluşturulacağını izleyin.


Ortak olana gitmek istemiyorum çünkü terminal kendi dizininde çalışıyor ve yine de dediğiniz gibi sorunu çözmeyen birçok dosya olacak.

 
Aleksey Vyazmikin :

Ortak olana gitmek istemiyorum çünkü terminal kendi dizininde çalışıyor ve yine de dediğiniz gibi sorunu çözmeyen birçok dosya olacak.


Yazılmıştır: "... Adım 1 ..."

2. adımın üstünde - şimdi kendiniz düşünün, yani, ÇATIŞMA OLMADAN birkaç iş parçacığı nasıl TEK dosyaya yazabilir.