แสดงบทความที่มีป้ายกำกับ ความรู้เกี่ยวกับการพัฒนา EA (Expert Advisor) บน MT4 แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ ความรู้เกี่ยวกับการพัฒนา EA (Expert Advisor) บน MT4 แสดงบทความทั้งหมด

วันพฤหัสบดีที่ 1 พฤษภาคม พ.ศ. 2557

+++ เริ่มแล้วนะครับ project ในฝัน EA FARM Project ไม่รู้จะไปได้สักกี่น้ำ

     เริ่มแล้วนะครับ project ในฝัน EA FARM Project ไม่รู้จะไปได้สักกี่น้ำ แต่ก็ดีใจที่ได้ลองลงมือแล้ว อันนี้คือเหลือจากการปล่อยไล่ ๆ กัน ประมาร 20 ตัว จากนั้นปล่อย 1-2 วัน ตัวไหน อาการไม่ดี เริ่มติดลบ ก็หยุดทันที ตัวไหนที่ เริ่ม + ก็ปล่อย ให้ทำงานต่อ เพื่อลดความเสี่ยง เงินที่เหลือจากตัวที่หยุดก็เอาไปรวมกัน เพื่อสร้างชุดที่ 2

     จากการปล่อยชุดแรก และปล่อย run ทำให้มองเห็นข้อผิดพลาดของ EA 2-3 จุด เพื่อเอามาทำ version ต่อไป และมีแนวคิดเพิ่มมาอีกหลาย แนวคิด เป็นอีกก้าว ในอีกหลายๆ ก้าวที่ต้องเดินค่อย ๆ ตามดูกันไป

     เผื่อไว้เป็น idea แนวคิด หรือถ้าน้อง ๆ พี่ ๆ คนไหนมี idea แนะนำกันได้นะครับ สีส้มคือ ปล่อยแล้ว อาการไม่ดี กับเห็นข้อผิดพลาด ผมก็จะหยุด เพื่อเก็บ ทุนไป version 2 ณ ตอนนี้ ก็ขาดทุนไป 6xx USD แต่ได้ EA กลับมาลุ้น 14 ตัว สิ่งหนึ่งที่รู้สึกว่า ดีคือ ผมไม่ตอ้งเฝ้า ไม่ต้องเทรด ไม่ต้องลุ้นไรมาก อยากไปไหน อยากนอนตอนไหน ตื่นตอนไหน ก็ไม่ serious เหมือนกัารเทรด รายวัน แต่การเทรดรายวันก็ยังคงต้องฝึกต่ออยู่ดี แต่ตลาดช่วงนี้ เล่นยาก ไม่ได้เทรดมาหลายวันแหละ มันไม่มีสัญญาณไรให้เทรดเลย


+++ ตัวอย่าง EA พัฒนา โดยใช้ SAR model ลองกับหลายคู่เงินแล้วก็พอไปได้ ไว้เป็นตัวอย่าง idea กันนะ

ตัวอย่าง  EA พัฒนา โดยใช้ SAR model   ลองกับหลายคู่เงินแล้วก็พอไปได้ ไว้เป็นตัวอย่าง idea กันนะครับ

แนวคิดคือ
  • ซื้อเมื่อ ราคา มากกว่า SAR และขายหรือเปิด order เมื่อ ราคาน้อยกว่า SAR และให้เปิด Sell Order สลับทันที
  • แต่การออกแบบ ตั้งตัวแปรให้ MT4 คำนวณค่า SAR ทีเ่หมาะสมเอง โดยกำหนดช่วงของค่า SAR Rank จาก .01-1 ไล่ step
  • และใช้ Martingale มาช่วย ในเรื่องของ MM และตั้ง Lock ว่า %margin ต้องไม่น้อยกว่า 600% (บางโมเดลผมใช้ 1000%)
ลองดูนะ ใครมีไรแนะนำหรือนำเสนอ รบกวนแชร์ด้วยนะ จะได้เอาไปพัฒนากันต่อ

วันพุธที่ 2 เมษายน พ.ศ. 2557

+++ วันนี้น้องชาย สอนวิธีการตั้งตัวแปร เพื่อ Optimize แบบ Muti time frame และ Multi Symbol ...เรียกว่า ม้วนเดียวจบ จากเดิมต้องทำที่ละ tf และทำทีละ Symbol

extern int TF_index = 2;   //0-7
extern int Sym_index = 2;   //0-7


//Multi-TF
if(TF_index> 8)  TF_index=0;
int MyTF[8] {5, 15, 30, 60, 240, 1140, 10080, 43200}

//Sysbol
if(Sym_index> 8)  Sym_index=0;
String MySymbol[8] = { "GBPJPY", "AUDUSD", "EURUSD", "USDCHF", "GBPUSD", "USDCAD", "USDCHF", "USDJPY"};



//Code เดิม
iADX(NULL, NULL,day_periods,price_level,MODE_MAIN,0)

//หลังใส่ Multi-TF และ Multi-Symbol
iADX(MySymbol[Sym_index], MyTF[TF_index],day_periods,price_level,MODE_MAIN,0)

+++ รวมภาพผลงาน EA ที่ผ่านๆ มา ณ วันที่ 2 April 2014 เก็บไว้เป็นข้อมูลอ้างอิง












วันพุธที่ 26 มีนาคม พ.ศ. 2557

+++ ดื้อได้แต่อย่าโง่...ระหว่างทางที่เดินไปหาเป้าหมาย เราอาจจะต้องตรวจเช็ค ความเป็นไปได้ ของสิ่งที่กำลังทำ ว่ามีความเป็นไปได้มากน้อยแค่ไหน ...

ดื้อได้แต่อย่าโง่... เออ ชอบคำนี้ อยู่ดี ๆ ก็นึกขึ้นได้ ตอนนี้ฝึกเทรด FOREX มาได้ 7-8 เดือนแล้ว และหัดทำ EA ก็น่าจะได้สัก 2-3 เดือนแล้ว 

ตาม Concept ที่วางแผนไว้คือ คิด concept และทดลองกับบัญชี CEN 3-4 วันมานี้มี 2 เรื่องที่ เกิดขึ้นคือ มี EA ตัวหนึ่ง ทุนจาก 500USD และมันทำกำไรไปได้สัก 1000 จากนั้น ...เช้ามา เปิดมาเจอ มันโดนล้าง port เพราะมีการส่งคำสั่งซื้อ Lot = 8 ไป... ลบแทบจับ พร้อมอยากแกล้งตายเลย...


สิ่งที่เกิดขึ้นแล้วดีเสมอ มี 1 ในหลาย ๆตัวที่รอด และตัวที่น่าสนใจมีอีกตัวหนึ่ง ที่เริ่มจากฐานทุน 100USD อาทิตย์ก่อนมันก็ไล่มาได้ 1000USD แต่วันก่อน มันขยับมาที่ 1700 USD เลยต้องประกบมันซ่ะหน่อย เป้าหมายคือ ...ต้องการปิด order นี้เพื่อเอากำไรทั้งหมด มา...run ซ้ำ กับฐานทุน 100 USD ใหม่หมด (เพราะคิดว่า ความเสี่ยงของ EA ตัวนี้คือเมื่อมันทำงานไปพักใหญ่ๆ กำไรเยอะๆ  ส่วนใหญ่มันจะ Over trade จนต้องฮาราคีรีตัวเอง)

ผลงานล่าสุดของ EA ตัวที่ว่า




เห็นชัดเจนว่า อาจจะเพราะแค่ ฟลุ๊ก... %DD น่ากลัวมาก ... ทางแก้ส่วนนี้ืคืออาจจะต้องจับจังหวะในการปล่อย order นิดหน่อย ป้องกันทุนหายตอนเริ่มต้น 

ปรับแผนใหม่ จะเล่นแบบ กระจายกองโจรสำหรับ ea ตัวนี้ เดี๋ยวสักพัก จะปิดบัญชี นี้ จากนั้น ..... จะเอากำไรทั้งหมด กระจายออก บัญชี ละ 100usd รวมน่าจะได้ 18 บัญชี แล้วปล่อย run .... EA ตัวนี้อีกรอบ .... 



วันที่ 26 March 2014 EA ตัวนี้ ปิด Order เองเกือบทั้งหมด โดยเฉพาะที่ Margin >100USD  เลยทำการ ถอนเงินออก เพื่อนำไปใช้ในรูปแบบดาวกระจายดู เก็บกราฟ สุดท้ายนี้ไว้ก่อน รวมแล้ว ปล่อยมาตั้งแต่วันที่ 24 Feb 2014 ก็ประมาณเดือนหนึ่ง  ทำกำไรได้ เฉียด ๆ 2000% ... หวังว่าจะเป็น ฐาน และกำลังใจ ให้เราก้าวต่อไป และสำหรับคนที่สนใจ

Share แนวคิด

Ea แต่ละตัวก่อนผมจะปล่อย ผม optimize ผมเข้าใจเรื่องของ data modeling เรื่อง Statistic หรือการเลือกช่วงของข้อมูลมาใช้ ผมสุ่ม เลือกข้อมูลจากประสบการณ์ จากแนวคิด เวลา optimize มี 1,000-10,000 กว่า record ในการเลือกต้องศึกษาเยอะเหมือนกัน ผมเองก็อธิบายไม่ถูก แต่ผมรู้ว่ามันคำนวณแนวไหน ไรยังไง และก็ลองผิดลองถูก

จังหวะการปล่อย การดูแล การบริหาร ea ก็ต้องมีความเข้าใจในการสร้างสูตรหรือ model ส่วนหนึ่ง ผมเรียนว่า ผมจะถนัดตัว adx มาก อย่างที่เคยแชร์ให้หลายๆ คน ศึกษาทีละเรื่อง เจาะให้เข้าใจ ผมอยากให้สิ่งที่ผมทำ อยากให้มองถึงความพยายาม ความตั้งใจ และอยากให้คนที่สนใจ เชื่อว่ามันเป็นไปได้

เชื่อผมนะ ไม่มีจอกศักดิ์สิทธิ์ ในตลาดการเงิน เขาให้รางวัลกับคนที่ควรจะได้รับรางวัล ต้องรัก ทุ่มเท ใส่ใจ ตั้งใจ มุ่งมั่นครับ สู้ๆ นะครับ

วันเสาร์ที่ 22 มีนาคม พ.ศ. 2557

+++ ล้างปอด...เป็นเรื่องธรรมชาติหรือเปล่า...

ล้างปอด...เป็นเรื่องธรรมชาติหรือเปล่า...สำหรับการทำ ea ผมต้องบอกว่า..ผมไม่รู้ แต่จากที่หัดทำมาได้ 2-3 เดือน ...แม่ม ล้างเยอะมาก ไม่ต่ำกว่า 20 account แล้วมั้ง 

แต่ผมป้องกันเงินทุน โดยการเปิดบัญชี Cen และวางรูปแบบไว้ว่า ถ้าบัญชี Cen ผ่าน ผมจะสร้าง สิ่งแวดล้อมให้ EA ตัวนั้นเหมือน บัญชี Cen ทุกอย่าง ... เพียงแค่เปลี่ยนจาก Cen เป็น USD ตอนนี้เริ่มปล่อยไป 2 ตัว แต่ตอนนั้นทำแผนผิดไปสร้าง 500Cen เลยต้องยอมกัดฟัน ปล่อย 500USD 2 ชุด .... ทิตย์หน้าน่าจะรู้ผล 

ถ้าเป็น IC Market ผมจะ Run EA จากบัญชี Demo ผ่านเครื่องใหญ่ อีกเครื่องซึ่งอยู่ที่บ้าน (ปกติ เทรด หรือทำงานทำผ่าน notebook) 

กรณีของ Exness ถ้าเป็น demo ผมจะใช้ Leverage ได้มากสุดแค่ 1:100 ดังนั้น ผมจึงต้องเปิดบัญชี Cen เพราะระบบผมต้องอาศัย Leverage ที่สูง และแยก EA แต่ละตัวออกแต่ละบัญชี ....เพื่อป้องกันการล้าง port แล้วไม่เหลือไรเลย จากสถิติทีเจอบ่อย ๆ ช่วงนี้ คือปล่อย 5 ตาย 4 รอด 1 แต่ 1 ที่รอดทำกำไรได้ cover ทุกรอบ (รอบนี้ได้วิชาจากน้องชายมาใหม่ จำนวนทหารที่ตายน่าจะน้อยลง) 

ตอนนี้มีปัญหาเรื่อง EA ผมเป็นภาระกะ SERVER ที่เช่า ก็จะค่อยๆ คัดตัวที่ผ่าน สังเวียนเล็ก ๆ ก่อน แล้วให้มันไปสู้สังเวียนใหญ่ๆ 

เผื่อมีประโยชน์สำหรับคนทำ EA นะครับ  ผมชอบคำ ๆ หนึ่งของน้องคนหนึ่งใน Group ที่แลกเปลี่ยนความรู้กันนี่แหละ น้องบอกว่า ......เอดิสันยังทดลองเป็น พัน ครั้งกว่าจะสำเร็จ....

อย่างตัวนี้ ...ผมมองว่าถ้ามันผ่าน ผมก็เปลี่ยนจาก 100Cen เป็น 100USD = 3xxx บาท ..แต่ถ้าไม่ผ่าน ...โดนแบบนี้ บัญชี Cen = 100cen หรือ 1$ =3x บาท...

+++ 20 มีนาคม 2014 รวบ ea พลร่ม..ที่ตาย และที่รอด และ Idea ใหม่ที่เข้ามา เพื่อไปต่อ..ยัง version ที่ 2

ไม่เสียสละ ชัยชนะไม่เกิด ทุกตัวที่ตาย สาเหตุมาจาก Over trade คือมันมีการคำนวณแล้ว มันจัด lot ใหญ่เวอร์ ๆ คือ ทุน 100, 200 พวกจัดไป 1 lot คือ max ของ exness เลย ...ตายสิ

ตอนนี้ก็คือสร้าง Version ที่ 2 ขึ้นมาแล้ว คาดว่า ทิตย์หน้าปล่อย 
แต่ตอนนี้ จากปล่อยพลทหารไป 20 กว่านายไป ตาย เยอะพอตัว ..








สถิติก็ยังพอรับได้คือตัวที่รอดทำกำไรได้ cover เกือบทั้ง port จากที่สังเกตุ...ตัวที่เติมเงินเข้าไป เพื่อให้รอด ท้ายสุด มันก็ไม่รอด เหมือนประมาณว่า ยังไงกูก็จะตาย... สรุป model นี้อาจจะไม่เหมาะที่จะเติมเงินช่วย แต่เหมือนเล่น พนันมากกว่าการหา EA Model แบบระยะยาว ... สรุป model นี้จะทดลอง ต่ออีก และจะเริ่มปล่อย Version 2 ต่อไป  ด้านล่างคือ EA ชุดที่รอดออกมา กำไรอาจจะดูเยอะ แต่บอกได้เลยว่า ไม่ใช่แน่ ๆ เพราะ เป้าหมายหลักคือ เน้น เรื่อง การลดความเสี่ยง มากกว่ากำไรที่เยอะ 




 
ตัวบนนี้ตอนนี้กราฟไม่ update และเป็นตัวที่ โดนล้าง port ภายใน 3 วัน สาเหตุมาจาก มันจัด lot ใหญ่ และ โดนกระชาก ตายคาที่เลย ตัว history อยู่ใน ท้าย ๆของบทความนี้ ไปดูได้



เหมือนเดิม ตัวที่รอด...กลายเป็นยอดขุนพลไปแหละ กำไร ตัวที่รอดตอนนี้ xxx % up เกือบหมดเลย ...ก้าวต่อไป กับ Version 2 อันนี้คือแนวคิดที่จะทำการปรับแต่ง ต่อจาก ชุดที่ว่ามา โดยเพิ่มแนวคิดไว้ 2 อันคือ การตั้ง Trailing stop และ การ สร้างเงื่อนไขป้องกันการ กระชากแบบสวนทาง โดยการใช้ Big Candle มาช่วย 

  • คิดวิธีคำนวณ แท่งเทียนที่กระชากสวนทางให้หน่อยนะ ว่าจะเขียนยังไง เช่น สมมุติเราเลือก sell แต่ มีแท่ง เขียวปี๋มาสัก เท่าของแท่งก่อนหน้า.... กรุณา ปิด ทุก Order ไรงี้
  • หาตัว block maximum lot เพื่อป้องกัน Ovetrade 





ตัวอย่างกรณีศึกษา High Risk High Return ครับ ... EA ตัวนี้ทำกำไรไปได้ถึง 3xxx% แต่ 4 วันที่ผ่านมา ....มันตายคาที่เลยครับ 
เหมือนเดิม ..มันตายเพราะ over trade 

ไม่ว่า ea หรือคน ถ้า over trade เมิง...เตรียมตัวตาย 


แต่ตัวนี้ เป็ฯตัวที่ผมไม่กล้าปล่อย 500USD ตาม เพราะ อิกราฟ ตัวสูง ๆนะแหละ รอ... Version 2 ...เราจะแก้ไข...

+++ บัญชี cen 500cen ...จากนั้นพอมันนิ่ง ผมก็ copy มันขึ้นมา ทำทุกอย่างเหมือนกันหมด แต่เปลี่ยนเป็น 500usd

     บัญชี cen 500cen ...จากนั้นพอมันนิ่ง ผมก็ copy มันขึ้นมา ทำทุกอย่างเหมือนกันหมด แต่เปลี่ยนเป็น 500usd

ตอนนี้จาก 500USD เป็น 9xx แหละ ..รอดูว่ามันจะทำไงต่อ ..ปล่อย

ตื่นเช้ามาดู...ดีใจที่มันปิด order เพื่อ take profit V.2 จะต้องไม่มานั่งลุ้นแบบนี้




วันพฤหัสบดีที่ 6 มีนาคม พ.ศ. 2557

+++ ขอเก็บภาพผลงาน 1 เดือนแรก ทั้งที่ ผ่าน และไม่ผ่าน จากการทดลองครั้งแรก...สร้าง EA จาก ADX + Martingale ไว้หน่อย สิ้นสุด Feb 2014

update รายงาน แชร์ ..ประสบการณ์ 

อาทิตย์นี้ลองปล่อย EA 5 ตัว โดยเอา Model EA 1 ใน 5 ที่รอด จาก 4-5 แนวคิด จากการหัดเขียน EA ครั้งแรกในชีวิต มาลอง Optimize ใหม่ กับคู่เงินใหม่ สรุป ตาย 4 รอด 1 แต่ตัวที่รอดได้ 6 เท่า หรือ 600% สรุป ลงไป 5 ตัว x 100$ = 500$ ตาย 5 รอมา 1 แต่ 1 ที่ได้ ได้กลับมา 600$ เลยปิดเอาทุนมาตั้งหลักใหม่ก่อนดีกว่า

สิ่งที่ได้กลับ
ประสบการณ์กับการวิเคราะห์ปัญหาของ EA

1 ตัวตายเพราะ เปิดคู่เงินผิด ไปเจออีกที พี่แกร่วงระนาว คือ Opt กับ AUDCHF แต่เปิด USDJPY เละเทะ น่าฉงฉาน
อีกหนึ่งตายเพราะจับจังหวะไม่ดี ไปปล่อยตอน แท่งเทียนเขียน H4 เต็ม ๆ 3 แท่งติด common sense ควรคิดได้ว่าแม่มต้องย่อ ...

อีกหนึ่งตายเพราะ lot ใหญ่

อีกคู่หนึ่ง คู่เงินเดียวกันลองสุ่มแนวคิด DD มากสุดกับน้อยสุด ปล่อยคู่กัน ตัว DD น้อยสุดตายก่อน อีกตัวตายตามหลังจากนั้นอีก 1 วัน ..มันรักกัน  ...ทุกบัญชี มาจาก model 100$ ตายเกือบเรียบ ปล่อย 5 รอด 1 แต่ 1 ที่รอดกำไร ครอบคลุมตัวที่ตาย 





ตัวที่รอด ....ไม่หล่อแบบแม่ม ฟลุ๊กมั้ง เลยปิด เอาทุนกลับมาก่อน เสาร์ ทิตย์ ปรับใหม่ ทิตย์หน้าเจอกัน 


 อาทิตย์หน้ามีบัญชี 500cen 2 บัญชี ที่รอดมา แต่จะลองปล่อย 500USD 1 บัญชีไปดูก่อน ว่าจะรอดหรือมีเงื่อนไขอื่นใด น่าสนใจไหม 2 บัญชีที่ว่า 2-3 อาทิตย์เคยทำได้ 700%, 900% (Max สุดของมันก่อน ปิด order คือ 1300% และ 2000% ) แต่จังหวะมันดีตรงที่ เกิด ADX คลื่นใหญ่ ซึ่งถ้าเดาแล้ว คงต้องรอให้ นิ่งก่อน อาจจะได้ปล่อยหรือไม่ได้ปล่อยก็ไม่รู้ (อย่างที่บอกผมมอง ADX เหมือน Elliot Wave ไปซ่ะแล้ว) 

บางอารมณ์กำลังนึกว่าตังเองเล่น Poker อยู่เลย แต่ผมมองว่าการกระจายทดสอบ และทำ step การทดสอบแบบนี้ คือการลดความเสี่ยง ...ในแนวของผม 

ท่านไหนมี idea แนะนำ หรืออยากฝากลอง แชร์มาได้ ท่านไหน idea น่าสนใจ เดะมีแบ่ง idea กันไป (ที่พูดแบบนี้ไม่ใช่ว่าไม่แชร์นะครับ แต่ เหมือนคนอยากรบชนะ อย่างน้อยพื้นฐานการรบ ก็ต้องมี ea หรือ model ที่ผมใช้ high risk high return แต่มันถูกกับจริตผม )


ถามว่าผมทำ ea ที่ไม่เสี่ยงได้ ไหม ...ผมว่าได้นะ แต่ ตอนนี้ชอบแบบนี้ขอเจ็บ แบบนี้ก่อน ถ้าเจ็บแล้วจบไม่สวย เดะว่ากัน

อีกตัวในชุดทดลอง บัญชี Cen  ....ไม่ได้ดูมันหลายวัน เพิ่งเปิดไปดู ไอ้ตัว 2000% ทิตย์ก่อนมันขึ้นไปได้ 12,000 จาก 500 .... แล้วมันลงมา 6000 เลยปิดมัน...วันนี้..ตะกี้ด้วย มัน show step เทพ ...แล้วไอ้ตัวที่ว่าจะลองปล่อย USD กะตัวนี้แหละ....รู้ไรไม่สู้รู้งี้จริง ๆ ..ตอนนี้ไม่กล้าปล่อยแล้วอ่ะ กลัว...ดอย


อารมณ์ รู้งี้..เต็มหัวเลย




มีใครเข้าใจไหมอ่ะ ...อารมณ์นี้เลย


สรุปมี 2 ตัว บัญชี CEN ที่รอดมา แบบหล่อ ๆ 



วันพุธที่ 5 มีนาคม พ.ศ. 2557

+++ หาทางแก้มาเป็นอาทิตย์ หลัง MT4 up version ทำให้ EA Gen มี warning เมล์ถามเจ้าของโปรแกรม...แม่งก็ไม่ตอบ มีแต่จะ Charge นี่เลย น้องผม ... เจ๋ง


21/02/2014 16:46


ตอนแรกก็ดูก่อนครับว่ามันฟ้อง error อะไร อย่างของพี่ มันบอกว่า ไม่มี ErrorDescription หาไม่เจอ เรียกใช้ไม่ได้ มันก็เลยฟ้อง วิธีแก้ จากที่ดู ErrorDescription เป็น function พื้นฐานของตัวโปรแกรม mq4 อยู่ละ ผมก็เลยไปลอง search ดู ก็เจอ document ตามนี้ http://docs.mql4.com/constants/errorswarnings/enum_trade_return_codes

จากตัวอย่าง มันมี include 2 ตัว คือ #include <stderror.mqh> #include <stdlib.mqh>

ผมก็เลยมาแก้ที่ code พี่ error นี้ก็หายไป

ส่วนอีกอัน function ที่พี่ประกาศหรือเขียนไว้ เช่น int start(), int init() อะไรพวกนี้ มันจะต้องมีการ return ค่ากลับ แต่ code ไม่มี ซึ่งถ้าพี่ไม่ต้องการให้มีค่าต้องประกาศเป็น void นำหน้าได้ ถ้าพี่ประกาศ เป็น int, string, bool ก็คือต้อง retrun ค่ากลับไปตามประเภทของมัน เช่น int start() พี่ต้อง return เป็น int หรือตัวเลข bool xxx() พี่ต้อง return เป็น true หรือ false

วิธีแก้ ผมก็ไป return 0 ใน code พี่เพื่อให้ function มันครบตามแบบ error ก็หายไป

จบ