初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1242 1...123512361237123812391240124112421243124412451246124712481249...1503 新しいコメント Vladimir Karputov 2020.08.15 16:31 #12411 Sayberix:読んでいます。ただ、まだそこに到達していないだけだと思います。28MBのpdfリファレンスを読みこなすのは容易ではないと思います。別の言い方をすれば、敬虔な信者であっても、すべての教区民が聖書を全部知っているわけではない、ということです。もう一つ質問があるのですが、アドバイスお願いします-難しくなければ。ストラテジービジュアライザーでコードを実行するとき。1. プログラムが無限ループに入る。2.実行結果が異なる。ブレークポイントなしPrintにブレークポイントを設定した場合。すべてヒストリカルデータのデバッグで行っています。 常に変数を増やしているのですね。変数の大きさが限界を超えるのは、いつ頃だと思いますか? Sayberix 2020.08.15 16:44 #12412 Vladimir Karputov:常に変数のサイズを大きくしているのですね。変数の大きさが限界を超えるのは、いつ頃だと思いますか? ulongの 10回の繰り返しで十分だったのではないでしょうか。そこで問題となるのが 1.なぜループが切れないのか? と 2.なぜ、反復時間カウンターの結果そのものが表示されないのでしょうか? デバッグが過去のデータで行われたからでしょうか? Vladimir Karputov 2020.08.15 16:46 #12413 Sayberix:10回の繰り返しではulongで 十分だったのではないでしょうか。そこで問題となるのが1.なぜループが切れないのか? と2.なぜ、反復時間カウンターの結果そのものが表示されないのでしょうか?過去データでのデバッグが原因か? あなたは、グローバルなプログラムレベルで宣言された変数を持っています - あなたは常にそれを増加している。 Sayberix 2020.08.15 16:49 #12414 ああ、なるほど...。イテレーションにかかる時間は1ミリ秒以下...。 Sayberix 2020.08.15 16:54 #12415 Vladimir Karputov:あなたは、グローバルなプログラムレベルで宣言された変数を持っています - あなたは常にそれを増加している。 グローバル変数が どう関係するのか、まだ理解できていません。プログラム自体は、「for(int i=1; i<=10; i++)」というループに限定されていますね? それとも何か理解できないことがあるのか、説明をお願いします。 Vladimir Karputov 2020.08.15 17:02 #12416 Sayberix:グローバル変数 がどう関係するのか、まだ理解できていません。プログラム自体は、「for(int i=1; i<=10; i++)」というループに限定されていますね?それとも何か理解できないことがあるのか、説明をお願いします。 変数の削除 ulong count, raschet = 1; グローバルスコープから外れる。 各ティックで、変数raschetを繰り返しインクリメントします。そして、次のティックでは、それを数回インクリメントし続けるのです。数ティックでラシェット 変数が圏外に なる。結局、変数の値をプリントアウトするのですが、なぜかプリントアウトを見ません。 Sayberix 2020.08.15 17:15 #12417 Vladimir Karputov:変数を削除する をグローバルスコープから削除します。各ティックで、raschet変数を繰り返しインクリメントします。そして、次のティックでは、繰り返しインクリメントし続けるのです。数ティックでラシェット 変数が圏外に なる。最後に変数の値をプリントアウトするのですが、なぜかプリントアウトを見ません。 ありがとう、わかったよ。ただ、returnはプログラムを全く停止させないのに対して、現在のtickでの実行を中断させるだけだと思って混乱してしまいました。return;」の代わりに「ExpertRemove();」と入れました。 Sayberix 2020.08.15 21:44 #12418 このコードで教えてください。 //+------------------------------------------------------------------+ //| env.mq5 | //| Copyright 2020, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2020, MetaQuotes Software Corp." #property indicator_buffers 2 int envHandle; double upperEnv[], lowerEnv[]; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int OnInit() { envHandle = iCustom(_Symbol,_Period,"Examples\\Envelopes",3,0,MODE_LWMA,PRICE_OPEN,0.03); if(envHandle<0) { Alert("Ошибка при создании индикаторов - номер ошибки: ",GetLastError(),"!!"); return(INIT_FAILED); } SetIndexBuffer(0,upperEnv,INDICATOR_DATA); SetIndexBuffer(1,lowerEnv,INDICATOR_DATA); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Deinitialization function of the expert | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { IndicatorRelease(envHandle); } //+------------------------------------------------------------------+ //| "Tick" event handler function | //+------------------------------------------------------------------+ void OnTick() { ArraySetAsSeries(upperEnv, true); ArraySetAsSeries(lowerEnv, true); if((CopyBuffer(envHandle,0,0,3,upperEnv)<0) || CopyBuffer(envHandle,1,0,3,lowerEnv)<0) Alert("Ошибка копирования буферов индикатора Envelopes - номер ошибки:",GetLastError(),"!!"); double upEnv = upperEnv[0]; double lowEnv = lowerEnv[0]; } //+------------------------------------------------------------------+ 常に更新されるEnvelope 行の価格値を変数upEnvとlowEnvで取得するにはどうしたらよいですか?インジケータは描画されますが、変数のインジケータ値は2回更新されて終わりです。 Vladimir Karputov 2020.08.16 05:17 #12419 Sayberix:このコードで教えてください。常に更新されるEnvelope行の価格値を変数upEnvとlowEnvで取得するにはどうしたらよいですか?インジケータは描画されますが、変数のインジケータ値は2回更新されて終わりです。 まず、Expert Advisorを書く のか、それともIndicatorを書くのか、決めてください。(あなたは今、コードが混在しています - インジケータとExpert Advisorが混在しています) - すなわち、コードは動作しません。 ヒント:MQL Wizardを使用してテンプレートを作成します。 Sayberix 2020.08.16 06:33 #12420 Vladimir Karputov:まず、EAを書く のか、インジケータを書くのか、どちらかを決めてください。(今、あなたのコードは混乱しています。インジケータとExpert Advisorの両方が混在しています。) - つまり、コードは実行不可能です。ヒント:MQL Wizardを使用してテンプレートを作成します。 すでに試しました。しかし、Wizardでクラスを生成します。せめて、少しは理解できるコードにしたい--。EAでインジケータの値を取得するために、どのようにコードを修正すればよいかアドバイスをお願いします。 1...123512361237123812391240124112421243124412451246124712481249...1503 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
読んでいます。ただ、まだそこに到達していないだけだと思います。28MBのpdfリファレンスを読みこなすのは容易ではないと思います。別の言い方をすれば、敬虔な信者であっても、すべての教区民が聖書を全部知っているわけではない、ということです。
もう一つ質問があるのですが、アドバイスお願いします-難しくなければ。
ストラテジービジュアライザーでコードを実行するとき。
1. プログラムが無限ループに入る。
2.実行結果が異なる。
ブレークポイントなし
Printにブレークポイントを設定した場合。
すべてヒストリカルデータのデバッグで行っています。
常に変数を増やしているのですね。変数の大きさが限界を超えるのは、いつ頃だと思いますか?
常に変数のサイズを大きくしているのですね。変数の大きさが限界を超えるのは、いつ頃だと思いますか?
ulongの 10回の繰り返しで十分だったのではないでしょうか。そこで問題となるのが
1.なぜループが切れないのか? と
2.なぜ、反復時間カウンターの結果そのものが表示されないのでしょうか?
デバッグが過去のデータで行われたからでしょうか?
10回の繰り返しではulongで 十分だったのではないでしょうか。そこで問題となるのが
1.なぜループが切れないのか? と
2.なぜ、反復時間カウンターの結果そのものが表示されないのでしょうか?
過去データでのデバッグが原因か?
あなたは、グローバルなプログラムレベルで宣言された変数を持っています - あなたは常にそれを増加している。
あなたは、グローバルなプログラムレベルで宣言された変数を持っています - あなたは常にそれを増加している。
グローバル変数が どう関係するのか、まだ理解できていません。プログラム自体は、「for(int i=1; i<=10; i++)」というループに限定されていますね?
それとも何か理解できないことがあるのか、説明をお願いします。
グローバル変数 がどう関係するのか、まだ理解できていません。プログラム自体は、「for(int i=1; i<=10; i++)」というループに限定されていますね?
それとも何か理解できないことがあるのか、説明をお願いします。
変数の削除
グローバルスコープから外れる。
各ティックで、変数raschetを繰り返しインクリメントします。そして、次のティックでは、それを数回インクリメントし続けるのです。数ティックでラシェット 変数が圏外に なる。結局、変数の値をプリントアウトするのですが、なぜかプリントアウトを見ません。
変数を削除する
をグローバルスコープから削除します。
各ティックで、raschet変数を繰り返しインクリメントします。そして、次のティックでは、繰り返しインクリメントし続けるのです。数ティックでラシェット 変数が圏外に なる。最後に変数の値をプリントアウトするのですが、なぜかプリントアウトを見ません。
ありがとう、わかったよ。ただ、returnはプログラムを全く停止させないのに対して、現在のtickでの実行を中断させるだけだと思って混乱してしまいました。return;」の代わりに「ExpertRemove();」と入れました。
このコードで教えてください。
常に更新されるEnvelope 行の価格値を変数upEnvとlowEnvで取得するにはどうしたらよいですか?インジケータは描画されますが、変数のインジケータ値は2回更新されて終わりです。
このコードで教えてください。
常に更新されるEnvelope行の価格値を変数upEnvとlowEnvで取得するにはどうしたらよいですか?インジケータは描画されますが、変数のインジケータ値は2回更新されて終わりです。
まず、Expert Advisorを書く のか、それともIndicatorを書くのか、決めてください。(あなたは今、コードが混在しています - インジケータとExpert Advisorが混在しています) - すなわち、コードは動作しません。
ヒント:MQL Wizardを使用してテンプレートを作成します。
まず、EAを書く のか、インジケータを書くのか、どちらかを決めてください。(今、あなたのコードは混乱しています。インジケータとExpert Advisorの両方が混在しています。) - つまり、コードは実行不可能です。
ヒント:MQL Wizardを使用してテンプレートを作成します。
すでに試しました。しかし、Wizardでクラスを生成します。せめて、少しは理解できるコードにしたい--。EAでインジケータの値を取得するために、どのようにコードを修正すればよいかアドバイスをお願いします。