[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 223

 

Merhaba.

Mevcut tüm siparişleri kapatan bir komut dosyam var.

Anlamadığım üç satır var:

Zor değilse, lütfen yeni başlayanlar için Rusça anlaşılır bir dile çevirin.

Ders kitabını okudum ama bu kadar uzun mantıksal ifadelere rastlamadım.

Senaryoyu ekliyorum. Teşekkür ederim.

Dosyalar:
 

İlk girişi sizin için "çevirmeye" çalışacağım:

 if ((( OrderSymbol () == Symbol () && OnlyThisSymbol) || !OnlyThisSymbol))

"1. veya 2. ifadelerinden en az biri doğruysa, o zaman..."
1. sipariş aracı, grafik aracıyla aynıdır ve OnlyThisSymbol harici değişkeni true olarak ayarlanır
2. OnlyThisSymbol harici değişkeni false değerine eşit bir değere sahiptir.

Şimdi bu girdinin anlamı:
Kapanıştan önce pozisyonlara göre farklı filtrelerle kapatılan emirler aranır. Bu giriş, enstrümana göre bir filtredir. OnlyThisSymbol harici değişkeninin değerinin girilmesi, kullanıcıya bir seçenek sunar - yalnızca grafiğin aracı için siparişleri veya herhangi bir enstrüman için siparişleri kapatma.

 
alsu :

Kesinlikle bu şekilde değil. Gerçek şu ki, Experts değişkeni zaten int türüne sahip, bu nedenle, tür dönüştürmesi ona bir değer atamadan ÖNCE yapılmalıdır, yani. derleyici

* kutudan bir çift değer çıkardı (programınızda adı yoktur, ancak derleyici tarafından RAM'de veya bir işlemci kaydında bilinen bir adrese yazılır)

* yukarıdaki değişkenin değeriyle gerekli tüm değişiklikleri yaptı ve yeni değeri (zaten int türünde!) Experts değişkenine yazdı,

* bu değeri (int! türünde) New_Experts değişkenine atadı. Aynı türe sahiptirler, bu nedenle, bu sadece bir bellek hücresinden diğerine bir değer aktarımıdır.


Not: Yaptıklarını bu kadar detaylı kavrayan insanların varlığından çok memnunum. Aslında şaka değil. Tekrar iletişime geçin.


İyi günler... Son ve sondan bir önceki mesajlarınızı ayrıştırırken çıkmaza girdim. Özellikle (önceki bir yanıttan gelen mesajınız): "Sonra, değeri kutudan çıkardığımızda, double türündedir , ancak sonucu int türünde bir değişkene yazma komutu verilirse, derleyici değeri yeni bir kutuya koymak için gerekli tüm işlemleri otomatik olarak yapın. " Ve son yanıttaki mesajınız: "Gerçek şu ki, Experts değişkeni zaten int türüne sahip ...". GV değişken kutusuna "koyduğumuz" anda onu double türe dönüştürdük, değil mi?

Yanıtınız için şimdiden teşekkür ederiz

 

Söyleyin arkadaşlar. MQL4'te Hesap Bakiyesi değerini yalnızca test cihazının başlangıç koşullarında değil, programlı olarak ayarlamak mümkün müdür?

Soruyu anlamak için bunun neden gerekli olduğunu açıklayacağım. Expert Advisor'ın optimizasyon sırasında Hesap Bakiyesi boyutunu bir değişken olarak değiştirebilmesi için .

 

Tünaydın.

(HL)/2'ye dayalı grafikte Sl ve Tp'yi görüntülemek için bir hindi oluşturmaya çalışıyorum, bir şey çalışmıyor - çubuğun kapanışında çiziyor, sorun ne?

ATR türkiye baz alınmıştır.

 //+------------------------------------------------------------------+
//|                                                          Tp/Sl.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net/"

#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Red
#property indicator_color2 Green
#property indicator_color3 Red
#property indicator_color4 Green
//---- input parameters
extern int PeriodMM= 25 ;
//---- buffers
double SlBuffer[];
double TpBuffer[];
double SlBuffer2[];
double TpBuffer2[];
double TempBuffer[];
double TempBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- 1 additional buffer used for counting.
   IndicatorBuffers ( 4 );
//---- indicator line
   SetIndexStyle ( 0 , DRAW_LINE );
   SetIndexBuffer ( 0 ,SlBuffer);
   SetIndexStyle ( 1 , DRAW_LINE );
   SetIndexBuffer ( 1 ,TpBuffer);
   SetIndexStyle ( 2 , DRAW_LINE );
   SetIndexBuffer ( 2 ,SlBuffer2);
   SetIndexStyle ( 3 , DRAW_LINE );
   SetIndexBuffer ( 3 ,TpBuffer2);
   SetIndexBuffer ( 4 ,TempBuffer);
   SetIndexBuffer ( 5 ,TempBuffer2);
//----
   SetIndexDrawBegin ( 0 ,PeriodMM);
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Average True Range                                               |
//+------------------------------------------------------------------+
int start()
  {
   int i,counted_bars= IndicatorCounted ();
//----
   if ( Bars <=PeriodMM) return ( 0 );
//---- initial zero
   if (counted_bars< 1 )
       for (i= 1 ;i<=PeriodMM;i++)
      SlBuffer[ Bars -i]= 0.0 ;
      TpBuffer[ Bars -i]= 0.0 ;
      SlBuffer2[ Bars -i]= 0.0 ;
      TpBuffer2[ Bars -i]= 0.0 ;
//----
   i= Bars -counted_bars- 1 ;
   while (i>= 0 )
     {
       double high=High[i];
       double low =Low[i];
       double close = Close[i];
      TempBuffer[i]=(high-low)/ 2 ;
      TempBuffer2[i]=(high-low)/ 2 * 2.5 ;
      i--;
     }
//----
   if (counted_bars> 0 ) counted_bars--;
   int limit= Bars -counted_bars;
   for (i= 0 ; i<limit; i++)
      SlBuffer[i]=Close[i]+ iMAOnArray (TempBuffer, Bars ,PeriodMM, 0 , MODE_SMA ,i);
      TpBuffer[i]=Close[i]+ iMAOnArray (TempBuffer2, Bars ,PeriodMM, 0 , MODE_SMA ,i);
      SlBuffer2[i]=Close[i]- iMAOnArray (TempBuffer, Bars ,PeriodMM, 0 , MODE_SMA ,i);
      TpBuffer2[i]=Close[i]- iMAOnArray (TempBuffer2, Bars ,PeriodMM, 0 , MODE_SMA ,i);
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
 
Yoldaşlar, CSV dosyalarının neden oluşturulmadığını anlayamıyorum, her şey daha önce çalıştı.
 //+------------------------------------------------------------------+
//|                                                          TP1.mq4 |
//|                                                      S.I.Shlikov |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "S.I.Shlikov"
#property link       ""
int init()  
  {
   int h= FileOpen ( "H" +( Period ()/ 60 )+ ".csv" , FILE_CSV | FILE_WRITE | FILE_READ , ";" );
     if (h< 1 )
      {
       Print ( "Файл не найден : " , GetLastError ());
       return (false);
      }
   FileSeek (h, 0 , SEEK_END );
   FileWrite (h, "Date" , "EURUSD" , "GBPUSD" , "NZDUSD" , "USDJPY" , "EURJPY" , "GBPJPY" , "USDCHF" , "EURCHF" , "GBPCHF" );
   FileClose (h);        
  }
int start()
  {
   int h= FileOpen ( "H" +( Period ()/ 60 )+ ".csv" , FILE_CSV | FILE_WRITE | FILE_READ , ";" );
     if (h< 1 )
      {
       Print ( "Файл не найден : " , GetLastError ());
       return (false);
      }
   string Wtime= TimeToStr ( TimeCurrent (),TIME_DATE|TIME_MINUTES);
   FileSeek (h, 0 , SEEK_END );
   FileWrite (h,Wtime, DoubleToStr ( iClose ( "EURUSD" , Period (), 0 ), MarketInfo ( "EURUSD" ,MODE_DIGITS)),
                     DoubleToStr ( iClose ( "GBPUSD" , Period (), 0 ), MarketInfo ( "GBPUSD" ,MODE_DIGITS)),
                     DoubleToStr ( iClose ( "NZDUSD" , Period (), 0 ), MarketInfo ( "NZDUSD" ,MODE_DIGITS)),
                     
                     DoubleToStr ( iClose ( "USDJPY" , Period (), 0 ), MarketInfo ( "USDJPY" ,MODE_DIGITS)),
                     DoubleToStr ( iClose ( "EURJPY" , Period (), 0 ), MarketInfo ( "EURJPY" ,MODE_DIGITS)),
                     DoubleToStr ( iClose ( "GBPJPY" , Period (), 0 ), MarketInfo ( "GBPJPY" ,MODE_DIGITS)),
                     
                     DoubleToStr ( iClose ( "USDCHF" , Period (), 0 ), MarketInfo ( "USDCHF" ,MODE_DIGITS)),
                     DoubleToStr ( iClose ( "EURCHF" , Period (), 0 ), MarketInfo ( "EURCHF" ,MODE_DIGITS)),
                     DoubleToStr ( iClose ( "GBPCHF" , Period (), 0 ), MarketInfo ( "GBPCHF" ,MODE_DIGITS))
                     );
   FileClose (h);   
   return ( 0 );
  }
 
orb :
Yoldaşlar, CSV dosyalarının neden oluşturulmadığını anlayamıyorum, her şey daha önce çalıştı.

hata numarası nedir?
 
sergeev :

hata numarası nedir?
hata numarası yok... sadece dosyalar oluşturulmadı, ALPARI\tester\files\ dosyasına bakıyorum
 
orb :
hata numarası yok... sadece dosyalar oluşturulmadı, ALPARI\tester\files\ dosyasına bakıyorum

tamam başka yere bak
 
sergeev :

Peki başka yere bak
zaten baktı.