質問編集履歴
2
誤字修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -27,7 +27,7 @@
|
|
27
27
|
int a4 = ArrayBsearch(a, High[4], WHOLE_ARRAY, 0, MODE_ASCEND);
|
28
28
|
int a5 = ArrayBsearch(a, High[5], WHOLE_ARRAY, 0, MODE_ASCEND);
|
29
29
|
|
30
|
-
Print(a0,a1,a2,a3,a4,a5); //本来、012345となるはずが、00005と、最後の値しか検索できていない
|
30
|
+
Print(a0,a1,a2,a3,a4,a5); //本来、012345となるはずが、00005と、最初と最後の値しか検索できていない
|
31
31
|
|
32
32
|
//以下は全く同じ処理をHigh[]を使わずに実数で処理した場合。これは想定どおりに動きます。
|
33
33
|
|
1
コードのミスを修正して、もう少しわかりやすく編集しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -8,42 +8,50 @@
|
|
8
8
|
|
9
9
|
### 該当のソースコード
|
10
10
|
|
11
|
+
```MQL4
|
11
12
|
int OnInit()
|
12
13
|
{
|
13
14
|
|
14
|
-
//うまくいかないパターン
|
15
|
-
double a[
|
15
|
+
double a[6];
|
16
|
-
a[0] = High[
|
16
|
+
a[0] = High[0];
|
17
|
-
a[1] = High[
|
17
|
+
a[1] = High[1];
|
18
|
-
a[2] = High[
|
18
|
+
a[2] = High[2];
|
19
|
+
a[3] = High[3];
|
19
|
-
a[
|
20
|
+
a[4] = High[4];
|
21
|
+
a[5] = High[5];
|
20
22
|
|
23
|
+
int a0 = ArrayBsearch(a, High[0], WHOLE_ARRAY, 0, MODE_ASCEND);
|
21
|
-
int
|
24
|
+
int a1 = ArrayBsearch(a, High[1], WHOLE_ARRAY, 0, MODE_ASCEND);
|
22
|
-
int
|
25
|
+
int a2 = ArrayBsearch(a, High[2], WHOLE_ARRAY, 0, MODE_ASCEND);
|
23
|
-
int
|
26
|
+
int a3 = ArrayBsearch(a, High[3], WHOLE_ARRAY, 0, MODE_ASCEND);
|
24
|
-
int
|
27
|
+
int a4 = ArrayBsearch(a, High[4], WHOLE_ARRAY, 0, MODE_ASCEND);
|
28
|
+
int a5 = ArrayBsearch(a, High[5], WHOLE_ARRAY, 0, MODE_ASCEND);
|
25
29
|
|
26
|
-
Print(
|
30
|
+
Print(a0,a1,a2,a3,a4,a5); //本来、012345となるはずが、00005と、最後の値しか検索できていない
|
27
31
|
|
28
|
-
//うまくいくパターン
|
29
|
-
//全く同じ処理をHigh[]を使わずに実数で処理した場合。これは想定どおりに動きます。
|
32
|
+
//以下は全く同じ処理をHigh[]を使わずに実数で処理した場合。これは想定どおりに動きます。
|
30
33
|
|
31
|
-
double c[
|
34
|
+
double c[6];
|
32
|
-
c[0] = 106.
|
35
|
+
c[0] = 106.890;
|
33
|
-
c[1] = 106.
|
36
|
+
c[1] = 106.891;
|
34
|
-
c[2] = 106.
|
37
|
+
c[2] = 106.892;
|
35
|
-
c[3] = 106.
|
38
|
+
c[3] = 106.893;
|
39
|
+
c[4] = 106.894;
|
40
|
+
c[5] = 106.895;
|
36
41
|
|
42
|
+
int c0 = ArrayBsearch(c, 106.890, WHOLE_ARRAY, 0, MODE_ASCEND);
|
37
|
-
int
|
43
|
+
int c1 = ArrayBsearch(c, 106.891, WHOLE_ARRAY, 0, MODE_ASCEND);
|
38
|
-
int
|
44
|
+
int c2 = ArrayBsearch(c, 106.892, WHOLE_ARRAY, 0, MODE_ASCEND);
|
39
|
-
int
|
45
|
+
int c3 = ArrayBsearch(c, 106.893, WHOLE_ARRAY, 0, MODE_ASCEND);
|
40
|
-
int
|
46
|
+
int c4 = ArrayBsearch(c, 106.894, WHOLE_ARRAY, 0, MODE_ASCEND);
|
47
|
+
int c5 = ArrayBsearch(c, 106.895, WHOLE_ARRAY, 0, MODE_ASCEND);
|
41
48
|
|
42
|
-
Print(
|
49
|
+
Print(c0,c1, c2,c3,c4,c5); //こちらは想定通り、012345と表示される
|
43
50
|
|
44
51
|
return(INIT_SUCCEEDED);
|
45
52
|
}
|
53
|
+
|
46
|
-
|
54
|
+
```
|
47
55
|
### 試したこと
|
48
56
|
|
49
57
|
NormalizeDoubleで、小数点以下をあわせてもうまくいきませんでした。
|