Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 689
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
buradan alınan formül - https://www.mql5.com/en/articles/1492
buradan alınan formül - https://www.mql5.com/en/articles/1492
Okuma. Ancak makaledeki (Excel) formül ve grafiklere bakılırsa - üs.
yanılıyor olabilirim
İyi zaman! İki boyutlu bir diziyi *.csv formatına nasıl çevireceğimi merak ettim, uygun bir örnek buldum ama mt4 için bu 5. için gerekli.
//| generateCsv.mq4 |
//| Copyright © 2006, Antonio Banderass. All rights reserved |
//| banderassa@ukr.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Antonio Banderass. All rights reserved"
#property link "banderassa@ukr.net"
#property library
#define ARRAY_SIZE_X 16
#define ARRAY_SIZE_Y 16
//+------------------------------------------------------------------+
//| PrepareString |
//+------------------------------------------------------------------+
string PrepareString( string s)
{
bool exit = false ;
int index = 0 ;
string str = s;
//----
while (!exit)
{
index = StringFind (str, "." , index);
if (index > - 1 )
str = StringSetCharacter (str, index, ',' );
else
exit = true ;
}
return (str);
}
//+------------------------------------------------------------------+
//| GenerateCsv |
//+------------------------------------------------------------------+
int GenerateCsv( string fileName, int arraySizeX, int arraySizeY,
double arrayIndexX[] , double arrayIndexY[] , double arrayZ[][] ) // Ругается говорит - arrays are passed by reference only пробовал добавить &_array.. но запинается на двумерном
{
int handle = FileOpen (fileName, FILE_CSV | FILE_WRITE , ' ' ), x, y;
string str;
if (handle < 1 )
{
Print ( "Error:" , GetLastError ());
return (handle);
}
else
{
str = ";" ;
for (x = 0 ; x < arraySizeX; x++)
{
str = str + arrayIndexX[x];
str = str + ";" ;
}
FileWrite (handle, PrepareString(str));
for (y = 0 ; y < arraySizeY; y++)
{
str = "" ;
str = str + arrayIndexY[y] + ";" ;
for (x = 0 ; x < arraySizeX; x++)
{
str = str + arrayZ[x,y];
str = str + ";" ;
}
FileWrite (handle, PrepareString(str));
}
}
FileClose (handle);
return (handle);
}
//+------------------------------------------------------------------+
https://www.mql5.com/en/articles/1443
İyi zaman! İki boyutlu bir diziyi *.csv formatına nasıl çevireceğimi merak ettim, uygun bir örnek buldum ama mt4 için bu 5. için gerekli.
https://www.mql5.com/en/articles/1443
Diziler yalnızca referans yoluyla iletilebilir:
double & arrayIndexX[], double & arrayIndexY[], double & arrayZ[][])
Diziler yalnızca referans yoluyla iletilebilir:
double & arrayIndexX[], double & arrayIndexY[], double & arrayZ[][])
Ve yine de yemin ediyor & arrayZ[][] diyor ki - '[' - geçersiz dizin değeri
arrayZ'nin kaç boyutu var?
Bildirildi & arrayZ[][3000], 16'ya eşitlersem, genellikle olay işleme işlevi bulunamadı
#define ARRAY_SIZE_Y 16
int start()
{
int x, y;
double arrayIndexX[ARRAY_SIZE_X];
double arrayIndexY[ARRAY_SIZE_Y];
double arrayZ[ARRAY_SIZE_X,ARRAY_SIZE_Y];
//----
for (x = 0 ; x < ARRAY_SIZE_X; x++)
arrayIndexX[x] = x / 10.0 ;
//----
for (y = 0 ; y < ARRAY_SIZE_Y; y++)
arrayIndexY[y] = y / 10.0 ;
//----
for (x = 0 ; x < ARRAY_SIZE_X; x++)
for (y = 0 ; y < ARRAY_SIZE_Y; y++)
arrayZ[x,y] = MathSin (arrayIndexX[x] + arrayIndexY[y]);
GenerateCsv( "test.csv" , ARRAY_SIZE_X, ARRAY_SIZE_Y, arrayIndexX, arrayIndexY, arrayZ ); // 'arrayZ' - parameter conversion not allowed
//----
return ( 0 );
}
//| PrepareString |
//+------------------------------------------------------------------+
string PrepareString( string s)
{
bool exit = false ;
int index = 0 ;
string str = s;
//----
while (!exit)
{
index = StringFind (str, "." , index);
if (index > - 1 )
str = StringSetCharacter (str, index, ',' );
else
exit = true ;
}
return (str);
}
//+------------------------------------------------------------------+
//| GenerateCsv |
//+------------------------------------------------------------------+
int GenerateCsv( string fileName, int arraySizeX, int arraySizeY,
double &arrayIndexX[], double &arrayIndexY[], double &arrayZ[][3000])
{
int handle = FileOpen (fileName, FILE_CSV | FILE_WRITE , ' ' ), x, y;
string str;
if (handle < 1 )
{
Print ( "Error:" , GetLastError ());
return (handle);
}
else
{
str = ";" ;
for (x = 0 ; x < arraySizeX; x++)
{
str = str + arrayIndexX[x];
str = str + ";" ;
}
FileWrite (handle, PrepareString(str));
for (y = 0 ; y < arraySizeY; y++)
{
str = "" ;
str = str + arrayIndexY[y] + ";" ;
for (x = 0 ; x < arraySizeX; x++)
{
str = str + arrayZ[x,y];
str = str + ";" ;
}
FileWrite (handle, PrepareString(str));
}
}
FileClose (handle);
return (handle);
}
//+------------------------------------------------------------------+
Bildirilen & arrayZ[][3000]
string PrepareString( string s);
int GenerateCsv( string fileName, int arraySizeX, int arraySizeY,
double &arrayIndexX[], double &arrayIndexY[],
double &arrayZ[][3000]);
int start()
{
int x, y;
double arrayIndexX[ARRAY_SIZE_X];
double arrayIndexY[ARRAY_SIZE_Y];
double arrayZ[ARRAY_SIZE_X,ARRAY_SIZE_Y];
//----
for (x = 0 ; x < ARRAY_SIZE_X; x++)
arrayIndexX[x] = x / 10.0 ;
//----
for (y = 0 ; y < ARRAY_SIZE_Y; y++)
arrayIndexY[y] = y / 10.0 ;
//----
for (x = 0 ; x < ARRAY_SIZE_X; x++)
for (y = 0 ; y < ARRAY_SIZE_Y; y++)
arrayZ[x,y] = MathSin (arrayIndexX[x] + arrayIndexY[y]);
GenerateCsv( "test.csv" , ARRAY_SIZE_X, ARRAY_SIZE_Y, arrayIndexX, arrayIndexY, arrayZ ); // 'arrayZ' - parameter conversion not allowed
//----
return ( 0 );
}
CAppDialog sınıfı kullanılarak oluşturulan bir panelin rengini nasıl değiştirebilirim?
return ( false );
Onu zaten aldın. Orada her şey nasıl yapılıyor? Göremiyorum cepten yazıyorum.
rahatsız ettiğim için özür dilerim
//+------------------------------------------------------------------+
//| start |
//+------------------------------------------------------------------+
int start()
{
а надо
//+------------------------------------------------------------------+//| start |
//+------------------------------------------------------------------+
int OnStart
{
Ancak dosya, istenen verilerle değil,
sonuç - bir sütun dolu 17 satır boolean true
StringSetChar dizesine sahip bir satır var - başlangıçta lanetli,
bool olarak değiştirildi StringSetCharacter - bu nedenle bir boole verir
//| PrepareString |
//+------------------------------------------------------------------+
string PrepareString( string s)
{
bool exit = false ;
int index = 0 ;
string str = s;
//----
while (!exit)
{
index = StringFind (str, "." , index);
if (index > - 1 )
str = StringSetChar (str, index, ',' );
else
exit = true ;
}
return (str);
}