ใช้วิธีเช็คจาก Time frame และนับจากบาร์ย้อนหลัง 250 ได้มั้ยครับ? ผมว่าจะเอา Fibo มาใส่ใน EA อยู่เหมือนกัน
int fibHigh = iHighest(Symbol(),Period(),MODE_HIGH,WindowFirstVisibleBar()-1,1);
int fibLow = iLowest(Symbol(),Period(),MODE_LOW,WindowFirstVisibleBar()-1,1);
datetime highTime = Time[fibHigh];
datetime lowTime = Time[fibLow];
if(fibHigh>fibLow){
WindowRedraw();
ObjectCreate("Auto_Fibo",OBJ_FIBO,0,highTime,High[fibHigh],lowTime,Low[fibLow]);
color levelColor = Red;
}
else{
WindowRedraw();
ObjectCreate("Auto_Fibo",OBJ_FIBO,0,lowTime,Low[fibLow],highTime,High[fibHigh]);
levelColor = Green;
}
double fiboPrice1=ObjectGet("Auto_Fibo",OBJPROP_PRICE1);
double fiboPrice2=ObjectGet("Auto_Fibo",OBJPROP_PRICE2);
double fiboPriceDiff = fiboPrice2-fiboPrice1;
double fiboValue0 = NormalizeDouble(fiboPrice2-fiboPriceDiff*0.0,Digits);
double fiboValue23 = NormalizeDouble(fiboPrice2-fiboPriceDiff*0.236,Digits);
double fiboValue38 = NormalizeDouble(fiboPrice2-fiboPriceDiff*0.382,Digits);
double fiboValue50 = NormalizeDouble(fiboPrice2-fiboPriceDiff*0.50,Digits);
double fiboValue61 = NormalizeDouble(fiboPrice2-fiboPriceDiff*0.618,Digits);
double fiboValue100 = NormalizeDouble(fiboPrice2-fiboPriceDiff*1.0,Digits);
ObjectSet("Auto_Fibo",OBJPROP_FIBOLEVELS,6);
ObjectSet("Auto_Fibo",OBJPROP_FIRSTLEVEL+0,0.0);
ObjectSet("Auto_Fibo",OBJPROP_FIRSTLEVEL+1,0.236);
ObjectSet("Auto_Fibo",OBJPROP_FIRSTLEVEL+2,0.382);
ObjectSet("Auto_Fibo",OBJPROP_FIRSTLEVEL+3,0.50);
ObjectSet("Auto_Fibo",OBJPROP_FIRSTLEVEL+4,0.618);
ObjectSet("Auto_Fibo",OBJPROP_FIRSTLEVEL+5,1.0);
ObjectSet("Auto_Fibo",OBJPROP_LEVELCOLOR,levelColor);
ObjectSet("Auto_Fibo",OBJPROP_LEVELWIDTH,1);
ObjectSet("Auto_Fibo",OBJPROP_LEVELSTYLE,STYLE_DASHDOTDOT);
ObjectSetFiboDescription( "Auto_Fibo", 0,fiboValue0+" --> 0.0%");
ObjectSetFiboDescription( "Auto_Fibo", 1,fiboValue23+" --> 23.6%");
ObjectSetFiboDescription( "Auto_Fibo", 2,fiboValue38+" --> 38.2%");
ObjectSetFiboDescription( "Auto_Fibo", 3,fiboValue50+" --> 50.0%");
ObjectSetFiboDescription( "Auto_Fibo", 4,fiboValue61+" --> 61.8%");
ObjectSetFiboDescription( "Auto_Fibo", 5,fiboValue100+" --> 100.0%");
ข้างบนนี้เป็น Auto Fibo ที่ผมได้มา ไม่ได้เขียนเองนะครับ คืออยากได้ค่าโดยที่ไม่อยากให้มันขีดเองเนี่ย ผมจะเอาไปใช้ยังไงดี -..-
ที่คิดไว้คือ ตั้ง bool ที่ WindowRedraw(); ไว้เช็คก่อน
แต่ตอนที่ทำ ดันมีเส้นที่ขีดเอาไว้มาแสดงแทน -..-