エラー、バグ、質問 - ページ 1492 1...148514861487148814891490149114921493149414951496149714981499...3185 新しいコメント Slava 2016.02.03 14:35 #14911 Maxim Khrolenko: そして、グローバル(外部ではなく)は、ダメ なんです。なぜ良くないのでしょうか?グローバル変数は、プログラム起動時に一度だけ初期化されると明示されています。異なる動作をさせたい場合は、OnInitで好きなように初期化します。 Slava 2016.02.03 14:36 #14912 Yuri Evseenkov: ドキュメントに反映させるのが良いと思います。 はい、そうします。 Slava 2016.02.03 14:43 #14913 zaskok3: MQL4+では、入力パラメータをプログラムで 変更する必要がある場合、externは欠かせませんね。例えば、標準のインジケータをインタラクティブなものに変換する場合、inputをexternに置き換える必要があるんだ。コンパイラは入力変数をconstとして扱い、それを変更しようとすると文句を言います。externではそのような問題はありません。入力パラメータの "ダブラー "を使用するMQL5Indicators︓Examples︓ADX.mq5 に例があります。//--- input parameters input int InpPeriodADX=14; // Period //---- buffers double ExtADXBuffer[]; double ExtPDIBuffer[]; double ExtNDIBuffer[]; double ExtPDBuffer[]; double ExtNDBuffer[]; double ExtTmpBuffer[]; //--- global variables int ExtADXPeriod; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ void OnInit() { //--- check for input parameters if(InpPeriodADX>=100 || InpPeriodADX<=0) { ExtADXPeriod=14; printf("Incorrect value for input variable Period_ADX=%d. Indicator will use value=%d for calculations.",InpPeriodADX,ExtADXPeriod); } else ExtADXPeriod=InpPeriodADX; Ilya Malev 2016.02.03 14:49 #14914 同志の皆さん、コンパイル時に定期的に「Internal compiler error」と表示される方はいらっしゃいますか?明らかな理由はなく、再コンパイルの場合はハングアップし、エディタを閉じて(同じタブで、同じコードで)再開した場合は、通常コンパイルが正常に行われます。コードには何の変化もない!しかし、このエラーが数回連続して発生し、エディタを最初に再起動しても解決しないことがあります。今のところ、リロードの結果、すべてコンパイルすることができました。でも、遅かれ早かれ、動かなくなるんじゃないかと心配なんです。同じようなバグに遭遇した人を探して、一緒に発生状況のデータをサービスデスクに提供したいですね。 削除済み 2016.02.03 15:18 #14915 Slawa:入力パラメータに "ダブラー "を使用MQL5Indicatorsのサンプルはこちらです。さて、インジケータをインタラクティブバリアントに変換するには、ソースコードに1行だけ追加する必要があります。ダブラーを作成する場合、ダブラー作成用の追加文字列の他に、テキスト全体の置換を作成する必要があります。一行変えるだけでいいのに、なぜこんな面倒なことをするのか。コンパイル時に入力 変数のconstを意識させないようにするためにはどうしたらよいでしょうか。 Vladimir Karputov 2016.02.03 15:20 #14916 zaskok3:インジケータをインタラクティブなバリアントに変換するためには、ソースに1行追加するだけです。二重にしてしまうと、二重を作るための余分な行に加えて、テキスト全体を置き換える必要があります。一行で簡単に変更できるのに、なぜこんな面倒なことをするのか。コンパイル時に入力 変数のconstを意識させないようにするためにはどうしたらよいでしょうか。 テキスト編集"Ctrl" + "H" - 検索と置換。難しいことは何もありません。ただ、怠慢は禁物です。 Slava 2016.02.03 15:23 #14917 zaskok3:コンパイル時に入力 変数のconstを意識させないようにするためにはどうしたらよいでしょうか。MT5の履歴ベースにおけるインジケータのグローバルストレージ。彼らにとっては、入力パラメータが重要なのです。入力パラメータを変更すると、古いパラメータを持つインジケータは破棄され、変更したパラメータを持つ同じインジケータが再度作成されます。つまり、純粋に建築的な制約である第4バージョンでは、インスタンスから定数を取り除くことができましたが、その場合、新しいMQL4とMQL5の非互換性が発生します。ですから、私たちはそれをしません。引き続きexternをご利用ください。 削除済み 2016.02.03 15:29 #14918 Slawa:つまり、純粋にアーキテクチャ上の制約である。 アーキテクチャが硬直的で、簡単な柔軟性すらあり得ないのが残念です。MQL5でのインタラクティブには、松葉杖が必要であることがわかりました。問題は、言語によって可能性が制限されるなら、その利点はどこにあるのかということです...。 Andrey Dik 2016.02.03 21:29 #14919 pako: 端末を切り離すウィンドウ 如何して 削除済み 2016.02.03 21:38 #14920 Joo Zepper: 如何して どこかの掲示板にあった、DLL 1...148514861487148814891490149114921493149414951496149714981499...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
そして、グローバル(外部ではなく)は、ダメ なんです。
なぜ良くないのでしょうか?グローバル変数は、プログラム起動時に一度だけ初期化されると明示されています。
異なる動作をさせたい場合は、OnInitで好きなように初期化します。
ドキュメントに反映させるのが良いと思います。
MQL4+では、入力パラメータをプログラムで 変更する必要がある場合、externは欠かせませんね。例えば、標準のインジケータをインタラクティブなものに変換する場合、inputをexternに置き換える必要があるんだ。コンパイラは入力変数をconstとして扱い、それを変更しようとすると文句を言います。externではそのような問題はありません。
入力パラメータの "ダブラー "を使用する
MQL5Indicators︓Examples︓ADX.mq5 に例があります。
入力パラメータに "ダブラー "を使用
MQL5Indicatorsのサンプルはこちらです。
さて、インジケータをインタラクティブバリアントに変換するには、ソースコードに1行だけ追加する必要があります。ダブラーを作成する場合、ダブラー作成用の追加文字列の他に、テキスト全体の置換を作成する必要があります。一行変えるだけでいいのに、なぜこんな面倒なことをするのか。
コンパイル時に入力 変数のconstを意識させないようにするためにはどうしたらよいでしょうか。
インジケータをインタラクティブなバリアントに変換するためには、ソースに1行追加するだけです。二重にしてしまうと、二重を作るための余分な行に加えて、テキスト全体を置き換える必要があります。一行で簡単に変更できるのに、なぜこんな面倒なことをするのか。
コンパイル時に入力 変数のconstを意識させないようにするためにはどうしたらよいでしょうか。
コンパイル時に入力 変数のconstを意識させないようにするためにはどうしたらよいでしょうか。
MT5の履歴ベースにおけるインジケータのグローバルストレージ。彼らにとっては、入力パラメータが重要なのです。入力パラメータを変更すると、古いパラメータを持つインジケータは破棄され、変更したパラメータを持つ同じインジケータが再度作成されます。
つまり、純粋に建築的な制約である
第4バージョンでは、インスタンスから定数を取り除くことができましたが、その場合、新しいMQL4とMQL5の非互換性が発生します。ですから、私たちはそれをしません。引き続きexternをご利用ください。
Slawa:
つまり、純粋にアーキテクチャ上の制約である。
端末を切り離すウィンドウ
如何して