MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1169 1...116211631164116511661167116811691170117111721173117411751176...1953 新しいコメント kopeyka2 2020.06.06 11:22 #11681 Alexandr Sokolov:計算までいかない以下は初期化です。そして、こちらがテスト条件です。THANK YOU!!!))) I Tf=false on purpose and......Forget .おっと すべてがうまくいく。 stepystr 2020.06.06 11:28 #11682 Alexey Viktorov: まず、未来配列の2次元目の値の数を決める必要があります。すでに今、要素の数が等しくないことがわかります。おそらく、最大値を1として、余分な1が残っているところを0や-1などで埋めればいいのでしょう。また、1次元がわかっている場合は、あらかじめ定義しておいても損はないでしょう。そして、入れ子ループでL1を取り、必要なものをすべて配列に書き込み、外側のループの2回目の繰り返しでL2のすべてを次のインデックスに書き込む、といった具合です。 。 そして、かなりきちんと、構造にこだわったほうがいい。 そうすると,配列は1次元と2次元の次元を変更できるようになります.つまり、1次元配列の中の1次元配列になる。 ベクターありがとうございます。 Alexey Viktorov 2020.06.07 09:43 #11683 stepystr: ベクターありがとうございます。 パラメータを文字列に書いて、それを使ってパラメータの配列を作る方が得策でもあるというオーダーに、いきなり直面したのだ。理論を実践に移さなければならなかったのです。だから、私のタスクをあなたのタスクに拡張したのです。ここでは、構造体を使った例を紹介します。この例では、値のリストの最後にある区切り文字 ";" を削除する必要があります。 /********************************************************************\ | 00.mq5 | | © 2020, Alexey Viktorov | | https://www.mql5.com/ru/users/alexeyvik/news | \********************************************************************/ #property copyright "© 2020, Alexey Viktorov" #property link "https://www.mql5.com/ru/users/alexeyvik/news" #property version "1.00" struct TEST { double s0[]; double s1[]; } test[2]; string L1 = "1.15110;1.14105;1.13240;1.12370;1.11640;1.11170;1.10655;1.09895;1.08850;1.07850;1.06475"; string L2 = "1.32130;1.31030;1.29860;1.29042;1.27985;1.25605;1.24725;1.23565;1.22505;1.20815;1.20115;1.18850;1.16690;1.14465"; /********************Script program start function*******************/ void OnStart() { String_to_Array(L1, test[0].s0); String_to_Array(L2, test[1].s1); ArrayPrint(test[0].s0); ArrayPrint(test[1].s1); }/******************************************************************/ /********************************************************************/ void String_to_Array(string str, double &array[]) { StringTrimRight(str); int index = INT_MAX; while(index > 0) { index = StringFind(str, ";"); int i = ArraySize(array); ArrayResize(array, i+1); array[i] = StringToDouble(StringSubstr(str, 0, index)); StringTrimLeft(str); str = StringSubstr(str, index+1); } };/*****************************************************************/ /*****************************End program****************************/ ファイル: 00.mq5 4 kb Igor Makanu 2020.06.07 10:01 #11684 Alexey Viktorov:パラメータを文字列に書いて、それを使ってパラメータの配列を作る方が得策でもあるというオーダーに、いきなり直面したのだ。理論を実践に移さなければならなかったのです。だから、私のタスクをあなたのタスクに拡張したのです。ここでは、構造体を使った例を紹介します。この例では、値のリストの最後にある区切り文字 ";" を削除する必要があります。 struct TEST { double s0[]; double s1[]; } test[2]; string L1 = "1.15110;1.14105;1.13240;1.12370;1.11640;1.11170;1.10655;1.09895;1.08850;1.07850;1.06475"; string L2 = "1.32130;1.31030;1.29860;1.29042;1.27985;1.25605;1.24725;1.23565;1.22505;1.20815;1.20115;1.18850;1.16690;1.14465"; /********************Script program start function*******************/ void OnStart() { String_to_Array(L1, ';', test[0].s0); String_to_Array(L2, ';', test[1].s1); ArrayPrint(test[0].s0); ArrayPrint(test[1].s1); }/******************************************************************/ /********************************************************************/ void String_to_Array(const string str, const ushort separator, double &result[]) { string s_arr[]; if(StringSplit(str, separator, s_arr) <= 0) { ArrayResize(result, 0); Print(__FUNCTION__ + " Error converting !"); return; } ArrayResize(result, ArraySize(s_arr)); for(int i = ArraySize(result) - 1; i >= 0; i--) result[i] = StringToDouble(s_arr[i]); } Igor Makanu 2020.06.07 10:06 #11685 チェックなしで、こんなこともできます。 void String_to_Array(const string str, const ushort separator, double &result[]) { string s_arr[]; StringSplit(str, separator, s_arr); for(int i = ArrayResize(result, ArraySize(s_arr)) - 1; i >= 0; i--) result[i] = StringToDouble(s_arr[i]); } Alexey Viktorov 2020.06.07 10:09 #11686 Igor Makanu: また、オプションとして私もドキュメントを全部読んでいないことが判明しました。 Igor Makanu 2020.06.07 10:22 #11687 Alexey Viktorov:また、オプションとして私もドキュメントを全部読んでいないことが判明しました。 StringSplitは クールなもので、区切り文字列のパースに非常に便利です。 Carcass77 2020.06.07 11:19 #11688 皆さん、こんにちは。私のコードにString 変数を挿入するのを手伝ってください。ありがとうございました。 ObjectCreate("ObjName11",OBJ_LABEL,0,0,0); ObjectSetText("ObjName11","|Direction: ="+ <String> +"|Spread: ="+IntegerToString(Spread,0)+"|Today: ="+DoubleToStr(ATRToday,2)+"%" ,Size,"Verdana",Red); ObjectSet("ObjName11",OBJPROP_CORNER,infoCorner); ObjectSet("ObjName11",OBJPROP_XDISTANCE,0); ObjectSet("ObjName11",OBJPROP_YDISTANCE,120); Igor Makanu 2020.06.07 11:46 #11689 Carcass77: 皆さん、こんにちは。String型 変数をコードに挿入するのを手伝ってください。感謝 自分の質問に答えてくれるかな? とか、どこかのコードを切り取って使えなくなったのか? とか、最低限推測は必要です))) ぜんしょ string s; で、<String>をsに置き換える。 が、このやり方ではダメだと思うんです。 Carcass77 2020.06.07 13:34 #11690 Igor Makanu:自分の質問に答えてくれるかな?とか、どこかのコードを切り取って使えなくなったのか? とか、最低限推測は必要です)))ぜんしょで、<String>をsに置き換える。しかし、このやり方では解決にならないと思います。 私のインジケータは、ちょうど拡張して動作しています。 よし、自分でやってみるか。 1...116211631164116511661167116811691170117111721173117411751176...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
計算までいかない
以下は初期化です。
そして、こちらがテスト条件です。
THANK YOU!!!))) I Tf=false on purpose and......Forget .おっと
すべてがうまくいく。まず、未来配列の2次元目の値の数を決める必要があります。すでに今、要素の数が等しくないことがわかります。おそらく、最大値を1として、余分な1が残っているところを0や-1などで埋めればいいのでしょう。また、1次元がわかっている場合は、あらかじめ定義しておいても損はないでしょう。そして、入れ子ループでL1を取り、必要なものをすべて配列に書き込み、外側のループの2回目の繰り返しでL2のすべてを次のインデックスに書き込む、といった具合です。 。
そして、かなりきちんと、構造にこだわったほうがいい。
そうすると,配列は1次元と2次元の次元を変更できるようになります.つまり、1次元配列の中の1次元配列になる。ベクターありがとうございます。
パラメータを文字列に書いて、それを使ってパラメータの配列を作る方が得策でもあるというオーダーに、いきなり直面したのだ。理論を実践に移さなければならなかったのです。だから、私のタスクをあなたのタスクに拡張したのです。ここでは、構造体を使った例を紹介します。この例では、値のリストの最後にある区切り文字 ";" を削除する必要があります。
パラメータを文字列に書いて、それを使ってパラメータの配列を作る方が得策でもあるというオーダーに、いきなり直面したのだ。理論を実践に移さなければならなかったのです。だから、私のタスクをあなたのタスクに拡張したのです。ここでは、構造体を使った例を紹介します。この例では、値のリストの最後にある区切り文字 ";" を削除する必要があります。
チェックなしで、こんなこともできます。
また、オプションとして私もドキュメントを全部読んでいないことが判明しました。
また、オプションとして私もドキュメントを全部読んでいないことが判明しました。
StringSplitは クールなもので、区切り文字列のパースに非常に便利です。
皆さん、こんにちは。String型 変数をコードに挿入するのを手伝ってください。感謝
自分の質問に答えてくれるかな?
とか、どこかのコードを切り取って使えなくなったのか? とか、最低限推測は必要です)))
ぜんしょ
string s;
で、<String>をsに置き換える。
が、このやり方ではダメだと思うんです。
自分の質問に答えてくれるかな?
とか、どこかのコードを切り取って使えなくなったのか? とか、最低限推測は必要です)))
ぜんしょ
で、<String>をsに置き換える。
しかし、このやり方では解決にならないと思います。
私のインジケータは、ちょうど拡張して動作しています。
よし、自分でやってみるか。