エラー、バグ、質問 - ページ 2132 1...212521262127212821292130213121322133213421352136213721382139...3185 新しいコメント Alexey Viktorov 2018.02.17 09:42 #21311 fxsaber:著者が非常勤の司会者である場合。むしろ、モデレーター兼パートタイムのコーダー。 TheXpert 2018.02.17 10:27 #21312 fxsaber: KBのEA作者が、自分のコードの誤りを指摘する関連ディスカッションの第三者コメントを削除するのは正しいことですか?いいえ、もちろんです。 Artyom Trishkin 2018.02.17 11:55 #21313 fxsaber: KBのEAの作者が、自分のコードの誤りを指摘する関連するディスカッションの第三者のコメントを削除するのは正しいことですか? いいえ、もちろんそんなことはありません。このようなコメントは、その誤りを正すことに貢献します。黙殺したり、潰したりすると、KBが悪いマニュアルになる。 A100 2018.02.17 20:04 #21314 意味がわからない、MQLで逆にやる意味はあったのか?C++ VS2017エムエルシーprintf( "%s", ... )printf( "%S", ... )printf( "%S", ... )printf( "%s", ... )printf( "%c", ... )printf( "%C", ... )printf( "%C", ... )printf( "%c", ... ) 実際、MQL::printfはCPP::wprintfに対応しますが、MQLにはCPP::printfのアナログは存在しません。 Renat Fatkhullin 2018.02.17 20:40 #21315 A100:意味がわからない、MQLで逆にやる意味はあったのか? C++ VS2017エムエルシーprintf( "%s", ... )printf( "%S", ... )printf( "%S", ... )printf( "%s", ... )printf( "%c", ... )printf( "%C", ... )printf( "%C", ... )printf( "%c", ... ) MQL::printf は CPP::wprintf に相当しますが、MQL には CPP::printf のアナログはありません。 MQL5はすべてユニコードなので、1バイト文字列は完全に捨てました。 A100 2018.02.17 20:59 #21316 Renat Fatkhullin: MQL5はすべてユニコードなので、1バイト文字列は完全に捨てました。完全に信じているわけではありませんすべてがうまくいく。 void OnStart() { uchar ch[] = { 0x41,0x6E,0x73,0x69,0x20,0x69,0x73,0x20,0x61,0x6C,0x69,0x76,0x65,0x21 }; string ansi; for ( int i = 0, j = 0; i < ArraySize( ch ); i+=2, j++ ) StringSetCharacter( ansi, j, ch[ i ] | ch[ i + 1 ] << 8 ); printf( "%S", ansi ); } 結果:Ansiは生きていた Renat Fatkhullin 2018.02.17 21:13 #21317 A100:完全に信じているわけではありませんすべてがうまくいく。 結果:Ansiは生きていたバイナリをユニコードにパッキングして、システム関数経由の呼び出しで爆発するリスクを得るのは、賢明ではありません。 このような試みは、おそらく後でフィルタリングされるでしょう。 A100 2018.02.17 21:38 #21318 Renat Fatkhullin:システム機能の呼び出しで爆発するリスクを負うのは理不尽だ。文字列はゼロで終わることが保証されているので、誇張しないでください。さらに、マルチバイト文字と一緒にシングルバイト文字も実はユニコードの一部で、MQLではすべて正常に動作し、Expertsタブで通常の(あのひどい等幅フォントではなく)フォントで出力することが可能です。 これは、uchar[]を引数に持つDLL関数の呼び出しを禁止するようなもので、ユーザが誤ってuchar[]を埋めてしまう(例えば、末尾が0でない)ことを恐れているのですが、多くのシステム関数ではushort[](ちなみにこれも誤って埋めることができます)ではなく、正確にuchar[]を要求します。 A100 2018.02.17 21:51 #21319 2行目は、人間(等幅ではない)フォントでの出力です。このように、等幅フォントを ::ArrayPrint()のみに残すことは技術的に容易である。 Aleksandr Teleguz 2018.02.18 11:58 #21320 こんにちは。このエラーの原因究明をお願いします。mql4からmql5へインジケータを移行しています。iHighの機能については、以下の「シェル」を使用しています。 double iHigh(string symbol,ENUM_TIMEFRAMES tf,int index) { if(index < 0) return(-1); double Arr[1]; if(CopyHigh(symbol,tf,index,1,Arr)>0) return(Arr[0]); else { Print(__FUNCTION__,GetLastError()); return(-1); } } その結果、Symbol()関数が 返す文字列がsymbolパラメータとして渡されるにもかかわらず、エラー4301: "Unknown symbol "が発生しました。以下は、iHighを呼び出す関数のコードの一部です。 ENUM_TIMEFRAMES tf=Period(); string symbol = Symbol(); if(filtr1==false) return(true); int i1,i2=0; for(i1=i+1; i2<6; i1++) { if(iLow(symbol,tf,i1)<=iLow(symbol,tf,i1+1) && iHigh(symbol,tf,i1)>=iHigh(symbol,tf,i1+1)) { break; //выход из цикла } else { i2++; } } 1...212521262127212821292130213121322133213421352136213721382139...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
著者が非常勤の司会者である場合。
むしろ、モデレーター兼パートタイムのコーダー。
KBのEA作者が、自分のコードの誤りを指摘する関連ディスカッションの第三者コメントを削除するのは正しいことですか?
いいえ、もちろんです。
KBのEAの作者が、自分のコードの誤りを指摘する関連するディスカッションの第三者のコメントを削除するのは正しいことですか?
意味がわからない、MQLで逆にやる意味はあったのか?
意味がわからない、MQLで逆にやる意味はあったのか?
MQL5はすべてユニコードなので、1バイト文字列は完全に捨てました。
完全に信じているわけではありませんすべてがうまくいく。
結果:Ansiは生きていた
完全に信じているわけではありませんすべてがうまくいく。
結果:Ansiは生きていた
バイナリをユニコードにパッキングして、システム関数経由の呼び出しで爆発するリスクを得るのは、賢明ではありません。
このような試みは、おそらく後でフィルタリングされるでしょう。
システム機能の呼び出しで爆発するリスクを負うのは理不尽だ。
文字列はゼロで終わることが保証されているので、誇張しないでください。さらに、マルチバイト文字と一緒にシングルバイト文字も実はユニコードの一部で、MQLではすべて正常に動作し、Expertsタブで通常の(あのひどい等幅フォントではなく)フォントで出力することが可能です。
これは、uchar[]を引数に持つDLL関数の呼び出しを禁止するようなもので、ユーザが誤ってuchar[]を埋めてしまう(例えば、末尾が0でない)ことを恐れているのですが、多くのシステム関数ではushort[](ちなみにこれも誤って埋めることができます)ではなく、正確にuchar[]を要求します。
2行目は、人間(等幅ではない)フォントでの出力です。このように、等幅フォントを ::ArrayPrint()のみに残すことは技術的に容易である。
こんにちは。このエラーの原因究明をお願いします。mql4からmql5へインジケータを移行しています。iHighの機能については、以下の「シェル」を使用しています。
その結果、Symbol()関数が 返す文字列がsymbolパラメータとして渡されるにもかかわらず、エラー4301: "Unknown symbol "が発生しました。以下は、iHighを呼び出す関数のコードの一部です。