MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 393

 
YarTrade : VolC - dosyaya böyle isim verdim. Dosya adı gerekli değil mi?

Sonra şöyle:

   string file_name= "VolC_" + Symbol ()+( string ) Period ();
   int file_handle= FileOpen (file_name, FILE_WRITE | FILE_TXT );
   FileWrite (file_handle,( double )V5);       // V5 - это что?
   FileClose (file_handle);
 
STARIJ :

Sonra şöyle:


V5 - hesaplamanın bir sonucu. V5 kaldırıldı, yerine bir dizi koyun, bir dosyaya yazılmasını istiyorum. Dosya oluşturuldu, ancak ona gösterge veri dizisi değil, yalnızca bir değer yazıldı. Ne eksik? Grafikte doğru bir şekilde çizilmiş bir gösterge var. Değerlerini daha sonra okumak için bir dosyaya yazmak istiyorum. Ancak sadece bir sayı yazılır. Neyin yanlış olduğunu anlamama yardım eder misin?

 
STARIJ :

Sonra şöyle:


FileWriteArray ile yaptım, bu yüzden şimdi dosya boş. dizi orada yazmıyor :(. Nasıl yardım edeceğinizi biliyor musunuz? Elbette biliyorsunuz. Bana neyin yanlış olduğunu söyleyin.

 
YarTrade : kullanarak yaptım, bu yüzden şimdi dosya boş. dizi orada yazmıyor :(. Nasıl yardım edeceğinizi biliyor musunuz? Elbette biliyorsunuz. Bana neyin yanlış olduğunu söyleyin.

işte böyle yazıyor

   int V5= 555 ;
   string file_name= "VolC_" + Symbol ()+( string ) Period ();
   int file_handle= FileOpen (file_name, FILE_WRITE | FILE_TXT );
   FileWrite (file_handle,V5);
   FileClose (file_handle);

Ne tür bir dizi? Kodu yapıştırın, açgözlü olmayı bırakın! Ve şimdi dizi görünüşe göre sadece karakterle yazılmış

   string V5[ 5 ]={ "Жили" , "были" , "дед" , "и" , "баба" };
   string file_name= "VolC_" + Symbol ()+( string ) Period ();
   int file_handle= FileOpen (file_name, FILE_WRITE | FILE_TXT );
   FileWriteArray (file_handle,V5);
   FileClose (file_handle);

Ve burada döngüdeki çift dizi yazıyor

   double V5[ 5 ]={ 3.333 , 7.7777777 , 1.1 , 2.22 , 9.999999999 };
   string file_name= "VolC_" + Symbol ()+( string ) Period ();
   int file_handle= FileOpen (file_name, FILE_WRITE | FILE_TXT );
   for ( int n= 0 ; n< 5 ; n++) FileWrite (file_handle,V5[n]);
   FileClose (file_handle);
 
STARIJ :

işte böyle yazıyor

Ne tür bir dizi? Kodu yapıştırın, açgözlü olmayı bırakın! Ve şimdi dizi görünüşe göre sadece karakterle yazılmış

Ve burada döngüdeki çift dizi yazıyor


Açgözlülük nedir? :)

 #property copyright "ZyZy"
#property link        "https://www.mql5.com/ru/users/alexeyvik/news"
#property version    "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 1
// #property indicator_plots   1
//--- plot Label1
#property indicator_label1    "Label1"
#property indicator_type1    DRAW_LINE
#property indicator_color1    clrYellow
#property indicator_style1    STYLE_SOLID
#property indicator_width1    1
#property indicator_separate_window
//--- input parameters
input int       Aver= 15 ;
datetime Время= 0 ;   // Время прошлого бара
double Bid1;
long V1; // объем для текущего тика вверх
long V2; // накопленный объем для всех тиков вверх текущего бара
long V3; // накопленный объем для всех тиков вниз для текущего бара
long V4; // объем текущего тика вниз
long V5;

//--- indicator buffers
double          Buf_1[];   // буфер для значений идикатора
double          Counter[];     // буфер для расчетов   
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   IndicatorBuffers ( 2 );
   SetIndexBuffer ( 0 ,Buf_1, INDICATOR_DATA ); // создаю буфер для значений индикатора
   SetIndexBuffer ( 1 ,Counter, INDICATOR_CALCULATIONS );
   SetIndexEmptyValue ( 0 , 0.0 );
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
//---
//int limit = prev_calculated > 0 ? rates_total-prev_calculated : rates_total-1;
//for(int i =  limit; i >= 0; i--)
// {
//  Counter[i] = close[i];
//  Indicator[i] = iMAOnArray(Counter, 0, 5, 0, 0, i);
// }
   if (prev_calculated== 0 )
     {
       ArrayInitialize (Counter, 0.0 );
       ArrayInitialize (Buf_1, 0.0 );
     }
   datetime Вр= Time [ 0 ];   // Время текущего бара
   if (Вр>Время)           // Если новый бар
     {
      Время=Вр;           // Запомнить
      Counter[ 0 ]= 0 ;         // и обнулить последний элемент буфера
      V2 = 0 ;
      V4 = 0 ;
     }

   if ( Bid >=Bid1)
     {
       if ( Bid >Bid1)
        {
         V1 = iVolume ( NULL , 0 , 0 );
         V2 = V1 + V2;
        }
       else
        {
         V1 = 0 ;
         V2 = V1 + V2;
        }
     }
   else
     {
      V3 = iVolume ( NULL , 0 , 0 );
      V4 = V3 + V4;
     }

   V5=V2-V4;
   Bid1= Bid ;
   Counter[ 0 ]=( double )V5;
   Buf_1[ 0 ]= iMAOnArray (Counter, 0 ,Aver, 0 , MODE_SMA , 0 );
   Comment ( "Counter " ,Counter[ 0 ], "\n"
           , "Buf_1 " ,Buf_1[ 0 ]);
   
   string file_name= "VolC_" + Symbol ()+( string ) Period ();
   int file_handle= FileOpen (file_name, FILE_WRITE | FILE_TXT );
   FileWriteArray (file_handle,Counter, 0 , WHOLE_ARRAY );     
   FileClose (file_handle);

   return (rates_total);
  }
//+------------------------------------------------------------------+
 
YarTrade : Buradaki açgözlülük nedir? :)

Ve neden göstergeden bir şey yazdıralım? Her şey ekranda - bu yüzden bir gösterge. Bir tabloya ihtiyacım olduğunda, betiği iCustom() ile çalıştırırım

 

Merhaba! Hala terminaldeki sipariş fiyatını kontrol etmesi gereken kodla mücadele ediyorum. Biletleri kontrol etmeye karar verdi. Bir dizide puanlanan biletler, kontrol edilmeye başlandı.

Her şey yolunda, DOĞRU döndürür. Sanırım birini sileceğim, YANLIŞ olacak. Ama hayır (((Her şeyi sildim, ancak komut dosyası hala 0 değil, 1 döndürüyor) Neyi yanlış yapıyorum?


 int start()
{
   while (! IsStopped ())
   {
       int ordsel = 0 ;
       double ticord[ 3 ] = { 8895969 , 8901032 , 8901033 };
         for (ordsel= 0 ; ordsel<= 2 ;ordsel++) 
         {
             Sleep ( 5000 ); 
             Alert ( OrderSelect (ticord[ordsel], SELECT_BY_TICKET , MODE_TRADES )); 
         }
       if (! IsExpertEnabled ()) break ;
   }
   return ;
}
 

Merhaba uzman arkadaşlar! Lütfen yeni başlayan birine yardım edin. Danışmana bir gösterge dikmeye çalışıyorum (beynimi kırdım...)! Hata veriyor: 'limit' - türsüz bildirim.

Bu satırda: limit = MathMax(limit,MathMin(Bars,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period()));


 
Dimitry-1983 :

Merhaba! Hala terminaldeki sipariş fiyatını kontrol etmesi gereken kodla mücadele ediyorum. Biletleri kontrol etmeye karar verdi. Bir dizide puanlanan biletler, kontrol edilmeye başlandı.

Her şey yolunda, DOĞRU döndürür. Sanırım birini sileceğim, YANLIŞ olacak. Ama hayır (((Her şeyi sildim, ancak komut dosyası hala 0 değil, 1 döndürüyor) Neyi yanlış yapıyorum?



Her şey doğru, gerçek şu ki ( OrderSelect(...) ) bilet ile seçerseniz, 3. parametre MODE_TRADES tarafından yok sayılır

ve hangi listeden (kapalı, açık) bir sipariş seçtiğinizi belirlemek için kapanış saatine kadar kontrol etmeniz gerekir.

0- açık ve beklemede, >0 kapalı

 
Ptichka12 :

Merhaba uzman arkadaşlar! Lütfen yeni başlayan birine yardım edin. Bir danışmana gösterge dikmeye çalışıyorum (beynimi kırdım...)! Hata veriyor: 'limit' - türsüz bildirim.

Bu satırda: limit = MathMax(limit,MathMin(Bars,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period()));



ne kadar ilginç dikmişsin

Bunu yanlışlıkla dene

 int limit = MathMax (limit, MathMin ( Bars , iCustom ( NULL ,timeFrame,indicatorFileName, "returnBars" , 0 , 0 )*timeFrame/ Period ()));