EA Programing => ปัญหาที่พบในการเขียน EA => Topic started by: D_Diamond on ธันวาคม 02, 2012, 01:24:38 pm
-
ผมลองหาดูเห็นมันมีอยู่คำสั่งเดียว ObjectGetFiboDescription
ซึ่งมันได้ค่าออกมาเป็นคำอธิบาย desciption ไม่สามารถเอาไปสั่งเทรดได้
อยากให้มันได้ค่าออกมาเป็นราคาบนกราฟเหมือนกับพวก trend line พอจะมีวิธีไหมครับ
-
ทำไมไม่คำนวณเองจากสูตรของ fibo หละครับ
-
คือจะขีดฟีโบเองด้วยมือ แล้วให้อีเอเทรดตามเส้นนะครับ
จากนี้ครับผลงานเขาสวยมาก http://forexthaiplus.blogspot.com/p/trading.html
-
ไม่น่าจะเอาออกมาได้ครับเพราะ Fibo มันเป้น Object ตัวเดียวไม่มีคำสั่งที่เรียกค่ามันออกมาได้ แต่ผมก็ยังคิดว่า เราอาจจะขีดเองด้วยมือแต่เรา input จุดที่เริ่มขีด กับ จุดสุดท้ายลงไปให้ EA คำนวณเอง EA จะรู้จากการคำนวณว่าตอนนี้เป้น fibo ระดับที่เท่าไรแล้วครับ
-
ok ขอบคุณครับ
-
คุณ D_Diamond
ระบบนี้คุณเขียนสำเร็จรึยังครับ
พอดีกำลังเริ่มเขียนว่าพอจะทำงานได้ดีรึป่าว
-
ไม่สำเร็จครับยากมากๆ มันไม่ได้ยากที่หาค่าฟีโบ
แต่ผมจะให้อีเอขีดฟีโบเองมันเลยยาก เพราะไม่รู้จะเอาจุดสูงต่ำจากไหนให้มันครับ
แต่ถ้าขีดเองก้ง่ายขึ้นเยอะ
-
ขอบคุณ คุณ D_Diamond มากครับ
จะลองหาทางต่อแล้วกันครับ
ได้ผลอย่างไงจะมาบอกกล่าวแล้วกันครับ
-
ใช้วิธีเช็คจาก 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(); ไว้เช็คก่อน
แต่ตอนที่ทำ ดันมีเส้นที่ขีดเอาไว้มาแสดงแทน -..-