ストラテジーテスターのOnTimer()関数は、1秒ごとに要求されると実行速度がかなり遅くなります。 void OnInit() { EventKillTimer(); EventSetTimer(1); } void OnTimer() { } Expert Advisor, with two external indicators and running through all ticks, is running 2012.04.11 14:32:07 Core 1 EURUSD,H1: 8083516 ticks (4557 bars) generated within 70418 ms (total bars in history 6270, total time 70528 ms) OnTimer() がコメントされると、実行が大幅に加速されます2012.04.11 14:36:22 Core 1 EURUSD,H1: 8083516 ticks (4557 bars) generated within 22730 ms (total bars in history 6270, total time 22870 ms) この遅延はテスターによるものか、それとも何とかスピードアップできないか?
ストラテジーテスターのOnTimer()関数は、1秒ごとに要求されると実行速度がかなり遅くなります。 void OnInit() { EventKillTimer(); EventSetTimer(1); } void OnTimer() { } Expert Advisor, with two external indicators and running through all ticks, is running 2012.04.11 14:32:07 Core 1 EURUSD,H1: 8083516 ticks (4557 bars) generated within 70418 ms (total bars in history 6270, total time 70528 ms) OnTimer() がコメントされると、実行が大幅に加速されます2012.04.11 14:36:22 Core 1 EURUSD,H1: 8083516 ticks (4557 bars) generated within 22730 ms (total bars in history 6270, total time 22870 ms) この遅延はテスターによるものか、それとも何とかスピードアップできないか?
クラスについては、前方宣言を 参照してください。
ストラテジーテスターのOnTimer()関数は、1秒ごとに要求されると実行速度がかなり遅くなります。 void OnInit() { EventKillTimer(); EventSetTimer(1); } void OnTimer() { } Expert Advisor, with two external indicators and running through all ticks, is running 2012.04.11 14:32:07 Core 1 EURUSD,H1: 8083516 ticks (4557 bars) generated within 70418 ms (total bars in history 6270, total time 70528 ms) OnTimer() がコメントされると、実行が大幅に加速されます2012.04.11 14:36:22 Core 1 EURUSD,H1: 8083516 ticks (4557 bars) generated within 22730 ms (total bars in history 6270, total time 22870 ms) この遅延はテスターによるものか、それとも何とかスピードアップできないか?
P.S. メッセージのプレビューが実装されていれば(
ストラテジーテスターのOnTimer()関数は、1秒ごとに要求されると実行速度がかなり遅くなります。 void OnInit() { EventKillTimer(); EventSetTimer(1); } void OnTimer() { } Expert Advisor, with two external indicators and running through all ticks, is running 2012.04.11 14:32:07 Core 1 EURUSD,H1: 8083516 ticks (4557 bars) generated within 70418 ms (total bars in history 6270, total time 70528 ms) OnTimer() がコメントされると、実行が大幅に加速されます2012.04.11 14:36:22 Core 1 EURUSD,H1: 8083516 ticks (4557 bars) generated within 22730 ms (total bars in history 6270, total time 22870 ms) この遅延はテスターによるものか、それとも何とかスピードアップできないか?
P.S. メッセージのプレビューが実装されていれば(
テスターのこの項目は何を意味しているのでしょうか?
笑えない。
mql5の一般的なケースでの リンクは関数から返されないのは理解できるのですが(ところで、なぜそうしないのでしょうか)、そうすると、l値インデクサを可能にするための工夫が必要です。 例えば、左利き用インデクサの一般ルールに構文上の例外を設けるとかです。あるいは何らかのキーワード。
跛行が明らかにmql5...を素敵に見せていない。
リンプは明らかにmql5を...見栄え良くしていない
この跛行は、明らかにmql5...をよく見せていない。
そのためには、本格的なリンクを構築する必要があります :)
ZS: 漏れてるんですよ :)
バグ?
以下のコードは、コンパイラで一種の永久ループを生成しています。キャンセルをクリックする
がすぐに動作するわけではありませんが、動作するとエディタの制御を取り戻します。
キャンセルボタン自体は消えませんが、アクセスもできなくなります。
コンパイルボタンが永久に失われた(元に戻すにはエディタをリロードする必要がある)
笑えない。
mql5関数の一般的なケースでの リンクが返らないのは理解したいのですが(ところで、なぜできないのでしょうか?)、代わりにl値インデクサを可能にするために何かすべきです。例えば、左利きインデクサのための一般的なルールの構文例外を作るなどです。あるいは何らかのキーワード。
ラメが明らかにmql5...をいい感じにしてない。
特に、その値を変更する可能性のある、ベースクラス以外の内部要素を外部に "渡す" ことは安全ではありません。
さらに、オブジェクト指向プログラミングの「精神」に反する。オブジェクトのデータを扱う作業はすべて、そのオブジェクトの内部で、そのオブジェクト自身のメソッドによって実行されるべきである。
データ属性にSetterを使うだけではどうでしょうか?
コードの可読性では勝っているだろう。結局、このl値インデクサーの「単純さ」は、このコードがどのように動作するのか、誰も理解できなくなるのです...。
Setterを書く時間よりも、エラーを探す時間の方が長くなってしまいます。
以下はその一例です。
while ((double)date[++i -1] < 10) のようなコードを、もっと長くても消化しやすいものに置き換えられるなら、そのようにした方が良いのですが...。
構造体テスト
{
double data[];
int sizeです。
void Init(int Size) {size=Size; ArrayResize(data,fmin(size,Max));}; ArrayResize(data,fmin(size,Max));}.
void setDataElement (int index, double value)
{
data[index] = value;
}
プライベート
static int Max;
};
//+------------------------------------------------------------------+
int Test::Max=1024;
//+------------------------------------------------------------------+
//| スクリプトプログラム起動機能
//+------------------------------------------------------------------+
void OnStart()
{
テストT。
t.Init(16);
for(int i=0;i<t.size;i++)
{
//t[i]=i*i; // ERROR :'=' - l-value required
t.setDataElement(i, i*i);
}
}