エラー、バグ、質問 - ページ 1682

 
fxsaber:
相手の書いたものを全く聞く気がないような文句を強要していますね。
私の仕事は、OnCalculate()の呼び出し 回数に厳密なルールがないことをお知らせすることです。この関数は基本的に、履歴のページング、履歴の変更(新しいティックの到着)、取引環境の準備などのイベントに対する反応を反映するものだからです。
 
Sergei Vladimirov:
Func()のボディを見て、終了する前に何を返すかを確認します。特殊なケースを想定しての話です。値が括弧の中で直接計算されるのであれば、もちろん、方法はありません。
それじゃ、2つ目のF5を使う意味がないじゃないか!
 
fxsaber:
ありがとうございます。インジケータが最初にOnCalculateを2回呼び出す理由がわかりません。この回答がどのようなイベントなのか調べたい。デバッギングで見えるイベントは残念ながらありません。

この件に関するサービスデスクからの回答

具体的には、チェックサムに依存します。

履歴は入れ替わっていないかもしれないが(新しいデータを追加せずに既存の履歴を修正することも十分あり得る)、チェックサムは大きく変化している

 
Karputov Vladimir:
私の仕事は、OnCalculate()の呼び出し 回数に厳密なルールがないことをお知らせすることです。この関数は、基本的にイベントに対する反応を反映するからです:履歴のページング、履歴の変更(新しいティックの到着)または取引環境の準備のいずれか。

自分の好きな課題を自由に設定することができます。でも、少なくとも私には、私が質問していないことに答えるのはやめてください。

OnCalculateの文書化されていない機能でも使い方を知っている。全く違う分野のことを聞かれて「ぬるい」なんて言わないでくださいよ。

 
Alexey Kozitsyn:

この件に関するサービスデスクからの回答

いや、全然そんなことないんですけどね。前ページの冒頭の会話を読んでみてください。
 
Alexey Kozitsyn:

この件に関するサービスデスクからの回答

ありがとうございます。しかし、ここでも性急な対応がありました。例を ご覧ください。
 

8月18日のビルド1010

履歴の読み込みに関する 問題

2016.09.13 09:51:02.539 Windows 7 Ultimate(x64ベースPC)、IE 11.00、8 x Intel Core i7-6700 @ 3.40GHz、 RAM: 18768 / 32684 Mb、 HDD: 35417 / 1498122 Mb、 GMT+02:00。


という問題があります。

はDRWEBです。

アンチウィルスを有効にすると履歴がダウンロードできない。アンチウィルスはブロックされたポートについて教えてくれない。

ターミナルが許可されたプログラムになっているが、アンチウイルスが有効な場合、履歴がダウンロードされない。

ログには何も記録されていません。履歴のダウンロードスライダーが停止し、STOPボタンを押した後、次のように記録されます。

2016.09.13 10:04:52.424 HistoryCenter: error reading data

2016.09.13 10:03:04.944 HistoryCenter: GBPUSD_2004_07 loaded (115 kb)

2016.09.13 10:03:04.621 HistoryCenter: GBPUSD_2004_06 loaded (118 kb)

アンチウィルスを無効にしたところ、ダウンロードが始まり、数年分をダウンロードした後、再び停止してそれ以上進まなくなりました。

履歴のダウンロードを何度か再開し、10~15回ほど試したら、すべての履歴がダウンロードされました。

 
fxsaber:
ありがとうございます。でも、ここでも答えを急ぎましたね。例を ご覧ください。

デバッガーのことだと理解しています。私の質問はこんな感じでした。

問題の説明

インジケーターを書いているところです。MT4です。最初のtickで0でなくなるはずのprev_calculatedが0にリセットされる(私には理解できない方法で)。すなわち、ダブル。

その結果はログに残っています。

2016.03.15 13:54:36.545 test_indicator_15032016 EURUSD,M1: initialized
2016.03.15 13:54:36.545 test_indicator_15032016 EURUSD,M1: OnCalculate: prev_calculated = 0, rates_total = 5000
2016.03.15 13:54:36.757 test_indicator_15032016 EURUSD,M1: OnCalculate: prev_calculated = 0, rates_total = 5008

今まで気づかなかったのですが、これはバグなのでしょうか、それともそうなっているのでしょうか?

履歴が汲み上げられた(rates_totalが増加した)と仮定してみます。それでも似たようなことはできる。

2016.03.15 13:55:40.661 test_indicator_15032016 EURUSD,M15: OnCalculate: prev_calculated = 0, rates_total = 5000
2016.03.15 13:55:40.569 test_indicator_15032016 EURUSD,M15: OnCalculate: prev_calculated = 0, rates_total = 5000 

2016.03.15 13:55:40.569 test_indicator_15032016 EURUSD,M15:初期化されました

今回は、下塗りをしていました。

 
Alexey Kozitsyn:

デバッガーのことだと理解しています。私の質問はこんな感じでした。

今回は、下塗りをしているところです。

あなたのケースは、私が質問したこととは関係ありません。快く引き受けていただき、ありがとうございました。
 
fxsaber:
あなたのケースは、私が質問したこととは何の関係もありません。手伝いたいと言ってくれてありがとう。
どういたしまして、私の回答は、デバッガーのバグについてではなく、なぜOnCalculate() が最初に2回(3回)呼ば れるのかについてでした。