EA Programing => ปัญหาที่พบในการเขียน EA => Topic started by: pal on สิงหาคม 22, 2009, 06:02:48 am

Title: ช่วยโม ตัวนี้หน่อยครับ
Post by: pal on สิงหาคม 22, 2009, 06:02:48 am
พอดีได้ตัวนี้มา น่าสนใจ แต่ไม่เข้าใจโค้ดเลย  ;D
ผมไม่แน่ใจเกี่ยวกับ shell32 ที่แนบมาด้วยเพราะเครื่องผมมีอยู่แล้ว พยายามจะลงทับก็ไม่ได้
ตัวนี้ Base on neural network
1.พยายามทำ Optimization ไม่สำเร็จ ดูเหมือนถ้าไม่ติก Opt จะเปิด xcopy ถ้าติกopt จะได้ แต่ไม่ส่งค่าออกไปเก็บ ที่ folder termtest ที่สร้างใหม่ขึ้นมา ไม่แน่ใจว่าจะเกี่ยวกับ optlogin กับ optpassword หรือเปล่า
2.ถ้าเป็นไปได้น่าจะ ทำให้ใช้กับ Real Account ได้ หรือลบส่วน login password ออก
3.อยากให้ admin copy หรือเขียน ea ตัวนี้ขึ้นมาใหม่ เพราะว่าneural network น่าสนใจ พอเราทำoptimization แล้วเลือก best result เหมือนกับเราปลี่ยนกลยุทธ์ทุกวัน น่าจะทำให้พวกเราอยู่ในตลาดได้ในระยะยาว  ;)
ขอบคุณครับ
Title: Re: ช่วยโม ตัวนี้หน่อยครับ
Post by: admin on สิงหาคม 22, 2009, 02:05:01 pm
ผมลองดูคราวๆๆแล้วก็รัน backtest ไม่ได้เหมือนกัน แต่ code ผมดูแล้วก็พอแก้ไขได้แต่ปัญหาติดตรงที่ผมไม่ทราบว่ามันมีหลักการทำงานยังไง อ่ะครับพอบอกได้ไหม ส่วน shell32.dll อันนั่นเท่าที่ดู Ea เรียกใช้ api ของ windows ตัว shell32 น่าจะเป็นการระบุถึงตำแหน่งไฟล์หรือตำแหน่งไดเรกทอรี่นี้หละครับ ถ้าผมว่างจะดูให้ละเอียดอีกที แต่ปัญหาคือผมไม่ทราบว่า ea นี้ทำงานยังไงครับพอบอกคราวๆๆได้ไหมเพื่อที่จะไม่เสียเวลานั่งไล่ code มากครับ
Title: Re: ช่วยโม ตัวนี้หน่อยครับ
Post by: pal on สิงหาคม 22, 2009, 03:42:36 pm
เท่าที่ผมรู้ คือ Ea พวกนี้ จะมีหลักการทำงานคือ ต้องทำ optimazation ก่อน เพื่อที่จะให้ได้ผลการเทรด หรือค่าบางค่าที่ดีที่สุด ประมาณว่าเอาไปคำนวณด้วยหลักการของพวก neural network predict อนาคตออกมา แล้วเอาผลที่ได้มาคำนวณรวมกับผลปัจจุบัน แล้วเอาผลที่ได้มาใช้ในการเทรด เท่าที่ผมดู ea พวกนี้ส่วนมากจะใช้ AC indy ไม่เข้าใจเหมือนกันครับ ลองดูอันVerใหม่นี้แล้วกันครับ ผมเพิ่งหาได้วันนี้เอง  เขาว่าไม่ต้อง ทำ opt แล้ว โปรแกรมจะทำให้เองเลย link นี้ https://intrepidfs.com/phpbb/viewforum.php?f=18 เป็น support ของเขาที่ใช้ในการพัฒนาครับ

ขอบคุณมากครับ
Title: Re: ช่วยโม ตัวนี้หน่อยครับ
Post by: admin on สิงหาคม 22, 2009, 06:38:19 pm
ครับผมไปอ่านเวบที่ให้มาแล้วครับ แต่ก็ยังทำ backtest ไม่ได้เดียววันจันทร์ผมจะลองกับ demo ดูครับแล้วคุณอยากให้ช่วย โม ตรงไหนหรอครับ
Title: Re: ช่วยโม ตัวนี้หน่อยครับ
Post by: pal on สิงหาคม 23, 2009, 08:48:54 am
1.แก้ไขหรือลบ ส่วนที่ตรวจสอบ login password ออก ให้ใช้ได้กับ real account
2.ขบวนการ opt จะทำอย่างไร ผมไม่ค่อยเข้าใจ ถ้าเป็นไปได้ อยากให้เพิ่มส่วนนี้หน่อยครับ แบบว่ามีช่องสำหรับติกเพื่อทำ opt โดยเฉพาะ ทำเป็น manual จะได้ไม่ต้องรอ โปรแกรมทำให้ เพราะเราไม่รู้ว่า โปรแกรมทำถึงขั้นตอนไหนหรือไม่ได้ทำ
3.ตัดส่วนที่ไม่จำเป็นออก เท่าที่จะทำได้ หรือทำใหม่โดยใช้วิธีการของเขา เพื่อหลีกเลี่ยงเรื่อง ลิขสิทธิ์
เพิ่มเติม เท่าที่ผมรู้ หลักการneual nerwork ส่วนใหญ่จะทำเหมือนกันหมดเริ่มจาก
export Data ข้อมูลออกไป
เอาข้อมูลที่ได้ไป Adj น่าจะประมาณเตรียมข้อมูล
เสร็จแล้วนำไป train ตามสมการ พวก neural เช่นพวก pnn,fann แล้วแต่ใครจะใช้ แล้วเขียน file ออกมา เป็น พวก .net
เสร็จแล้วก็นำ File ที่ได้ ไปทำเป็นพวก file image เพราะเขาบอกว่าถ้า ทำเป็น .net ขนาดจะใหญ่มากเพราะ ข้อมูลที่เขานำมา train ส่วนใหญ่จะใช้ 10,000 record
เสร็จแล้วก็นำ import file image มาใช้ ขบวนการจะประมาณนี้แหละครับ ผมไม่ใช่ โปรแกรมเมอร์ เลยไม่เข้าใจวิธีการเขียน ถ้าพวก EA ธรรมดาก็พอได้
ขอบคุณมากครับ
Title: Re: ช่วยโม ตัวนี้หน่อยครับ
Post by: pal on สิงหาคม 23, 2009, 09:06:00 am
link เขาโชว์ผลงานเขาครับ
http://www.youtube.com/watch?v=XvJAmV70WKw
ที่ผมสนใจเรื่องนี้เพราะว่า เห็นพวกฝรั่งเขาสนใจกันมาก เลยอยากจะมีกับเขาบ้าง ;D
http://www.forex-tsd.com/expert-advisors-metatrader-4/11096-better-nn-ea-development.html   link นี้ที่พวกฝรั่งเขาสุมหัวกันแล้วผมไปอ่านเจอ
http://championship.mql4.com/2007/news/303
http://championship.mql4.com/2007/users/Better/
2 link นี้เป็นคนต้นเรื่องเพราะตอนที่เขาแข่งชนะเขาใช้ระบบนี้ ยอดเงินที่เขาชนะ $130,475
ตอนนี้ไปเปิด Web เองแล้วไม่ได้ขาย Ea แต่รับบริหาร port โดยใช้Ea ของเขา ดูเหมือนจะรุ่งเรืองน่าดู
ที่เล่าให้ฟังหลายอย่าง เผื่อจะจุดประกายให้ admin มาสนใจพวกนี้ เพราะผมคิดว่าต่อไป trend ของ ea จะไปทางนี้หมด เราน่าจะเริ่มศึกษากันบ้าง
ขอบคุณครับ
Title: Re: ช่วยโม ตัวนี้หน่อยครับ
Post by: admin on สิงหาคม 24, 2009, 12:02:09 pm
คุณ pal ครับวันนี้ผมลอง demo แล้วมันไม่ชื้อขายให้ผมเพราะผมเห็นมันมีให้กรอกพวก user และ serials ด้วย สงสัยผมต้องแกะ code แล้วครับใช้เวลานิดนึงนะครับ
Title: Re: ช่วยโม ตัวนี้หน่อยครับ
Post by: phanom on สิงหาคม 24, 2009, 12:50:59 pm
ผมก็ลองแล้ว
ไม่เปิดออเดอร์เลยเหมือนกัน
รอด้วยครับ  ;D
Title: Re: ช่วยโม ตัวนี้หน่อยครับ
Post by: Protector on สิงหาคม 24, 2009, 01:58:53 pm
มารอติดตามด้วยคนครับ ช่วงนี้กำลังเปลี่ยนแนวจากเทรดเอง 100% มาสนใจ EA ดีๆมากขึ้น
Title: Re: ช่วยโม ตัวนี้หน่อยครับ
Post by: pal on สิงหาคม 24, 2009, 05:46:13 pm
ขอบคุณครับ   ;)
จริงด้วยแฮะมีคนบอก admin ที่นี่ใจดี   ;D
Title: Re: ช่วยโม ตัวนี้หน่อยครับ
Post by: thanarat27 on สิงหาคม 26, 2009, 09:09:59 pm
ปกติการทำให้ใช้กับ Real Account ได้เนี่ย ผมชอบใช้วิธี หาคำสั่งดัก อย่างเช่น อีเอ ตัวที่ จขกท. แนะนำมา ดังนี้ครับ

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

if (serial != CheckSerial()) {
      oclr = Red;
      omsg = "Invalid Serial Key";
      UpdateStatus();
      return (0);
   }

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

แก้ตรงสีแดงให้เป็น == นะครับ ก็น่าจะใช้ได้เอง

แล้วที่ Name = ........ กับ serial = .......... ในส่วนของ extern ให้ใส่ ชื่อกับเลขอะไรไปก็ได้

เพราะผมลองมาตรวจวิธีการ Gen Serial ของเค้า ค่อนข้างยุ่งยาก เลยขี้เกียจแกะครับ

ผิดพลาดอย่างไรช่วยแนะนำด้วยนะครับ

ผมก็ยังไม่ได้ลองนะครับ แต่น่าจะช่วยได้บ้าง  ;D

ปล. อย่าลืม เปลี่ยน UseLots = 0.0 ให้เป็น lot ที่ท่านต้องการเปิดออเดอร์ด้วยนะครับ ไม่งั้น มันไม่ทำงานครับ
Title: Re: ช่วยโม ตัวนี้หน่อยครับ
Post by: thanarat27 on สิงหาคม 26, 2009, 09:30:43 pm
น่าแปลกตรงที่ จริง ๆ อีเอตัวนี้ ไม่ต้องไปแก้ตรงที่เค้าดักแ้ล้วน่ะครับ

   if (serial != CheckSerial()) {   
      oclr = Red;
      omsg = "Invalid Serial Key";
      UpdateStatus();
      return (0);
   }
   if (Month() >= 8 && Year() > 2099) //ผม admin แก้ให้มันใช้ได้ไปเลยครับ board ผมเองไม่มีกฏว่าต้องปกปิด code{
      oclr = Red;
      omsg = "Software Expired -- Please Update";
      UpdateStatus();
      return (0);
   }

แต่มาแก้ตรง วันที่หมดอายุแทนครับ

ถ้าแก้ถูก มันจะแสดงเป็น Status: Waiting on trend

นอกนั้นก็ขึ้นอยู่กับการปรับแต่งของแต่ละคนแล้วล่ะครับ

ลองดูนะครับ

(ถ้าหากว่าการเอาโคดมาเผยในที่สาธารณะเป็นการผิดกฏของบอร์ด ขอให้ท่านแอดมิน แก้ไขหรือลบให้ผมทีนะครับ ขออภัยล่วงหน้าครับ)
Title: Re: ช่วยโม ตัวนี้หน่อยครับ
Post by: thanarat27 on สิงหาคม 26, 2009, 10:35:50 pm
คุณ pal  ครับ คุณมี ไฟล์ เทมเพลต ตามลิงค์นี้หรือเปล่าครับ

http://intrepidfs.com/drupal/?q=node/55

ถ้ามีช่วยโพสท์ให้ผมทีครับ อยากรู้ว่าใช้แล้วจะเป็นยังงัย  ;D

ขอบคุณครับ
Title: Re: ช่วยโม ตัวนี้หน่อยครับ
Post by: admin on สิงหาคม 27, 2009, 02:32:26 am
ของคุณ คุณ thanarat27 ที่เข้ามาช่วยตอบผมเองลืมกระทู้นี้ไปเลยกำลังวุ่นเรื่อง server รัน ea ของเวบ อยู่ แบบที่คุณ thanarat ว่าก็

ถูกครับแต่ที่นี้มีส่วนที่ผมอยากจะ เสริมนิดหน่อยตรงส่วนสร้าง serial ของโปรแกรมนี้ครับ  รู้ไหมครับว่ามีส่วนที่ผมสงสัยอยู่ว่า decompiler ทำงาน

ผิดพลาดในส่วนของ ฟังก์ชั่น ChechSerial หรือมีคนที่แก้เรื่อง serial มาแล้วก่อนที่คุณ pal จะไปเจอ
string CheckSerial() {  //อันนี้เป็นฟังก์ชั่นตรวจสอบ serial ของมัน
   string ls_0;   // สร้างตัวแปร string มาเพื่อใช้เก็บตัวอักษร
   string ls_8 = "NN5";  // สร้างตัวแปร string เก็บค่า NN5 เอาไว

   for (int li_16 = 0; li_16 < StringLen(Name); li_16++) // ใช้ loop โดยมีเงื่อนไขให้วนรอบเท่ากับความยาวของ

ชื่อเรา StringLen ไวหาความยาวของข้อความ
{
      ls_0 = StringGetChar(Name, li_16); // ใช้ตัวแปรเก็บค่าอักษรที่ละตัวแต่ค่าที่คืนออกมาเป็นรหัสแอสกี
      ls_8 = ls_8 + ls_0; // เป็นการเอา string ที่ได้แต่ละตัวมาบวกเค้ากับ NN5 บวกไปจนกว่าจะครบความยาวของชื่อเรา
   }
   return (StringSubstr(serial, 0, 13)); //ตรงนี้หละครับที่ผิดพลาด Decompiler ใช้ ls_8 เป็นตัวแปรแทนคำว่า

serials มาตลอดแต่พอเจอตัวแปร serial ในฟังก์ชั่นนี้กลับไม่ยอมเปลี่ยนหรืออาจจะมีคนแก้มาแล้วครั้งหนึ่งก่อน  จึงทำให้ฟังก์ชั่นนี้คือค่า serial ที่เราเป็นคนกรอก

เรากรอกอะไรลงไปก็ผ่านหมด ที่นี้หาเราแก้ไขเป็นแบบนี้แทนหละ
 return (StringSubstr(ls_8, 0, 13)); //ที่นี้หละระบบ gen serial ก็ทำงานหละครับ  ใครอยากทดสอบ อัลกอรึทิม ของคน

เขียน ea ว่าคิดแบบผมไหมก็ให้ลอง ใส่ name ว่า a ลงไปแล้วใส่ serial ลงไปว่า NN597  หรือพิมพ์ b ลงไปในช่อง name

จะต้องใช่ serial ว่า NN598 แต่หากเราใส่ name ลงไปว่า aa เราต้องใช้ serial คือ NN59797 เพราะจาก loop เราเห็นว่า

มันบวกแอสกีเพิ่มต้องท้ายไปหลัง NN5 เสมอ แต่ถึงแม้ว่าชื่อเราจะยาวมาแค่ไหนก็ตามแต่ รหัส serial จะเอาแค่ 13 ตัวครับ

โดยจะเริ่มจาก NN5 + รหัสแอสกีที่เปลมาจากชื่อตัวเองอีก 10 ตัวเสมอครับ  ที่นี้หละครับหาก EA ตัวนี้ออก version ใหม่มาเราก็ทำ key Gen แจกกันสนุกมือเลยหละถ้าเค้าจะไม่เปลี่ยนอัลกอริทิมในการสร้าง serial นะครับ
Title: Re: ช่วยโม ตัวนี้หน่อยครับ
Post by: thanarat27 on สิงหาคม 27, 2009, 07:28:09 am
ได้ความรู้ดี ๆ อีกแล้วครับ ขอบคุณมาก ๆ เลยครับ  :D
Title: Re: ช่วยโม ตัวนี้หน่อยครับ
Post by: pal on สิงหาคม 27, 2009, 08:06:40 am
ขอบคุณทุกคนครับ  ;)
ผมมีแต่ ea ครับ ไม่มี templates ครับ นั่งอ่านโค้ดดูแล้ว ไม่รู้เหมือนกันว่าโดนหลอกหรือเปล่า ไม่เห็น function สำหรับ train เลย ดูเหมือนจะใช้ ac หลายๆ เวลา มาเช็ค trend แล้วใช้ sma+alligator+fractals มาใช้ แต่ก็ลองดูครับ ยังไม่รู้เหมือนกันว่าจะดีหรือเปล่า
แทนคำขอบคุณมีของใหม่มาให้ลองครับ
ว่ากันว่า ea ตัวนี้เป็นของ champ ปี2007 ไม่รู้จริงหรือเปล่า  ;D
ใช้กับ m1 ทีนี้ก่อนใช้ ทำ opt ก่อน (ผมโพสรูปไม่เป็น)  :'(
ไปที่ expert properties แล้วติกถูก ตรง warp,divation,amtitude,distortion,sl_long,sl_short
ตรงช่อง start ให้เริ่มจาก 0 แล้วก็รอจนเสร็จ  พอเสร็จแล้ว ก็ไปตรงช่อง results แล้วก็เลือก ตามใจชอบ ดับเบิลคลิกเลย แล้วลอง test ดูว่าชอบหรือเปล่า ถ้าไม่ชอบก็กลับไปเลือกใหม่ เสร็จแล้วก็ save .set เอาไว้เรียกใช้ หลักการเดียวกับพวก neural ทั้งหลายเพียงแต่เราเป็นคนคิดเองว่าแบบไหนเหมาะกับเรา
ผมว่า ea ที่ผลงานไม่ค่อยดี ลองเอามาทำแบบนี้ บางทีอาจจะหาค่าที่ดีที่สุดออกมาได้ ลองดูครับ ผมก็อ่านของพวกฝรั่งเขามาอีกที  ;D
Title: Re: ช่วยโม ตัวนี้หน่อยครับ
Post by: thanarat27 on สิงหาคม 27, 2009, 09:31:01 am
ขอบคุณครับสำหรับอีเอและเทคนิคดี ๆ ถ้างั้นเอาเทคนิคการโพสท์รูปแลกกันนะครับ  :D