ผมเขียน Code เพื่อ Check Trade ลักษณะนี้
if(MathAbs(iMA30[6])<MathAbs(iMA30[5]) && HaBarDiff[1]<-0.0001)
{
if(MathAbs(iMA30[1])<MathAbs(iMA30[3])<MathAbs(iMA30[5]))
{
if(MathAbs(iMA120[1])<MathAbs(iMA120[4])<MathAbs(iMA120[7]))
{
if(MathAbs(iMA240[1])<MathAbs(iMA240[5])<MathAbs(iMA240[7]))
{
TrdDn=true;
}
}
}
}
ซึ่งมีการ Check 3 state สำหระบ MA ปัญหาคือ มันดันเข้าเป็น True ทั้งๆที่ MathAbs(iMA240[7]) < MathAbs(iMA240[1]) ผม test ที่ Back Test ครับ
งงมาก และนี่คือ log ที่ผม Print เวลามัน Begin Trade
2010.08.25 00:45:37 2010.07.16 08:20 hello_world100824 EURUSD,M5: Begin Trade Down ! -0.0001 -> 1.2881 > 1.2882
2 ค่าหลังครับ 1.2881 > 1.2882 คิอ MathAbs(iMA240[7]),MathAbs(iMA240[1]) ทั้งๆที่ MathAbs(iMA240[7]) น้อยกว่า MathAbs(iMA240[1]) แต่มันดันเข้าไปถึง TrdDn=true;
ผู้รู้ท่านใด เคยเจอปัญหานี้บ้างครับ รบกวนชี้แนะด้วยครับผม