Çaydanlıktan gelen sorular - sayfa 85

 
AUser :

Verileri bir dosyaya nasıl kaydedeceğimi bulmaya çalışıyorum. Bu kodu yazdı:

Dosyaya sadece son fiyat değeri kaydedilir. Bir sütunda fiyatların değerine ihtiyacınız var. Yanlış olan neydi?

MQL5 Referans / Standart Sabitler, Numaralandırmalar ve Yapılar / Giriş/Çıkış Sabitleri / Dosya Açma Bayrakları'nda "Okuma ve yazma bayraklarını belirtirken çalışmanın özellikleri" bölümüne bakın.
 

Özellikle aptalım)) Tavsiyeyi dinledikten sonra, neden böyle olduğunu anlamamama rağmen kodu daha önce yeniden yazdım .. her durumda, hiçbir şey değişmedi. Teorik olarak, bu bir dosyaya bir şeyler yazmak için en temel programdır ve bu yüzden aptalım ..))

 void OnInit ()
{
double BID = SymbolInfoDouble ( _Symbol , SYMBOL_BID );
int FILE = FileOpen ( "FILE" , FILE_WRITE | FILE_CSV , '\t' ,CP_ACP);
FileIsEnding (FILE);
FileWrite (FILE,BID);
}
void OnDeinit ( const int reason)
{
int FILE = FileOpen ( "FILE" , FILE_WRITE | FILE_CSV , '\t' ,CP_ACP);
FileClose (FILE);
}

Hatırlatayım, keneleri bir dosyaya kaydetmek için bir program yazmaya çalışıyorum. Bazı nedenlerden dolayı yalnızca son onay işaretini kaydeder.

 
AUser :

Özellikle aptalım)) Tavsiyeyi dinledikten sonra, neden böyle olduğunu anlamamama rağmen kodu daha önce yeniden yazdım .. her durumda, hiçbir şey değişmedi. Teorik olarak, bu bir dosyaya bir şeyler yazmak için en temel programdır ve bu yüzden aptalım ..))

Hatırlatayım, keneleri bir dosyaya kaydetmek için bir program yazmaya çalışıyorum. Nedense yalnızca son keneyi kaydeder.

İşlev
 FileIsEnding (FILE);

muhtemelen istediğiniz gibi dosya imlecini dosyanın sonuna ayarlamaz.

onunla uğraş ve mutluluk gelecek. :)

 
AUser :

Özellikle aptalım)) Tavsiyeyi dinledikten sonra, neden böyle olduğunu anlamamama rağmen kodu daha önce yeniden yazdım .. her durumda, hiçbir şey değişmedi. Teorik olarak, bu bir dosyaya bir şeyler yazmak için en temel programdır ve bu yüzden aptalım ..))

Hatırlatayım, keneleri bir dosyaya kaydetmek için bir program yazmaya çalışıyorum. Bazı nedenlerden dolayı yalnızca son onay işaretini kaydeder.

kabaca olması gerektiği gibi

 int FILE;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   FILE = FileOpen ( "FILE" , FILE_WRITE | FILE_CSV , '\t' ,CP_ACP);
//---
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
   FileClose (FILE);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   double BID = SymbolInfoDouble ( _Symbol , SYMBOL_BID );
   FileWrite (FILE,BID);
  }
//+------------------------------------------------------------------+
 
sergey1294 :

kabaca olması gerektiği gibi

Aynen, teşekkürler))
 
ZahvatkiN :

Adamlar, MT4'te bir anlaşma açmadan önce zararı durdurma seviyesini belirlemenin ve kar almanın mümkün olduğunu fark ettiler, ancak MT5'te bu yok veya mümkün mü, ama bir şekilde farklı mı?

 
sergeev :

ZahvatkiN :

Adamlar, MT4'te bir anlaşma açmadan önce zararı durdurma seviyesini belirlemenin ve kar almanın mümkün olduğunu fark ettiler, ancak MT5'te bu yok veya mümkün mü, ama bir şekilde farklı mı?


Burada tartışıldı https://www.mql5.com/en/forum/1111/page561
 

Merhaba.Kod.Çalışıyor TF M15.Aç-Kapat bloğuna geçiş yeni bir çubukta gerçekleşir.

Bir yeniden fiyat teklifi nedeniyle (örneğin) bir pozisyon açılmazsa , sadece bir sonraki çubuğa yeniden girecektir.

Ve eğer giriş kriterleri (önceki çubuğun OHLC'sine bakar) giderse, pozisyon açılmayacaktır.

doğru anlamış mıyım?

Not: En azından yeni bir dakika girmek muhtemelen mantıklıdır.

 void OnTick ()
  { CopyTime ( _Symbol , PERIOD_M15 , 0 , 1 ,time);
   if (lastbar==time[ 0 ]) return ;
   lastbar=time[ 0 ];
   
  SearchForExit();
  SearchForEnter();
 
   return ;
  }
 

Meslektaşlarım, kıyaslama yapmadan, önceden söyleyebilir misiniz, bu daha hızlıdır: tüm geçmişin CopyTime() 'ını bir kez veya her seferinde yalnızca bazı çubuklarda (bunlardan hala tüm geçmişin Çubuklarından() daha azı vardır) yürütmek için buna denir. ve yalnızca birinin zaman değerini Arr'a kopyalayın - geçerli - çubuk?

Kıyaslamaya geri dönüp bakmaz, ancak bilgiye dayalı olarak mantıklı bir şekilde akıl yürütürseniz, cevabınızı nasıl haklı çıkaracaksınız? ...Anladığım kadarıyla bu zaten C/C++ yönünde...

 
Doğru yaklaşım, arama başına makul bir derinlik istemektir. Üstelik, tam derinliğe kadar tam sorgular yapmanız gerekmez. Önemli bir nokta - tarih, herhangi bir zamanda eşzamansız olarak indirilebilir.