初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 689 1...682683684685686687688689690691692693694695696...1504 新しいコメント Andrey F. Zelinsky 2016.12.03 21:38 #6881 Roma Ivanov: 計算式はこちら - https://www.mql5.com/ru/articles/1492 リンク先の記事にあるように、操作^はパワーアップです。 Artyom Trishkin 2016.12.03 21:40 #6882 Roma Ivanov: 計算式はここから引用しています - https://www.mql5.com/ru/articles/1492読んでないんですけどね。でも、記事中の計算式とグラフ(Excel)から判断すると、パワーアップしていますね。間違っているかもしれません。 Mikhail Toptunov 2016.12.04 06:53 #6883 グッドタイム!2次元配列を*.csv形式に変換する方法を探していて、適当な例を見つけたのですが、それはmt4用で、5で必要です。//+------------------------------------------------------------------+//| 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/ru/articles/1443 Трёхмерные графики - профессиональный инструмент анализа рынка 2006.12.06Antoniuk Olegwww.mql5.com В это статье мы напишем простую библиотеку для создания трехмерных графиков и последующего их проcмотра в Microsoft Excel. Мы воспользуемся стандартными возможностями языка MQL 4 для подготовки и экспорта данных в файл формата *.csv. ファイル: 3dGraphicOut.mq4 2 kb generateCsv.mq4 3 kb generateCsv.mqh 5 kb Questions from Beginners MQL5 どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - Any rookie question, so Artyom Trishkin 2016.12.04 08:14 #6884 Top2n:グッドタイム!2次元配列を*.csv形式に変換する方法を探していて、適当な例を見つけたのですが、それはmt4用で、5で必要です。https://www.mql5.com/ru/articles/1443配列の転送は参照のみ可能です。int GenerateCsv(string fileName, int arraySizeX, int arraySizeY, double & arrayIndexX[], double & arrayIndexY[], double & arrayZ[][]) Mikhail Toptunov 2016.12.04 09:07 #6885 Artyom Trishkin:配列の転送は参照のみ可能です。int GenerateCsv(string fileName, int arraySizeX, int arraySizeY, double & arrayIndexX[], double & arrayIndexY[], double & arrayZ[][]) それなのに、arrayZ[][] は -'[' - 無効なインデックス値と言って 悪態をつきます。 Artyom Trishkin 2016.12.04 09:11 #6886 Top2n: それでも失敗して、arrayZ[][] は -'[' - インデックス値が無効 ですと表示されます。 また、arrayZは何次元で宣言されているのでしょうか? Mikhail Toptunov 2016.12.04 10:14 #6887 Artyom Trishkin: また、arrayZは何次元で宣言されているのでしょうか?arrayZ[][3000] を宣言し、16と すると、イベント処理関数が 全く見つからず#define ARRAY_SIZE_X 16#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); }//+------------------------------------------------------------------+ Questions from Beginners MQL5 どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - Any rookie question, so Artyom Trishkin 2016.12.04 10:46 #6888 Top2n:宣言済み&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); } もう出来合いのものを撮ったんですね。そちらではどのように行われているのでしょうか。見れないんですよねー、携帯から書いてます。 Subscribers 2016.12.04 10:57 #6889 CAppDialog クラスで作成したパネルの色を変更するにはどうすればよいですか? if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2)) return(false); Mikhail Toptunov 2016.12.04 11:23 #6890 Artyom Trishkin: すでに用意されているのでしょう。そちらではどのように行われているのでしょうか。携帯から書いているので、調べられないのです。ご迷惑をおかけして申し訳ございません。//+------------------------------------------------------------------+//| start |//+------------------------------------------------------------------+int start() {а надо //+------------------------------------------------------------------+//| start |//+------------------------------------------------------------------+int OnStart { しかし、ファイルが作成され、要求されたデータではありません。結果 - 17行の真偽値で埋め尽くされた1つの列冒頭にStringSetChar - sworeという 文字列があります。 に変更 しました。StringSetCharacter- これがbooleanの理由なのでしょう。//+------------------------------------------------------------------+//| 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); } ファイル: generateCsv.mqh 5 kb VCSV.mq5 3 kb Questions from Beginners MQL5 Multi Timeframe Indicators マルチタイムフレーム・インディケーター 1...682683684685686687688689690691692693694695696...1504 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
計算式はこちら - https://www.mql5.com/ru/articles/1492
計算式はここから引用しています - https://www.mql5.com/ru/articles/1492
読んでないんですけどね。でも、記事中の計算式とグラフ(Excel)から判断すると、パワーアップしていますね。
間違っているかもしれません。
グッドタイム!2次元配列を*.csv形式に変換する方法を探していて、適当な例を見つけたのですが、それはmt4用で、5で必要です。
//| 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/ru/articles/1443
グッドタイム!2次元配列を*.csv形式に変換する方法を探していて、適当な例を見つけたのですが、それはmt4用で、5で必要です。
https://www.mql5.com/ru/articles/1443
配列の転送は参照のみ可能です。
double & arrayIndexX[], double & arrayIndexY[], double & arrayZ[][])
配列の転送は参照のみ可能です。
double & arrayIndexX[], double & arrayIndexY[], double & arrayZ[][])
それでも失敗して、arrayZ[][] は -'[' - インデックス値が無効 ですと表示されます。
また、arrayZは何次元で宣言されているのでしょうか?
arrayZ[][3000] を宣言し、16と すると、イベント処理関数が 全く見つからず
#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);
}
//+------------------------------------------------------------------+
宣言済み&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 クラスで作成したパネルの色を変更するにはどうすればよいですか?
return(false);
すでに用意されているのでしょう。そちらではどのように行われているのでしょうか。携帯から書いているので、調べられないのです。
ご迷惑をおかけして申し訳ございません。
//+------------------------------------------------------------------+
//| start |
//+------------------------------------------------------------------+
int start()
{
а надо
//+------------------------------------------------------------------+//| start |
//+------------------------------------------------------------------+
int OnStart
{
しかし、ファイルが作成され、要求されたデータではありません。
結果 - 17行の真偽値で埋め尽くされた1つの列
冒頭にStringSetChar - sworeという 文字列があります。
に変更 しました。StringSetCharacter- これがbooleanの理由なのでしょう。
//| 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);
}