記事"Expert Advisor動作中のバランス曲線勾配調整"についてのディスカッション - ページ 5

 
solandr:

これらの変更がEAにどれほどの影響を与えるか見てみよう。

今のところ、根本的には何も変わっていない。全ペアで同時実行した結果にも同じ不一致がある。調査を続ける。
 
solandr:
今のところ、根本的には何も変わっていない。すべてのペアで同時に実行しても、結果は同じように食い違う。さらに掘り下げてみる。
つまり、以下のことが判明した。どのテストモードでも、すべてのペアでも、1つのペアだけをテストした場合でも、ディールのリストは絶対に一致する。バランスコントロールを切り替えた瞬間だけが一致しない?
 
Dima_S:
つまり、どのテストモードでも、すべてのペアでも、1つのペアだけをテストする場合でも、ディールのリストはまったく同じであることがわかった。バランスコントロールが切り替わる瞬間だけが一致しない?

そうです。

これは今日すでに見つけたことだ。

私はインクルードニクに入り、興味深い場所にプリントを貼り始めた。 そしてこれが、複数のペアを走らせたときにわかったことだ。通常、データは多かれ少なかれ適切なのだが、時々、アレイからの個々のデータが空に飛んでしまうのだ。これはどこから起こるのだろうか?以下は、トランザクションのパラメーターを15に等しくした作業のバリエーションである:

2012.08.08 15:03:00 this.group_result_array[0]=3.105036941761521e+231
ER 0 Core 1 12:09:30 2012.08.08 15:03:00 this.group_result_array[1]=497.999999999
JG 0 Core 1 12:09:30 2012.08.08.08 15:03:00 this.group_result_array[2]=-1447.0
ON 0 Core 1 12:09:30 2012.08.08 15:03:00 this.group_result_array[3]=-75.0
ND 0 Core 1 12:09:30 2012.08.08.08 15:03:00 this.group_result_array[4]=-1173.0
DH 0 Core 1 12:09:30 2012.08.08 15:03:00 this.group_result_array[5]=4697.0
GS 0 Core 1 12:09:30 2012.08.08.08 15:03:00 this.group_result_array[6]=-56.9999999999
DD 0 Core 1 12:09:30 2012.08.08 15:03:00 this.group_result_array[7]=187.0
JH 0 Core 1 12:09:30 2012.08.08 15:03:00 this.group_result_array[8]=-914.0
HQ 0 Core 1 12:09:30 2012.08.08 15:03:00 this.group_result_array[9]=-982.0
MJ 0 Core 1 12:09:30 2012.08.08 15:03:00 this.group_result_array[10]=805.0
GL 0 Core 1 12:09:30 2012.08.08 15:03:00 this.group_result_array[11]=385.0
ID 0 Core 1 12:09:30 2012.08.08 15:03:00 this.group_result_array[12]=-798.0
DJ 0 Core 1 12:09:30 2012.08.08 15:03:00 this.group_result_array[13]=1561.0
FR 0 Core 1 12:09:30 2012.08.08 15:03:00 X[0]=22183803.0 Y[0]=1561.0
FH 0 Core 1 12:09:30 2012.08.08 15:03:00 X[1]=22186960.0 Y[1]=763.0
GL 0 Core 1 12:09:30 2012.08.08 15:03:00 X[2]=22197303.0 Y[2]=1148.0
RE 0 Core 1 12:09:30 2012.08.08 15:03:00 X[3]=22207443.0 Y[3]=1953.0
OM 0 Core 1 12:09:30 2012.08.08 15:03:00 X[4]=22212063.0 Y[4]=971.0
MG 0 Core 1 12:09:30 2012.08.08 15:03:00 X[5]=22225383.0 Y[5]=57.0
FK 0 Core 1 12:09:30 2012.08.08.08 15:03:00 X[6]=22248723.0 Y[6]=244.0
QR 0 Core 1 12:09:30 2012.08.08 15:03:00 X[7]=22265943.0 Y[7]=187.0
MJ 0 Core 1 12:09:30 2012.08.08 15:03:00 X[8]=22335543.0 Y[8]=4884.0
JS 0 コア 1 12:09:30 2012.08.08 15:03:00 X[9]=22338363.0 Y[9]=3711.0
JD 0 Core 1 12:09:30 2012.08.08 15:03:00 X[10]=22349163.0 Y[10]=3636.0
OM 0 Core 1 12:09:30 2012.08.08 15:03:00 X[11]=22358283.0 Y[11]=2189.0
FF 0 Core 1 12:09:30 2012.08.08.08 15:03:00 X[12]=22400283.0 Y[12]=2687.0
GS 0 Core 1 12:09:30 2012.08.08 15:03:00 X[13]=22407303.0 Y[13]=3.105036941761521e+231
NL 0 Core 1 12:09:30 2012.08.08.08 15:03:00 var_0=3.960436915196813e+236 var_1=86864140528.35715
RD 0 Core 1 12:09:30 2012.08.08 15:03:00 this.current_slope=4.559346228613075e+225

 

ところで、あるペアでテストしたところ、上記のような効果があることがわかりました。どこかで何かがゼロになっていないか、すでに不正確なデータが存在する領域にアクセスしているようです。どうすればこれを検出し、取り除くことができるでしょうか?配列に入ってくるデータの制御を厳しくする必要があるのでしょう。どうすればいいでしょうか?

2012.05.31 14:41:59 this.group_result_array[0]=-279.9
PF 0 コア 1 12:48:50 2012.05.31 14:41:59 this.group_result_array[1]=-275.4
MH 0 Core 1 12:48:50 2012.05.31 14:41:59 this.group_result_array[2]=-302.5
OQ 0 Core 1 12:48:50 2012.05.31 14:41:59 this.group_result_array[3]=-281.49999999999
PE 0 Core 1 12:48:50 2012.05.31 14:41:59 this.group_result_array[4]=-274.4
QN 0 Core 1 12:48:50 2012.05.31 14:41:59 this.group_result_array[5]=-323.99999999999
LL 0 Core 1 12:48:50 2012.05.31 14:41:59 this.group_result_array[6]=1.61390681602331e+116
QE 0 Core 1 12:48:50 2012.05.31 14:41:59 this.group_result_array[7]=-249.0
PO 0 Core 1 12:48:50 2012.05.31 14:41:59 this.group_result_array[8]=-249.0
CQ 0 Core 1 12:48:50 2012.05.31 14:41:59 this.group_result_array[9]=-250.0
OI 0 Core 1 12:48:50 2012.05.31 14:41:59 this.group_result_array[10]=-249.0
RO 0 Core 1 12:48:50 2012.05.31 14:41:59 this.group_result_array[11]=-249.0
ME 0 Core 1 12:48:50 2012.05.31 14:41:59 this.group_result_array[12]=-249.0
DK 0 Core 1 12:48:50 2012.05.31 14:41:59 this.group_result_array[13]=-250.0
CQ 0 Core 1 12:48:50 2012.05.31 14:41:59 this.group_result_array[14]=-249.0
IE 0 Core 1 12:48:50 2012.05.31 14:41:59 X[0]=22193876.0 Y[0]=-249.0
NL 0 Core 1 12:48:50 2012.05.31 14:41:59 X[1]=22194448.0 Y[1]=-499.0
JG 0 コア 1 12:48:50 2012.05.31 14:41:59 X[2]=22194812.0 Y[2]=-748.0
PN 0 Core 1 12:48:50 2012.05.31 14:41:59 X[3]=22195279.0 Y[3]=-997.0
CR 0 Core 1 12:48:50 2012.05.31 14:41:59 X[4]=22195447.0 Y[4]=-1246.0
LK 0 Core 1 12:48:50 2012.05.31 14:41:59 X[5]=22195632.0 Y[5]=-1496.0
MP 0 Core 1 12:48:50 2012.05.31 14:41:59 X[6]=22196242.0 Y[6]=-1745.0
OI 0 Core 1 12:48:50 2012.05.31 14:41:59 X[7]=22196301.0 Y[7]=-1994.0
PS 0 Core 1 12:48:50 2012.05.31 14:41:59 X[8]=22269123.0 Y[8]=1.61390681602331e+116
DH 0 Core 1 12:48:50 2012.05.31 14:41:59 X[9]=22276026.0 Y[9]=1.61390681602331e+116
HE 0 Core 1 12:48:50 2012.05.31 14:41:59 X[10]=22276174.0 Y[10]=1.61390681602331e+116
QR 0 Core 1 12:48:50 2012.05.31 14:41:59 X[11]=22287959.0 Y[11]=1.61390681602331e+116
NO 0 Core 1 12:48:50 2012.05.31 14:41:59 X[12]=22289679.0 Y[12]=1.61390681602331e+116
DD 0 Core 1 12:48:50 2012.05.31 14:41:59 X[13]=22307227.0 Y[13]=1.61390681602331e+116
EP 0 Core 1 12:48:50 2012.05.31 14:41:59 X[14]=22307921.0 Y[14]=1.61390681602331e+116
HM 0 Core 1 12:48:50 2012.05.05.31 14:41:59 var_0=5.571865878831281e+121 var_1=33339632014.93333
HE 0 Core 1 12:48:50 2012.05.31 14:41:59 this.current_slope=1.6712439641108e+111

 
solandr:

ところで、あるペアでテストしたところ、上記のような効果があることがわかりました。どこかで何かがゼロになっていないか、すでに不正確なデータが存在する領域にアクセスしているようです。どうすればこれを検出し、取り除くことができるでしょうか?配列に入ってくるデータの制御を厳しくする必要があるのでしょう。その方法は?

そうだね。週末に見てみるよ。こちらも興味深い)
 

インクルードニクで「犬が穴の中にいる」場所を見つけた!配列の並べ替えに 不具合がある。ソート前とソート後のプリントを挿入してみた:

//MY CHECK
        for( index = 0; index < count; index++ )
        {
   
      Print("BEFORE SORTING org_result_array[",index,"]=",org_result_array[ index ]," this.org_datetime_array[",index,"]=",this.org_datetime_array[ index ]);
        
        }
// "raw "配列を、注文が終了した日時でソートする:
        SortMasterSlaveArray( this.org_datetime_array, this.org_result_array );

//MY CHECK
        for( index = 0; index < count; index++ )
        {
   
      Print("AFTER SORTING org_result_array[",index,"]=",org_result_array[ index ]," this.org_datetime_array[",index,"]=",this.org_datetime_array[ index ]);
        
        }

ペアの1つでテストしたときに表示された結果は以下の通り:

MQ 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[0]=-279.9 this.org_datetime_array[0]=22307921.0
QQ 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[1]=-275.4 this.org_datetime_array[1]=22307227.0
QR 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[2]=-302.5 this.org_datetime_array[2]=22289679.0
QR 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[3]=-281.499999999 this.org_datetime_array[3]=22287959.0
PQ 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[4]=-274.4 this.org_datetime_array[4]=22276174.0
PR 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[5]=-323.999999999 this.org_datetime_array[5]=22276026.0
IP 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[6]=5354.0 this.org_datetime_array[6]=22269123.0
MQ 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[7]=-249.0 this.org_datetime_array[7]=22196301.0
GR 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[8]=-249.0 this.org_datetime_array[8]=22196242.0
GR 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[9]=-250.0 this.org_datetime_array[9]=22195632.0
GS 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[10]=-249.0 this.org_datetime_array[10]=22195447.0
NS 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[11]=-249.0 this.org_datetime_array[11]=22195279.0
DS 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[12]=-249.0 this.org_datetime_array[12]=22194812.0
QS 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[13]=-250.0 this.org_datetime_array[13]=22194448.0
OL 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[14]=-249.0 this.org_datetime_array[14]=22193876.0
OL 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[15]=-315.0 this.org_datetime_array[15]=22188593.0
EL 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[16]=-249.0 this.org_datetime_array[16]=22188401.0
LL 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[17]=-249.0 this.org_datetime_array[17]=22188390.0
KM 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[18]=-318.0 this.org_datetime_array[18]=22178692.0
NM 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[19]=-250.0 this.org_datetime_array[19]=22171680.0
QM 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[20]=-249.0 this.org_datetime_array[20]=22168711.0
OM 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[21]=-250.0 this.org_datetime_array[21]=22168595.0
KN 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[22]=-248.9 this.org_datetime_array[22]=22168313.0
CN 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[23]=-249.5 this.org_datetime_array[23]=22167843.0
PN 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[24]=-249.0 this.org_datetime_array[24]=22165238.0
FN 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[25]=-249.6 this.org_datetime_array[25]=22165036.0
MO 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[26]=-271.0 this.org_datetime_array[26]=22164783.0
GO 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[27]=-256.0 this.org_datetime_array[27]=22161600.0
QO 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[28]=-249.0 this.org_datetime_array[28]=22158602.0
OO 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[29]=-250.0 this.org_datetime_array[29]=22158129.0
PH 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[30]=-249.0 this.org_datetime_array[30]=22157426.0
MH 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[31]=-249.0 this.org_datetime_array[31]=22156983.0
KH 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[32]=-249.0 this.org_datetime_array[32]=22156408.0
FH 0 Core 1 13:48:51 2012.05.05.31 14:41:59 BEFORE SORTING org_result_array[33]=-249.0 this.org_datetime_array[33]=22154526.0
EI 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[34]=-249.0 this.org_datetime_array[34]=22153931.0
PI 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[35]=-271.0 this.org_datetime_array[35]=22153579.0
MH 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[36]=2387.0 this.org_datetime_array[36]=22153263.0
KI 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[37]=-274.0 this.org_datetime_array[37]=22135056.0
DJ 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[38]=-273.0 this.org_datetime_array[38]=22132446.0
FJ 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[39]=-277.0 this.org_datetime_array[39]=22132307.0
DJ 0 Core 1 13:48:51 2012.05.31 14:41:59 BEFORE SORTING org_result_array[40]=-597.0 this.org_datetime_array[40]=22093229.0
NG 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[0]=-279.9 this.org_datetime_array[0]=22307921.0
DF 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[1]=-275.4 this.org_datetime_array[1]=22307227.0
FI 0 FI 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[2]=-302.5 this.org_datetime_array[2]=22289679.0
HI 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[3]=-281.49999999999 this.org_datetime_array[3]=22287959.0
GF 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[4]=-274.4 this.org_datetime_array[4]=22276174.0
MI 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[5]=-323.999999999 this.org_datetime_array[5]=22276026.0
FG 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[6]=5354.0 this.org_datetime_array[6]=22269123.0
GG 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[7]=1.61390681602331e+116 this.org_datetime_array[7]=22269123.0
PF 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[8]=-249.0 this.org_datetime_array[8]=22196301.0
PK 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[9]=7.869518189098558e-151 this.org_datetime_array[9]=22196301.0
RG 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[10]=-249.0 this.org_datetime_array[10]=22196242.0
LG 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[11]=-250.0 this.org_datetime_array[11]=22195632.0
NF 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[12]=-249.0 this.org_datetime_array[12]=22195447.0
IF 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[13]=-249.0 this.org_datetime_array[13]=22195279.0
MF 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[14]=-249.0 this.org_datetime_array[14]=22194812.0
RI 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[15]=-250.0 this.org_datetime_array[15]=22194448.0
NI 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[16]=-249.0 this.org_datetime_array[16]=22193876.0
LI 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[17]=-315.0 this.org_datetime_array[17]=22188593.0
DH 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[18]=-249.0 this.org_datetime_array[18]=22188401.0
CH 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[19]=-249.0 this.org_datetime_array[19]=22188390.0
JK 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[20]=-318.0 this.org_datetime_array[20]=22178692.0
IK 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[21]=-250.0 this.org_datetime_array[21]=22171680.0
HK 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[22]=-249.0 this.org_datetime_array[22]=22168711.0
PJ 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[23]=-250.0 this.org_datetime_array[23]=22168595.0
RJ 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[24]=-248.9 this.org_datetime_array[24]=22168313.0
HJ 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[25]=-249.5 this.org_datetime_array[25]=22167843.0
QM 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[26]=-249.0 this.org_datetime_array[26]=22165238.0
MM 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[27]=-249.6 this.org_datetime_array[27]=22165036.0
HL 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[28]=-271.0 this.org_datetime_array[28]=22164783.0
LL 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[29]=-256.0 this.org_datetime_array[29]=22161600.0
HL 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[30]=-249.0 this.org_datetime_array[30]=22158602.0
PO 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[31]=-250.0 this.org_datetime_array[31]=22158129.0
MO 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[32]=-249.0 this.org_datetime_array[32]=22157426.0
RO 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[33]=-249.0 this.org_datetime_array[33]=22156983.0
NN 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[34]=-249.0 this.org_datetime_array[34]=22156408.0
MN 0 Core 1 13:48:51 2012.05.31 14:41:59 ソート後 org_result_array[35]=-249.0 this.org_datetime_array[35]=22154526.0
PQ 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[36]=-249.0 this.org_datetime_array[36]=22153931.0
CQ 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[37]=-271.0 this.org_datetime_array[37]=22153579.0
DP 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[38]=2387.0 this.org_datetime_array[38]=22153263.0
LP 0 Core 1 13:48:51 2012.05.31 14:41:59 AFTER SORTING org_result_array[39]=-274.0 this.org_datetime_array[39]=22135056.0
IP 0 Core 1 13:48:51 2012.05.31 14:41:59 ソート後 org_result_array[40]=-273.0 this.org_datetime_array[40]=22132446.0

 

やったー!問題は解決した!
まずオブジェクト配列を通常の配列にコピーし、この一時的な配列をソート関数に転送すれば、予期せぬ不具合は発生しない。配列のデータが空に飛ぶこともなく、すべてのロットスイッチが一致します。 また、通貨ペアの共同実行における最終残高もほぼ完全に一致します(差は微小です)。
以下はテスト結果と、私が不具合を解消するために使用しているコードです。(現在のデータは、最初のペアの単独実行でさえ、コード修正前に得られたデータとは異なっていることに注意してください。

solandr 2012.09.26 23:16 2012.09.26 23:16:04 )

ロットコントロール有効時
34 0 0 0 6487.33 1組目
0 36 0 5556.60 2組目
0 0 168 4374.44 3組目
34 36 168 16418.47 3組とも
3組の収支の合計 16418.37 (ジョイントランとの差 0.1)

ロット制御をオフにした場合
0 0 0 0 6702.44 第1ペア
0 0 0 5742.89 第2ペア
0 0 0 4358.22 第3ペア
0 0 0 16804.53 全3ペア
3ペアの収支合計 16803.55 (共同実行との差 0.98).

double temp_array1[],temp_array2[];
ArrayResize(temp_array1,count);
ArrayResize(temp_array2,count);

        for( index = 0; index < count; index++ )
        {
           temp_array1[index]=this.org_datetime_array[index];
           temp_array2[index]=this.org_result_array[index];
        }



// "raw "配列を、注文が終了した日時でソートする:
        //SortMasterSlaveArray( this.org_datetime_array, this.org_result_array ); - このコードは常に正しく動作するわけではありません。
        SortMasterSlaveArray(temp_array1,temp_array2);

        for( index = 0; index < count; index++ )
        {
           this.org_datetime_array[index]=temp_array1[index];
           this.org_result_array[index]=temp_array2[index];
        }       

他の人が乖離したテストで何日も頭を悩ませることがないように、記事のincludnikを変更してください。ありがとう!

 

IMHOとしては、includerを変更するのではなく、service-deskに書き込むべきだ。

このようにすべきではありません。不必要なコピーは、あらゆる観点から見て不必要だ。そして一般的に、あなたは優秀です!

service-desk経由で自分自身にプラス評価を与えてください)))

 

MQチームへのメッセージ

親愛なるMT5開発者の皆様、Windows 7 Enterprise (licensed, English)上で動作しているMT5 Build 695 (6 Sep 2012, Championship Terminal-2012, Account: 1101505, Server: MetaQuotes-Demo)のテスト中に検出された予期せぬ問題にご注意ください。問題は、ソート関数への参照によって渡されたデータ(オブジェクト要素としての配列)の不可解な歪みです。

ORIGINAL(エラーあり)とCORRECTED(エラーなし)のソースコードとExpert Advisorの動作のログファイルを添付します。データの歪みを伴うエラーは、同じ指定されたテスト条件下で安定的に再現されます。2012.02.24 08:03:40(配列データが混在)と2012.05.31 14:41:59(データが「空に飛んだ」)のログに注目してください。

ありがとうございました!

 
solandr:

MQチームへのメッセージ

親愛なるMT5開発者の皆様、Windows 7 Enterprise(ライセンス、英語)上で動作するMT5 Build 695(2012/9/6, Championship Terminal-2012, Account: 1101505, Server: MetaQuotes-Demo)のテスト中に検出された予期せぬ問題にご注意ください。問題は、ソート関数への参照によって渡されたデータ(オブジェクト要素としての配列)の原因不明の歪みです。

ORIGINAL(エラーあり)とCORRECTED(エラーなし)のソースコードとExpert Advisorの動作のログファイルを添付します。データの歪みを伴うエラーは、同じ指定されたテスト条件下で安定的に再現されます。2012.02.24 08:03:40(配列データが混在)と2012.05.31 14:41:59(データが「空に飛んだ」)のログに注目してください。

ありがとうございました!

結論。

GetTradeResultsArray 関数でユーザー側でエラー。

X 個のデータを持つ動的配列が 用意されているが、「エイリアン」マジックの取引がある場合など、N 個 (N<X) で埋められる。

ソート前に N 個のデータが出力されるが、X 個がソートに関与している。もちろん、X-N 個のデータはメモリ上の乱数である。


解決策:
1) N個になるように入力した後、配列を "トリム"
2) N個をソート関数に渡す
3) 配列Xを明らかに大きい/小さいデータで初期化。