traderider forex ไทย

สอนการเขียน EA Forex นั้นง่ายใครๆ ก็เขียนได้ - ตอนที่ 6 สร้าง EA Forex ให้เปิด Order จากเส้น EMA

  • 10 replies
  • 11194 views

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

*

ออฟไลน์ iRuler

  • *
  • 1,232
  • 39
สอนการเขียน EA Forex นั้นง่ายใครๆ ก็เขียนได้ - ตอนที่ 6 สร้าง EA Forex ให้เปิด Order จากเส้น EMA


มาถึงตอนนี้ตอนที่ 6 สร้าง EA Forex ให้เปิด Order จากเส้น EMA เราจะนำเรื่องราวของทั้ง 5 ตอนที่ผ่านมา นำมาสร้างเป็น EA forex ที่ทำงานได้จริงๆ กันในตอนที่ 6 นี้นะครับ
EA ที่เราจะสร้างขึ้นมาในตอนนี้เป็น EA Forex  ที่อ่านค่าจากเส้น EMA 15 และ EMA 200 ครับ เป็นระบบเทรดที่ผมไปเจอที่เว็บนี้ http://www.forexfunction.com/200-ema-and-15-ema-crossover-profitable-trading-strategy



หลักการก็คือ:
  • ถ้า EMA15 ตัดกับเส้น EMA200 จากล่างขึ้นบนให้เปิด BUY
  • ถ้า EMA15 ตัดกับเส้น EMA200 จากบนลงล่างให้เปิด SELL

จุด Takeprofit ประมาณ 30-40pips ตามระบบบอกว่าให้ตั้ง Stoploss เหนือเส้น EMA200 ถ้าเป็น SELL ถ้า BUY ก็ใต้เส้น EMA200
แต่ในโค้ดที่นำมาเป็นตัวอย่างในตอนนี้ผมจะให้ตั้งค่า Stoploss เองนะครับ เรามาดูโค้ดส่วนต่างๆ กันดีกว่า

ส่วนรับค่าจาก user:


จากโค้ดบันทัดที่ 7-10 เป็นการประกาศตัวแปรเหมือนตอนก่อนๆ นะครับ ต่างกันแค่เราใส่ input ไว้ข้างหน้าตัวแปรที่เราต้องการให้ user ป้อนค่าเองได้ครับ


ผลที่ได้จากการประกาศตัวแปรเป็น input:



จากโค้ดบันทัดที่ 13-15 เป็นการประกาศตัวแปรที่เราจะใช้ใน EA ครับ โดย:
  • bar จะใช้เป็นตัวบอกว่าแท่งราคาที่กำลังทำงานอยู่เป็นแท่งใหม่แล้วหรือยังครับ
  • factor เป็นตัวแปรที่เอาไว้ช่วยให้เราไม่ต้องเปลี่ยนค่า input ตอนเราเปลี่ยนไปมาระหว่างโบร้กเกอร์ 4 จุดหรือ 5 จุดครับ
  • trend เอาไว้จำว่าตอนนี้เราอยู่ในช่วงเทนด์ขาขึ้นหรือลง

บันทัด 18-25 เป็นฟังก์ชัน OnInit() เป็นส่วนที่ทำงานแรกของ EA
ในฟังก์ชันนี้มีมีส่วนตรวจสอบว่า EA เรารันอยู่ในโบร้กกี่จุด
ถ้า 3 หรือ 5 จุด ให้ factor=10 นอกนั้นให้ factor=1
ซึ่งตัวแปร factor นี้เราจะได้ใช้ในโค้ดข้างล่างๆ ครับ



บันทัด 28-31 เป็นฟังก์ชัน DeInit() จะรันตอนเราเปลี่ยน Time Fame หรือนำ EA ออกจากกราฟ
ในฟังก์ชันนี้ผมใส่ Comment(""); ไว้เพื่อ clear ข้อความที่ EA แสดงออกบนกราฟ

มาถึงส่วนทำงานจริงๆ ของ EA ตัวนี้นะครับ ผมจะอธิบายแยกเป็นส่วนๆ ดังนี้


บันทัดที่ 34-39 ส่วนนี้เป็นส่วนที่ผมบอกว่าตัวแปร bar เอาไว้เช็คว่าราคาแท่งเราทำงานอยู่ขึ้นแท่งใหม่หรือยัง
ในตอนแรกเราประกาศให้ bar =-1 แล้วสมมติว่า Bars = 43213 ดังนั้นในการทำงานตอนแรกเงื่อนไขนี้จะเป็นเท็จ
ดังนั้นคำสั่ง return จะไม่ทำงาน จะไปทำคำสั่ง bar=Bars แทน ตอนนี้ bar ของเราจะเท่ากับ 43213
สมมติว่ามีสัญญาณราคาส่งมา แล้ว EA เราทำงาน แต่ว่าราคายังไม่ปิดขึ้นแท่งใหม่ ดังนั้นคำสั่ง if(bar==Bars) จะเป็นจริง
คำสั่ง return ทำงาน คือออกจากฟังก์ชัน OnTick() ดังนั้นจะไม่มีคำสั่งใดๆ ถูกกระทำ



บันทัดที่ 40 และ 41 เป็นการอ่านค่าจากเส้น EMA15 และเส้น EMA200 โดยที่ค่าที่ได้จากเส้น EMA15 จะเก็บไว้ในตัวแปร fast_ma
และเส้น EMA200 จะเอาเก็บไว้ที่ตัวแปร slow_ma



บันทัด 43-44 เป็นส่วนกำหนดค่า Stoploss และ Takeprofit
โดยโค้ดส่วนนี้จะเห็นว่าเราใช้ตัวแปร factor มาเป็นส่วนคำนวณด้วย รายละเอียดส่วนนี้ได้กล่าวเอาไว้แล้วใน ตอนที่ 4
ฟังก์ชัน NormalizeDouble() เอาไว้กำหนดจุดทศนิยมของตัวแปรประเภท floating โดยในโค้ดจะใช้ตัวแปร Digits เป็นตัวบอกจำนวนจุดทศนิยม


โค้ดส่วนนี้เอาไว้แสดงผลว่าขณะนี้เป็นขาขึ้นหรือขาลง

ตัวอย่างการแสดงผลบนกราฟของ EA:







บันทัดที่ 54-89 เป็นส่วนตรวจสอบเงื่อนไขของเส้น EMA แล้วเปิด order ตามเงื่อนไขครับ
บันทัดที่ 54 ถ้าเส้น EMA15 อยู่บนเส้น EMA200 และก่อนหน้านี้เป็นขาลง (trend=2) ให้เปิด BUY ถ้าเปิด order สำเร็จหรือไม่สำเร็จก็ตาม จะมีข้อความเป็น Alert แจ้งบอก
หลังจากนั้นในบันทัด 68 ให้ trend=1 เพื่อบอกว่าตอนนี้เทรนด์เป็นขาขึ้นแล้ว
ในบันทัด 54 นั้นมีตรวจสอบด้วยว่า trend มีค่าเป็น -1 หรือเปล่า ตรงนี้เอาไว้เช็คตอน EA ทำงานครั้งแรกของการทำงานครับ เพราะว่าในตอนแรกเราประกาศห้ trend มีค่าเป็น -1 นั่นเอง
แบบนี้ EA จะไม่รอให้เกิดการตัดกันของเส้น EMA ก่อน ถ้าเส้น EMA15 อยู่บน เปิด BUY ถ้าเส้น EMA15 อยู่ล่าง เปิด SELL ทันที ถ้าหากต้องการรอสัญญาณตัดกันของเส้น EMA ก่อน ต้อง
ลบ trend==-1 ออกครับ
ในบันทัด 71-89 เป็นส่วนของการเช็คและเปิด order ฝั่ง SELL ครับ

เป็นอย่างไรบ้าง ครับ สำหรับ  การสร้าง EA Forex ให้เปิด Order จากเส้น EMA เพื่อนๆก็น่าจะเข้าใจและทำได้มากขึ้นแล้วนะครับ สำหรับท่านใดที่มีข้อสงสัยเกี่ยวกับการสร้างระบบ เทรด forex หรือ Forex system เป็นของตัวเอง โดยสร้างให้เป็น EA forex เพื่อการใช้งานจะได้เทรดแทนท่านไม่ต้องมานั่งเฝ้ากราฟ ตลอดเวลา ก็สามารถโพสสอบถามกันได้ตลอดเลย นะครับ


สามารถดาวน์โหลดโค้ดเต็มๆ ได้ที่ไฟล์แนบนะครับ ในตอนหน้าเราจะมา BackTest EA แบบ 99.9% กันครับ


 (TH)** (TH)** (TH)**

หัวข้อที่เกี่ยวข้องกับการเขียน EA Forex

การเขียน EA Forex บทที่ 1 : การเขียนEA Forex การสร้าง EA นั้นง่ายใครๆ ก็เขียนได้ - ตอนที่ 1 ปูพื้นฐานกันก่อน Forex EAตัวแรก

การเขียน EA Forex บทที่ 2 : การเขียน EA Forex การสร้าง EA นั้นง่ายใครๆ ก็เขียนได้ - ตอนที่ 2 อ่านค่าจาก Indicator forex

การเขียน EA Forex บทที่ 3 : การเขียน EA Forex นั้นง่ายใครๆ ก็เขียนได้ - ตอนที่ 3 การเขียนคำสั่งพื้นฐานที่เกี่ยวกับ Account

การเขียน EA Forex บทที่ 4 : การเขียน EA Forex นั้นง่ายใครๆ ก็เขียนได้ - ตอนที่ 4 การเขียนคำสั่งที่เกี่ยวกับ Order ของ EA Forex

การเขียน EA Forex บทที่ 5 :การเขียน EA Forex นั้นง่ายใครๆ ก็เขียนได้ - ตอนที่ 5 การเขียน EA forex เพื่อให้การแสดงผลบนกราฟ

การเขียน EA Forex บทที่ 6 : การเขียน EA Forex นั้นง่ายใครๆ ก็เขียนได้ - ตอนที่ 6 สร้าง EA Forex ให้เปิด Order จากเส้น EMA

การเขียน EA Forex บทที่ 7 :การเขียน EA Forex นั้นง่ายใครๆ ก็เขียนได้ - ตอนที่ 7 การทดสอบ Back Test EA Forex 99.00 %

VPS Forex สำหรับ รัน Forex EA :ถ้าจะใช้ VPS forex รัน EA แนะนำที่นี่ครับ SocialVPS.Net ค่า Ping ต่ำและราคาถูกมากครับ

และสุดท้าย Myfxbook :อย่าลืมเอา Port ของท่าน ใส่ ใน Myfxbook เพื่อติดตามผลนะครับ

[/list]

Share Topic.

Follow Me.

« แก้ไขครั้งสุดท้าย: 13, มิถุนายน 2019, 09:17:26 PM โดย iRuler »

traderider forex ไทย
traderider forex ไทย
traderider forex ไทย

*

kimlt

สุดยอดเลยครับ ขอบคุณครับ

*

ออฟไลน์ isuccess

  • *
  • 26
  • 2
ขอบคุณหลายๆเด้อ

อ่านเเล้วได้ความรู้ที่ดีมากเลยนะค่ะ

ถ้ามีระบบ money management  กับ ระบบล็อกกำไร และไม่ต้องเบิ้ลล็อต ด้วยจะดีมากเลย อยากได้ๆ ็Hea**

สอบถามหน่อยครับ

ถ้าเราจะตั้งให้มัน Pending order ได้ไหมครับ เช่นให้มัน Pending order buy ที่ EMA 200 แบบนี้อะครับต้องเขียนยังไง

 (TH)** (TH)** (TH)** (TH)**

return จะไม่ทำงาน จะไปทำคำสั่ง bar=Bars แทน ตอนนี้ bar ของเราจะเท่ากับ 43213
สมมติว่ามีสัญญาณราคาส่งมา แล้ว EA เราทำงาน แต่ว่าราคายังไม่ปิดขึ้นแท่งใหม่ ดังนั้นคำสั่ง if(bar==Bars) จะเป็นจริง

จบแท่ง แท่งไหนครับ TF เท่าไหร่เราจะรู้ได้ไงครับ จบแท่ง 1M หรือป่าวครับ แล้วถ้าใช่ อยากให้จบแท่ง 4H จะต้องทำไงครับ

ขอบคุณครับผม  (TH)** (TH)** (TH)** (TH)**

return จะไม่ทำงาน จะไปทำคำสั่ง bar=Bars แทน ตอนนี้ bar ของเราจะเท่ากับ 43213
สมมติว่ามีสัญญาณราคาส่งมา แล้ว EA เราทำงาน แต่ว่าราคายังไม่ปิดขึ้นแท่งใหม่ ดังนั้นคำสั่ง if(bar==Bars) จะเป็นจริง

จบแท่ง แท่งไหนครับ TF เท่าไหร่เราจะรู้ได้ไงครับ จบแท่ง 1M หรือป่าวครับ แล้วถ้าใช่ อยากให้จบแท่ง 4H จะต้องทำไงครับ

ขอบคุณครับผม  (TH)** (TH)** (TH)** (TH)**

if(bar==iBars(Symbol(),240))
      return;
      bar=iBars(Symbol(),240);

มั้งนะครับ

*

ออฟไลน์ Hexman

  • *
  • 31
  • 1
สวดยอดมากเลยครับผม อธิบายได้ละเอียด เข้าใจง่ายมั๊กๆ เลยครับผม

รอติดตามตอนต่อไปครับ

อ่านแล้วเข้าใจ

Tags:
 

เครื่องมือเทรด Forex

ข่าว Forex กราฟ Forex EURUSD GBPUSD GBPJPY ตารางข่าว Forex

เครื่องมือเทรดทองคำ

ราคาทอง วันนี้ ราคาทอง ย้อนหลัง SPDR ล่าสุด กราฟราคาทองคำ วิเคราะห์ ราคาทอง ข่าว ราคาทองคำ ข่าว ราคาน้ำมัน

โบรคเกอร์ Forex

XM Exness FBS Nordfx Land-FX Admiral Markets

Tickmill