Open Forex4you Account

Server รัน EA 1000 / ปี

สั่งชื้อคู่มือการโปรแรกม MQL4

Author Topic: ใครถนัดเขียน indicator มั้งครับ รบกวนขอความรู้หน่อยครับ เรื่องวาดสีลงแท่งเทียน  (Read 70992 times)

pa_don

  • Newbie
  • *
  • Posts: 37
ขอบคุณท่านamdin และท่านไดม่อนด้วยครับ อินดดี้ที่ท่านamdin เอามาลงไว้โอเคเลยครับ

หาหนทางพัฒนาต่อ ขอบคุณมากครับ

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
ขอบคุณท่านamdin และท่านไดม่อนด้วยครับ อินดดี้ที่ท่านamdin เอามาลงไว้โอเคเลยครับ

หาหนทางพัฒนาต่อ ขอบคุณมากครับ
เอาตัวที่ผมเขียนกับ ที่ คุณ D_diamond ลงไวคือ Hiken Ashi 2  มาฟิวชั่นก็คือตัวที่คุณต้องการแล้วครับ ปรับจาก เครื่องหมายที่ผมทำไวให้ใช้ Histogram แทนแบบ Hiken Ashi ก็คือตัวที่คุณต้องการครับ

pa_don

  • Newbie
  • *
  • Posts: 37

D_Diamond

  • Hero Member
  • *****
  • Posts: 673
    • Expert Forex Trading
รู้สึกว่าจะไม่เพี้ยนแล้วครับ  เดี๋ยวดูวันนี้อีกวัน ถ้าเพี้ยนจะมารายงานใหม่  ขอบคุณมากครับ

ของท่าน pa_don ผมว่าเหมือนของผมนะครับ  ต่างกันแค่ high low กับ open close แก้นิดเดียว

D_Diamond

  • Hero Member
  • *****
  • Posts: 673
    • Expert Forex Trading
ผ่านไป1คืน ตกลงมันยังไม่หายเพี้ยนครับ  มาเพี้ยนตอนเช้า


admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
ผ่านไป1คืน ตกลงมันยังไม่หายเพี้ยนครับ  มาเพี้ยนตอนเช้า



มันเพี้ยนหลังข้ามวันใช่ไหมครับ โบรเกอร์ 5 จุดเดียวผมลอง set ดูก่อนครับ อีกเรื่องหนึ่งครับเรื่องค่าที่ส่งออกมา ตอนสีเพี้ยนค่าถูกต้องหรือไหมครับ

D_Diamond

  • Hero Member
  • *****
  • Posts: 673
    • Expert Forex Trading
ผ่านไป1คืน ตกลงมันยังไม่หายเพี้ยนครับ  มาเพี้ยนตอนเช้า



มันเพี้ยนหลังข้ามวันใช่ไหมครับ โบรเกอร์ 5 จุดเดียวผมลอง set ดูก่อนครับ อีกเรื่องหนึ่งครับเรื่องค่าที่ส่งออกมา ตอนสีเพี้ยนค่าถูกต้องหรือไหมครับ
สีเพี้ยน ค่าเพี้ยนด้วยครับ

D_Diamond

  • Hero Member
  • *****
  • Posts: 673
    • Expert Forex Trading
ค่าที่ควรเป็น 0  มันเป็น -1.0000 ครับ
ส่วนค่าที่มีสี  มันเพี้ยนตามสีที่ลง

แสดงว่ามันไม่ได้วาดผิด  อิอิ แก้ไงหว่า

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
ค่าที่ควรเป็น 0  มันเป็น -1.0000 ครับ
ส่วนค่าที่มีสี  มันเพี้ยนตามสีที่ลง

แสดงว่ามันไม่ได้วาดผิด  อิอิ แก้ไงหว่า
งั้นแสดงว่ามาจาก code น่าจะเป้นส่วนที่ใช้เก็บค่าด้วยเพราะ เวลาเขียน EA ผมก็เคยเจอลีกษณะนี้ให้มันอ่านค่ามาแล้วคำนวณไปนานๆๆมีหลุด ครับ คุณ D_Diamond ส่ง หลัการ อินดี้ตัวนี้ให้ผมใน PM หน่อยครับจะลองไล่ให้ดูครับ

D_Diamond

  • Hero Member
  • *****
  • Posts: 673
    • Expert Forex Trading
หลักการคือ  เมื่อกราฟแท่ง มีความยาวตามระดับที่ตั้งไว้  ให้ลงสีทับทั้งแท่งครับ

ผมตั้งไว้3ระดับ  10 pip สีม่วง  15 pip สีชมพู 20 pip สีแดงครับ
โค้ดอยู่หน้าที่แล้วครับ

อินดี้นี่ผมเขียนไม่เป็นเลย  ไม่เข้าใจหลักการและลำดับการทำงาน

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
หลักการคือ  เมื่อกราฟแท่ง มีความยาวตามระดับที่ตั้งไว้  ให้ลงสีทับทั้งแท่งครับ

ผมตั้งไว้3ระดับ  10 pip สีม่วง  15 pip สีชมพู 20 pip สีแดงครับ
โค้ดอยู่หน้าที่แล้วครับ

อินดี้นี่ผมเขียนไม่เป็นเลย  ไม่เข้าใจหลักการและลำดับการทำงาน
ครับเดียวลองไล่ดูครับ ตัวนี้ถ้าค่ามันส่งออกมาผิดก็น่าจะอยู่ที่ตัวเก็บค่าหละครับ เพราะตอนเปิดทำงานแรกๆๆ มันทำงานถูกต้องทุกอย่างแต่พอเปิดไปนานๆๆ ถึงหลุดเป็นเรื่องที่เกี่ยวกับ memory ของ MT4 แล้วครับผมจะลองไล่ดูก่อนครับ ว่าจะแก้ไขยังไง ครับ แต่คิดว่าคงไม่ต้องถึงขั่นสร้าง DLL แบบ EA บางตัวนะครับไม่งั้นเวลาใช้งานจริงจะหน่วงเครื่องอีก

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
จาก code ผมเจอขอผิดสังเกต
else
            {
               if ( lenght >= lenght2 * Point  )
               {
               ExtMapBuffer3[pos]=haLow;
               ExtMapBuffer4[pos]=haHigh; 
               ExtMapBuffer1[pos]=EMPTY; 
               ExtMapBuffer2[pos]=EMPTY;
               ExtMapBuffer5[pos]=EMPTY; 
               ExtMapBuffer6[pos]=EMPTY; 
               }
               else // ไม่มีปีกกาเปิดปิด
                   if ( lenght >= lenght1 * Point  )
                  {
                  ExtMapBuffer1[pos]=haLow;
                  ExtMapBuffer2[pos]=haHigh; 
                  ExtMapBuffer3[pos]=EMPTY;
                  ExtMapBuffer4[pos]=EMPTY;
                  ExtMapBuffer5[pos]=EMPTY;
                  ExtMapBuffer6[pos]=EMPTY;
                  }

            }
แล้วถามเพิ่มนะครับ อินดี้มันคำนวณกราฟตั้งแต่แท่งเทียมแรกที่มีใน hisory เลยนะครับ คุณ D_Diamond หลักการคุณใช้แค่ราคา สูงสุดกับต่ำสุดใช้ไหม ไม่ได้เอาราคาแท่งก่อนหน้ามาคำนวณเลยใช่ไหมครับถ้าใช่ ผมว่าเราน่าจะลด จุดเริ่มของอินดี้ลงครับจากที่มันไปคำนวณตั้งแต่แท่งแรกใน history เอาสักแท่งที่ 100 นับย้อนจากแท่งปัจจุบันไปก็พอครับไม่งันยิ่งเราเปิดนาน มันต้องใช่ memory ในตัว array ที่เก็บค่ามากขึ้นครับ ถ้าเราเอาแค่ 100 แท่งจากปัจจุบัน มันก็จะใช่แค่ เก็บ 100 ตัวตลอดไม่เพิ่มไปจากนี้ครับ

D_Diamond

  • Hero Member
  • *****
  • Posts: 673
    • Expert Forex Trading
ครับ อินดี้จะคำนวณทุกแท่ง  เอาแค่แท่งปัจจุบัน  ไม่เคยนึกถึงว่ามันจะมากไปครับ เพราะปกติใน mt4 จะตั้งไว้แค่ 5000 แท่ง

แล้วถ้าทำให้มันเคลียร์ค่าในอาเรย์จะได้หรือเปล่าครับ

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
ครับ อินดี้จะคำนวณทุกแท่ง  เอาแค่แท่งปัจจุบัน  ไม่เคยนึกถึงว่ามันจะมากไปครับ เพราะปกติใน mt4 จะตั้งไว้แค่ 5000 แท่ง

แล้วถ้าทำให้มันเคลียร์ค่าในอาเรย์จะได้หรือเปล่าครับ
อย่างตัวที่ผมใช้ทดสอบกราฟ 1 นาที นะครับ ชั่วโมงหนึ่ง เท่ากับ 60 แท่ง วันหนึ่งเท่ากับ 60*24 =1440 แท่งต่อวันครับ แต่ตัวที่ผมทดสอบมี history ย้อนหลังถึงวันที่ 20 กว่าๆเดือน มกราคม มันจะเท่ากับ 1440*30 =43200 แท่งแล้วครับ จาก code มันจะอ่านค่าทั้งหมดแล้วจับใส่ array  อย่างในกรณีผมมันจะอ่าน 43200 แท่งแล้วจับใส่ array ถ้าเวลาผ่านไปจำนวนแท่งก็เพิ่มขึ้นมันก็จะคำนวณมากขึ้นตลอดครับ ส่วนเรื่องล้างค่าใน array ผมเจอฟังก์ชั่นอยู่ตัวหนึ่ง RefreshRates( )  เอาไปใส่ก่อน return ใน ฟังก์ชั่น start ครับลองดูก่อนครับถ้าไมหายคงต้องกำหนดค่าเริ่มต้นของอินแทนไม่ให้อ่านไปไกลขนาดนั่นครับ

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
ยังมี Error อีกหรือเปล่าครับคุณ D_Diamond