EA Programing => ปัญหาที่พบในการเขียน EA => Topic started by: D_Diamond on ธันวาคม 02, 2012, 01:24:38 pm

Title: มีวิธีหาค่า price ของ fibo ไหมครับ
Post by: D_Diamond on ธันวาคม 02, 2012, 01:24:38 pm
ผมลองหาดูเห็นมันมีอยู่คำสั่งเดียว  ObjectGetFiboDescription

ซึ่งมันได้ค่าออกมาเป็นคำอธิบาย  desciption  ไม่สามารถเอาไปสั่งเทรดได้

อยากให้มันได้ค่าออกมาเป็นราคาบนกราฟเหมือนกับพวก trend line  พอจะมีวิธีไหมครับ
Title: Re: มีวิธีหาค่า price ของ fibo ไหมครับ
Post by: admin on ธันวาคม 02, 2012, 03:36:33 pm
ทำไมไม่คำนวณเองจากสูตรของ fibo หละครับ
Title: Re: มีวิธีหาค่า price ของ fibo ไหมครับ
Post by: D_Diamond on ธันวาคม 02, 2012, 07:48:40 pm
คือจะขีดฟีโบเองด้วยมือ  แล้วให้อีเอเทรดตามเส้นนะครับ

จากนี้ครับผลงานเขาสวยมาก  http://forexthaiplus.blogspot.com/p/trading.html
Title: Re: มีวิธีหาค่า price ของ fibo ไหมครับ
Post by: admin on ธันวาคม 02, 2012, 08:10:27 pm
ไม่น่าจะเอาออกมาได้ครับเพราะ Fibo มันเป้น Object ตัวเดียวไม่มีคำสั่งที่เรียกค่ามันออกมาได้ แต่ผมก็ยังคิดว่า เราอาจจะขีดเองด้วยมือแต่เรา input จุดที่เริ่มขีด กับ จุดสุดท้ายลงไปให้ EA คำนวณเอง EA จะรู้จากการคำนวณว่าตอนนี้เป้น fibo ระดับที่เท่าไรแล้วครับ
Title: Re: มีวิธีหาค่า price ของ fibo ไหมครับ
Post by: D_Diamond on ธันวาคม 02, 2012, 08:13:57 pm
ok  ขอบคุณครับ
Title: Re: มีวิธีหาค่า price ของ fibo ไหมครับ
Post by: sAcIw on มีนาคม 03, 2013, 05:36:00 pm
คุณ D_Diamond
ระบบนี้คุณเขียนสำเร็จรึยังครับ

พอดีกำลังเริ่มเขียนว่าพอจะทำงานได้ดีรึป่าว
Title: Re: มีวิธีหาค่า price ของ fibo ไหมครับ
Post by: D_Diamond on มีนาคม 03, 2013, 10:05:57 pm
ไม่สำเร็จครับยากมากๆ  มันไม่ได้ยากที่หาค่าฟีโบ

แต่ผมจะให้อีเอขีดฟีโบเองมันเลยยาก  เพราะไม่รู้จะเอาจุดสูงต่ำจากไหนให้มันครับ

แต่ถ้าขีดเองก้ง่ายขึ้นเยอะ
Title: Re: มีวิธีหาค่า price ของ fibo ไหมครับ
Post by: sAcIw on มีนาคม 04, 2013, 12:21:01 am
ขอบคุณ คุณ D_Diamond มากครับ
จะลองหาทางต่อแล้วกันครับ
ได้ผลอย่างไงจะมาบอกกล่าวแล้วกันครับ
Title: Re: มีวิธีหาค่า price ของ fibo ไหมครับ
Post by: veronika on มีนาคม 15, 2013, 04:30:58 am
ใช้วิธีเช็คจาก Time frame และนับจากบาร์ย้อนหลัง 250 ได้มั้ยครับ? ผมว่าจะเอา Fibo มาใส่ใน EA อยู่เหมือนกัน

Quote
     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(); ไว้เช็คก่อน
แต่ตอนที่ทำ ดันมีเส้นที่ขีดเอาไว้มาแสดงแทน -..-