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

 
Roman Sharanov :

Hiçbir şey değişmedi, ayrıca e+321'i gösteriyor

Kodun tamamını göstermedin. İndikatörden veri aldığınız dizinin ne tür ve hangi boyutta olduğu bilinmiyor.

 
Ah, çok aptaldım, başlatmada aptalca bir hata yaptım ve bu nedenle her şey işe yaramadı, yardım için teşekkürler
 
Vitaly Muzichenko :

Çalışıyor, en kolay çözüm!

 void OnStart ()
{
   double d = 1.5 ;
  
   Print (( long )d == d ? ( string )( long )d : ( string )d);
}
 
Roman Sharanov :

İşte bir örnek: üç öğeyi kopyalar - 0 numaralı çubuktan 1 numaralı çubuktan ve 2 numaralı çubuktan tüm gösterge arabelleklerinden .

Her arabellekteki #0 çubuğundaki değeri yazdırır:

 //+------------------------------------------------------------------+
//|                                           Simple Heiken_Ashi.mq5 |
//|                              Copyright © 2019, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2019, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.000"
/*
   barabashkakvn Trading engine 3.025
*/
int     handle_iCustom;               // variable for storing the handle of the iCustom indicator 
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- create handle of the indicator iCustom
   handle_iCustom= iCustom ( Symbol (), Period (), "Examples\\Heiken_Ashi" );
//--- if the handle is not created 
   if (handle_iCustom== INVALID_HANDLE )
     {
       //--- tell about the failure and output the error code 
       PrintFormat ( "Failed to create handle of the iCustom indicator for the symbol %s/%s, error code %d" ,
                   Symbol (),
                   EnumToString ( Period ()),
                   GetLastError ());
       //--- the indicator is stopped early 
       return ( INIT_FAILED );
     }
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   double heiken_ashi_open[],heiken_ashi_high[],heiken_ashi_low[],heiken_ashi_close[];
   ArraySetAsSeries (heiken_ashi_open, true );
   ArraySetAsSeries (heiken_ashi_high, true );
   ArraySetAsSeries (heiken_ashi_low, true );
   ArraySetAsSeries (heiken_ashi_close, true );
   int start_pos= 0 ,count= 3 ;
   if (!iGetArray(handle_iCustom, 0 ,start_pos,count,heiken_ashi_open) || 
      !iGetArray(handle_iCustom, 1 ,start_pos,count,heiken_ashi_high) || 
      !iGetArray(handle_iCustom, 2 ,start_pos,count,heiken_ashi_low) || 
      !iGetArray(handle_iCustom, 3 ,start_pos,count,heiken_ashi_close))
     {
       return ;
     }
   Comment ( DoubleToString (heiken_ashi_open[ 0 ], Digits ()), "\n" ,
           DoubleToString (heiken_ashi_high[ 0 ], Digits ()), "\n" ,
           DoubleToString (heiken_ashi_low[ 0 ], Digits ()), "\n" ,
           DoubleToString (heiken_ashi_close[ 0 ], Digits ()));
  }
//+------------------------------------------------------------------+
//| TradeTransaction function                                        |
//+------------------------------------------------------------------+
void OnTradeTransaction ( const MqlTradeTransaction &trans,
                         const MqlTradeRequest &request,
                         const MqlTradeResult &result)
  {
//--- 

  }
//+------------------------------------------------------------------+
//| Get value of buffers                                             |
//+------------------------------------------------------------------+
double iGetArray( const int handle, const int buffer, const int start_pos,
                 const int count, double &arr_buffer[])
  {
   bool result= true ;
   if (! ArrayIsDynamic (arr_buffer))
     {
       Print ( "This a no dynamic array!" );
       return ( false );
     }
   ArrayFree (arr_buffer);
//--- reset error code 
   ResetLastError ();
//--- fill a part of the iBands array with values from the indicator buffer
   int copied= CopyBuffer (handle,buffer,start_pos,count,arr_buffer);
   if (copied!=count)
     {
       //--- if the copying fails, tell the error code 
       PrintFormat ( "Failed to copy data from the indicator, error code %d" , GetLastError ());
       //--- quit with zero result - it means that the indicator is considered as not calculated 
       return ( false );
     }
   return (result);
  }
//+------------------------------------------------------------------+
Dosyalar:
 
fxsaber :

İhtiyacınız olan şey bu, çok "hafif". Teşekkür ederim!

 

Bana MT5 terminalleri için ortak klasörün yolunu söyle

 //--- открытие файла для записи, с флагом совестного пользования для чтения
   int han= FileOpen (subfolder+ "\\experts\\files\\" +folder+ ".csv" , FILE_WRITE | FILE_SHARE_READ | FILE_ANSI , "," );
   if (han!= INVALID_HANDLE ) // если файл открыт удачно
     {
       //ЗДЕСЬ ПРОЦЕДУРА ЗАПИСИ В ФАЙЛ
     }
 
yiduwi :

Bana MT5 terminalleri için ortak klasörün yolunu söyle

FILE_COMMON bayrağı, tüm istemci terminallerinin ortak klasöründen sorumludur.

Документация по MQL5: Константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов
Документация по MQL5: Константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов
  • www.mql5.com
Файл открывается для чтения. Флаг используется при открытии файлов (FileOpen()). При открытии файла обязательно должен быть указан флаг FILE_WRITE и/или флаг FILE_READ Файл открывается для записи. Флаг используется при открытии файлов (FileOpen()). При открытии файла обязательно должен быть указан флаг FILE_WRITE и/или флаг FILE_READ Файл...
 
yiduwi :

Bana MT5 terminalleri için ortak klasörün yolunu söyle

bayrak ekle FILE_COMMON

https://www.mql5.com/ru/docs/constants/io_constants/fileflags

klasörü bulun: terminalde: dosya - veri dizinini açın - Windows Gezgini'nde bir seviye yukarı ve bir \Common\Files klasörü olacaktır

 
teşekkürler
 
İyi günler sevgili programcılar! Lütfen aptal soru için beni bağışlayın, ama bu bana huzur vermiyor. Program nasıl yürütülür veya daha doğrusu terminal satırları nasıl okur, yürütme sırası nedir ??? Yoksa her şeyin nasıl olduğunu görmek ve anlamak için bir tür video var mı? Program tarafından nasıl okunduğunu bilmeden dil öğrenmek zor !!!
Neden: