どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 600 1...593594595596597598599600601602603604605606607...1178 新しいコメント Denis Lysenko 2014.05.13 09:26 #5991 ごあいさつ:) このインジケータとほぼ同じコードを書いています。 bool busy=false; int start() { int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); limit=Bars-counted_bars+1; limit=MathMin(bBars-1, limit); if(IndicatorCounted()>0) limit=1; FileWrite(han, TimeToStr(TimeCurrent(), TIME_MINUTES|TIME_SECONDS), Bars, IndicatorCounted()); FileFlush(han); //if(busy=false) return(0); for (i=0; i<limit; i++) { busy=true; FileWrite(han, TimeToStr(TimeCurrent(), TIME_MINUTES|TIME_SECONDS), DoubleToStr(i, 0), DoubleToStr(IndicatorCounted(), 0)); FileFlush(han); Здесь идут сложные вычисления которые занимают минуты 3 } busy=false; } M1チャートで落とす。インジケーターは端末と一緒にぶら下がり、計算を行うとされています。 15分後に強制終了し、そのログを開く。 それは、インジケータが初めて計算するまでは、新しく到着したティックに反応しない(論理的である)ことが判明しました。しかし、評価中にターミナルにIndicatorConted()には既に0以外の値が割り当てられて いなければならないことを伝え忘れています。 つまり、評価のために注文された受信ティックはIndicatorCounted()の現在の値を覚えていることが判明したのでしょうか。 busy変数(コメントアウトされた文字列 - 同じ結果)で制御しようとしました。 私もこの方法でやってみました。 int start() { FileWrite(han, TimeToStr(TimeCurrent(), TIME_MINUTES|TIME_SECONDS), Bars, IndicatorCounted()); FileFlush(han); return(0); . . . } 当然ながら、今回はすべて正常に動作した。 ここに何があるのか?システムがIndicatorCounted()に新しい値を書き込む時間がないのでは?つまり、sleep()のようなことをする必要があるのでしょうか?インジケータでは不可能なのは知っています) それとも、新しいティックが来たときに、古いティックの計算が終わっていないため、IndicatorCounte()がまだ0に等しいことを記憶して、その時間が来たら古い値IndicatourCounted()=0から計算するのでしょうか? どうすればいいのか?) Alexey Viktorov 2014.05.13 09:40 #5992 Expert: ごあいさつ:) インジケータとほぼ同じコード です。 全部書いてあるんですよ。このコードについて、この対応について...。を書けば いいのか? Artyom Trishkin 2014.05.13 09:43 #5993 peace1984: これは私の最初の経験です。あまり厳しく判断しないでください:) 正直なところ、テスターは変数の過去の値、つまり前回のテストの値を記憶しているように思えます。どうやって......わからない、デバッグにあまり時間がとれないんだ。端末のバグかもしれませんね。コードにコメントを入れて、値をログに 出力しているだけです。そこで、新しいテストを実行するたびに、前のテストの値がsys変数に格納されることがわかりました。なんということでしょう。もしかしたら、誰かが見てくれるかもしれない、私の目が濡れているのかもしれない...。 ファイル: 11_1.mq4 8 kb Denis Lysenko 2014.05.13 09:50 #5994 AlexeyVik: これがすべてを物語っている。このコードは、おおよそこのような答えになります。を書くか? 要は、それ以外のコードは関係ないのです。この作品には、エラーの本質が描かれています。一般的に、私は大きな投稿で人々を怖がらせることを恐れていました。だから、膨らませたんです。 簡単に説明すると、あるインディケータが 長時間(1分以上)計算された場合、IndicatorCounted()は常に0を返す、という定式化です。 Alexey Viktorov 2014.05.13 09:55 #5995 artmedia70: 正直なところ、テスターは変数の過去の値、つまり前回のテストの値を記憶しているように思えます。どうやって......わからない、報告する時間があまりないんだ。端末のバグかもしれません。コードにコメントを入れて、値をログに出力しているだけです。そこで、新しいテストを実行するたびに、前のテストの値がsys変数に格納されることがわかりました。なんということでしょう。もしかしたら、誰かが見てくれるかもしれない、私の目が濡れているのかもしれない...。 というセリフを忘れているだけです。 int sys=(Sys<0)?0:Sys; インジケーターのプロパティが呼び出された場合、そのプロパティは実行されません。 しっかり調べたわけではないのですが、もしかしたらこれで期待通りの結果が得られるかも? extern int Sys=0; int sys; // изменено double opb; double ops; double cb; double cs; double lot; double next_order; int i=0; int x; double max; double min; int ticket; int tip; int count; bool res; double bal; double sl; datetime d; double N; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { sys=(Sys<0)?0:Sys; // добавлено bal=AccountBalance(); return(0); } Artyom Trishkin 2014.05.13 09:57 #5996 AlexeyVik: を忘れているだけで、文字列は インジケーターのプロパティが呼び出された場合、そのプロパティは実行されません。 しっかり調べたわけではないのですが、もしかしたらこれで期待通りの結果が得られるかも? 一般にアドバイザーと呼ばれる。しかし、HZ、実験している暇はない。私はすべてのEAを書いたとおりに動作させています。テスターでこのクソをトレースすることになる。時間に余裕があるとき。 Alexey Viktorov 2014.05.13 10:12 #5997 Expert: 要は、それ以外のコードは関係ないのです。この作品には、エラーの本質が描かれています。一般的に、私は大きな投稿で人々を怖がらせることを恐れていました。だから、膨らませたんです。 簡単に説明すると、あるインディケータが長時間(1分以上)計算された場合、IndicatorCounted()は常に0を返す、という定式化です。 そういう問題じゃないんです。誰もあなたの完全な秘密のコードを必要としません。その勘違いで完全なテスト品を書けばいいんだよ。そして、このように。 bool busy=false; int start() { int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); limit=Bars-counted_bars+1; limit=MathMin(bBars-1, limit); if(IndicatorCounted()>0) limit=1; FileWrite(han, TimeToStr(TimeCurrent(), TIME_MINUTES|TIME_SECONDS), Bars, IndicatorCounted()); FileFlush(han); //if(busy=false) return(0); for (i=0; i<limit; i++) { busy=true; FileWrite(han, TimeToStr(TimeCurrent(), TIME_MINUTES|TIME_SECONDS), DoubleToStr(i, 0), DoubleToStr(IndicatorCounted(), 0)); FileFlush(han); Здесь идут сложные вычисления которые занимают минуты 3 } busy=false; } ハイライトされた行を消去したのはいつですか?テレパスは役に立たないし、ただの人間はなおさらだ...。 それから、この部分です。 int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); limit=Bars-counted_bars+1; limit=MathMin(bBars-1, limit); if(IndicatorCounted()>0) limit=1; どこのプログラマーが作ったのかわからないが、何か書き方が不十分だ......。あなたのせいではありません。あなたは、他の多くの人と同じように、ただコードを取って、それを修正しようとしただけです...。 counted_bars変数が、最後のインジケータ呼び出し(1行目)から変化せずに残っているバーの数に等しい場合、次のようになります。 if(counted_bars < 0)でチェックされるのに、どうして0より小さくなるのか、私には理解できません...。 残りもナンセンスですが、分析するのが億劫で...。 peace1984 2014.05.13 10:12 #5998 AlexeyVik: を忘れているだけで、文字列は インジケーターのプロパティが呼び出された場合、そのプロパティは実行されません。 しっかり調べたわけではないのですが、もしかしたらこれで期待通りの結果が得られるかも? 試してみたけど、うまくいかない...。 Alexey Viktorov 2014.05.13 10:18 #5999 artmedia70: 一般にアドバイザーと呼ばれる。しかし、HZ、実験している暇はない。私はすべてのEAを書いたとおりに動作させています。テスターでこのクソをトレースすることになる。時間に余裕があるとき。 そうですね、もちろんExpert Advisorですね。では、なぜEAをベースメント指標としてチャートに配置したのか、別の疑問が生じます。しかし、インジケータもEAも再起動しても、グローバルレベルの変数は再初期化されず、int sys=(Sys<0)?0:Sys; という行が実行されないのは変わりません。 Alexey Viktorov 2014.05.13 10:24 #6000 peace1984: 試してみたけど、うまくいかない...。 それは、私が試した方法とはちょっと違うかもしれませんね。 EAで再コンパイルして実行しただけです。コメント中のSysパラメータを変更すると、この値が変化します。 1...593594595596597598599600601602603604605606607...1178 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ごあいさつ:)
このインジケータとほぼ同じコードを書いています。
M1チャートで落とす。インジケーターは端末と一緒にぶら下がり、計算を行うとされています。
15分後に強制終了し、そのログを開く。
それは、インジケータが初めて計算するまでは、新しく到着したティックに反応しない(論理的である)ことが判明しました。しかし、評価中にターミナルにIndicatorConted()には既に0以外の値が割り当てられて いなければならないことを伝え忘れています。
つまり、評価のために注文された受信ティックはIndicatorCounted()の現在の値を覚えていることが判明したのでしょうか。
busy変数(コメントアウトされた文字列 - 同じ結果)で制御しようとしました。
私もこの方法でやってみました。
当然ながら、今回はすべて正常に動作した。

ここに何があるのか?システムがIndicatorCounted()に新しい値を書き込む時間がないのでは?つまり、sleep()のようなことをする必要があるのでしょうか?インジケータでは不可能なのは知っています)
それとも、新しいティックが来たときに、古いティックの計算が終わっていないため、IndicatorCounte()がまだ0に等しいことを記憶して、その時間が来たら古い値IndicatourCounted()=0から計算するのでしょうか?
どうすればいいのか?)
ごあいさつ:)
インジケータとほぼ同じコード です。
これは私の最初の経験です。あまり厳しく判断しないでください:)
これがすべてを物語っている。このコードは、おおよそこのような答えになります。を書くか?
要は、それ以外のコードは関係ないのです。この作品には、エラーの本質が描かれています。一般的に、私は大きな投稿で人々を怖がらせることを恐れていました。だから、膨らませたんです。
簡単に説明すると、あるインディケータが 長時間(1分以上)計算された場合、IndicatorCounted()は常に0を返す、という定式化です。
正直なところ、テスターは変数の過去の値、つまり前回のテストの値を記憶しているように思えます。どうやって......わからない、報告する時間があまりないんだ。端末のバグかもしれません。コードにコメントを入れて、値をログに出力しているだけです。そこで、新しいテストを実行するたびに、前のテストの値がsys変数に格納されることがわかりました。なんということでしょう。もしかしたら、誰かが見てくれるかもしれない、私の目が濡れているのかもしれない...。
というセリフを忘れているだけです。
インジケーターのプロパティが呼び出された場合、そのプロパティは実行されません。
しっかり調べたわけではないのですが、もしかしたらこれで期待通りの結果が得られるかも?
を忘れているだけで、文字列は
インジケーターのプロパティが呼び出された場合、そのプロパティは実行されません。
しっかり調べたわけではないのですが、もしかしたらこれで期待通りの結果が得られるかも?
要は、それ以外のコードは関係ないのです。この作品には、エラーの本質が描かれています。一般的に、私は大きな投稿で人々を怖がらせることを恐れていました。だから、膨らませたんです。
簡単に説明すると、あるインディケータが長時間(1分以上)計算された場合、IndicatorCounted()は常に0を返す、という定式化です。
そういう問題じゃないんです。誰もあなたの完全な秘密のコードを必要としません。その勘違いで完全なテスト品を書けばいいんだよ。そして、このように。
ハイライトされた行を消去したのはいつですか?テレパスは役に立たないし、ただの人間はなおさらだ...。
それから、この部分です。
どこのプログラマーが作ったのかわからないが、何か書き方が不十分だ......。あなたのせいではありません。あなたは、他の多くの人と同じように、ただコードを取って、それを修正しようとしただけです...。
counted_bars変数が、最後のインジケータ呼び出し(1行目)から変化せずに残っているバーの数に等しい場合、次のようになります。
if(counted_bars < 0)でチェックされるのに、どうして0より小さくなるのか、私には理解できません...。
残りもナンセンスですが、分析するのが億劫で...。
を忘れているだけで、文字列は
インジケーターのプロパティが呼び出された場合、そのプロパティは実行されません。
しっかり調べたわけではないのですが、もしかしたらこれで期待通りの結果が得られるかも?
試してみたけど、うまくいかない...。
一般にアドバイザーと呼ばれる。しかし、HZ、実験している暇はない。私はすべてのEAを書いたとおりに動作させています。テスターでこのクソをトレースすることになる。時間に余裕があるとき。
試してみたけど、うまくいかない...。
EAで再コンパイルして実行しただけです。コメント中のSysパラメータを変更すると、この値が変化します。