EA Programing => ปัญหาที่พบในการเขียน EA => Topic started by: Luckyking on กันยายน 19, 2009, 09:13:12 am
-
ผมใช้ EA: FPI_wibitiens_v0.2_ModRingandLots.mq4 ทดสอบกับ Demo Account ก็ทำงานได้ตามปกติ แต่ใช้กับ Real Account ,EA ไม่ทำงานครับ ช่วยตรวจสอบและช่วยแก้ไขให้ด้วยครับ ขอบคุณล่วงหน้าครับ
-
ผมอ่าน code แล้วครับไม่มีส่วนไหนที่จะ lock ไมให้ทำงานบน account จริง ครับ ไม่ทราบว่าคุณเล่นบัญชีจริงแบบไหนครับ cent หรือ dollar เพราะผมเห็นมันสั่งชื้อที่เดียว 3 order รวมเป็นจำนวน 7 lot ถ้าเล่นบัญชีแบบ ดอลลาร์ก็ต้องดูว่ามาจิ้นพอไหมแต่ถ้าเล่นแบบ cent แล้วเงินถึงก็ไม่น่าจะมีปัญหานิครับ เพราะผมอ่าน code แล้วไม่มีการ lock account type นะครับ
-
ขอบคุณครับที่ตรวจสอบให้ ผมใช้ Fxopen หน่วยเป็น Cent ครับ เท่าที่ผมทดสอบโดยเปิดโปรแกรม Real Account และ Demo Account คู่เงินเดียวกัน time frame เดียวกัน, Demo Account จะเปิดออเดอร์ทันที แต่ Real Account นิ่งสนิทเลยครับ ถ้ายังไงผมจะลองดูอีกทีครับ :)
-
ทดลองดูแล้วปรากฏตามรูปที่แนบมาครับ Real account จะปรากฏคำว่า Zero Devide ที่(Terminal-->Expert) และ EA ไม่ทำงาน ส่วน Demo Account ทำงานตามปกติครับ ท่านAdmin หาทางช่วยด้วยครับ ผมอยากเทรดเงินจริงครับ
-
ลองดูครับ มันน่าจะรันได้แล้วนะผมไม่ได้ทดลอง account จริงนะครับได้ผลยังไงบอกกันด้วย
-
ทดลองแล้วครับยังติดปัญหาเหมือนเดิมครับท่าน Admin ที่ Real Account ยังปรากฏ Zero Devide ครับ และไม่เปิดออเดอร์ครับ
-
งันนี้ผมคิดว่าใช่ได้หละ แต่จะได้ได้เฉพาะ real นะ demo ไม่น่าจะใช้ได้อีก ได้ผลไงบอกด้วยครับ
-
ขอบคุณมากครับท่าน Admin , Real Account ใช้ได้แล้วครับ ดูไฟล์ที่แนบมาครับ ผมเทรด Real Acc อยู่ถ้ากำไรดีจะมาแจ้งให้ทราบแล้วกันนะครับ ;D
-
จริงๆๆแล้วตัวดังเดิมจะใช้เทรด real ของโบรอื่นที่ไม่ใช่ fxopen ได้แต่ fxopen บัญชี real คู่ของค่าเงินมันมี . อยู่ข้างหลังเช่น GBPUSD ก็จะเป็น GBPUSD. แบบนี้มันเลย error zero divide เพราะมันหาค่าไม่เจอ
-
คุณลักกี้ เป็นไงบ้างครับ แนะนำด้วย
-
EA ตัวนี้มีปัญหาอยู่คือ บางครั้ง เปิด ปิด Order ทั้งหมดไม่พร้อมกัน ต้องเพิ่มเติมให้มีการ วนLoop อีกครั้งในการ เปิด ปิด Order EA ตัวนี้ทำกำไรได้มาก(100%-200% per month) แต่ต้อง Demo ก่อนครับ ปัญหาที่กล่าวมาข้างต้น Admin ท่านน่าจะพอรู้ อยากให้ท่าน Admin ช่วยแก้ไขEA ตามที่แจ้งครับ ผมจะทดสอบอีกครั้งครับ
-
EA ตัวนี้มีปัญหาอยู่คือ บางครั้ง เปิด ปิด Order ทั้งหมดไม่พร้อมกัน ต้องเพิ่มเติมให้มีการ วนLoop อีกครั้งในการ เปิด ปิด Order EA ตัวนี้ทำกำไรได้มาก(100%-200% per month) แต่ต้อง Demo ก่อนครับ ปัญหาที่กล่าวมาข้างต้น Admin ท่านน่าจะพอรู้ อยากให้ท่าน Admin ช่วยแก้ไขEA ตามที่แจ้งครับ ผมจะทดสอบอีกครั้งครับ
ขอถามเพิ่มนิดหนึ่งครับใช่ fxopen ทดสอบหรือเปล่าครับ ถ้าใช้อยากให้เปลี่ยนโบรเกอร์ในการทดสอบก่อนครับเพราะ server ของ Fxopen ค่องข้างที่จะช้าจะมีผลกับการเปิดปิด order เหมือนที่ผมเคยพูดไวอ่ะครับ ถ้าไม่ใช่จะได้มาดูกันต่อเลยอีกทีครับ
-
จริงๆๆแล้วตัวดังเดิมจะใช้เทรด real ของโบรอื่นที่ไม่ใช่ fxopen ได้แต่ fxopen บัญชี real คู่ของค่าเงินมันมี . อยู่ข้างหลังเช่น GBPUSD ก็จะเป็น GBPUSD. แบบนี้มันเลย error zero divide เพราะมันหาค่าไม่เจอ
แล้วของดั้งเดิมใช้โบรกไหนครับจะได้ช่วยทดสอบครับ
;D ;D ;D
-
หลักการทำงานของEA คือ จะเปิดทีละ 3 คู่เงิน(Arbitrage)พร้อมกัน พอได้กำไรตามต้องการก็จะปิดพร้อมกันคับ ผมทดสอบทั้ง Fxopen และ Masterforex เจอปัญหาเหมือนกันเลยครับท่าน Admin การแก้ปัญหาคือให้EA วนLoop ซำเพื่อตรวจสอบว่าคู่เงิน ทั้งตอนเปิดOrder และ ปิด Order ครบทั้ง3หรือไม่ครับ Please................ :-*
-
คุณลักกี้ เล่นอย่างไรครับ ได้เดือนละ 200% เปิดล็อตเท่าไหร่ครับ 4 2 1 ตามนั้นหรือ
ผมเคยเขียน ea ขึ้นมาเอง โดยใช้หลักการ fpi นี่แหละครับ แต่ว่า ขาดทุน เพราะโดน spread กินหมด
ลองแนะนำหน่อย
-
ตามนี้คับ
G/U=1.7 หรือ 2
E/U=1
E/G=1
คุณ Linconz ช่วยmodifyให้EA วนLoop ซ้ำเพื่อตรวจสอบว่าคู่เงิน ทั้งตอนเปิดOrder และ ปิด Order ครบทั้ง3หรือไม่ ได้ไหมคับ ยกตัวอย่างคับ คือเปิด หรือปิด ครั้งแรก แค่ G/U และ E/U แล้วให้ EA ตรวจสอบซ้ำอีกครั้งเพื่อเปิดออเดอร์ E/G แต่ถ้าเปิด หรือปิด ครบสามคู่เงินแล้วก็ให้ผ่านคับ
-
ใช้บัญช๊ Cent นะคับ
Deposit 5000-8000 cent
Leverage 1:500
Time frame m15
EA ตัวนี้ Back test ไม่ได้ เพราะการBack test ทำ3คู่เงินพร้อมกันไม่ได้
-
ผมลองฟอเวิร์สเทสดูแล้วนะครับ ตอนเปิดออเดอร์ มีอยู่ครั้งนึง ที่เปิด แค่ 2 คู่ อีก 1 คู่ ไม่ยอมเปิดซะเฉยๆ เลย กรณีนี้ยังคิดเหตุผลไม่ออกครับ
แต่ดูจากที่คุณ ลัคกี้ เล่ามา ตอนปิดออเดอร์ ก็มีบ้างที่ปิดไม่หมด อันนี้อาจเป็นไปได้ว่า เกิดจาก Slippage ซึ่งไม่มีให้ตั้งค่าในอีเอตัวนี้น่ะครับ ในโคดอาจจะตั้งไว้ น้อยเกินไปครับ 1 หรือ 2 ก็เป็นไปได้ และถ้ากราฟราคาตอนนั้น วิ่งแรงๆ ทำให้ปิดออเดอร์ไม่ได้ เพราะเกิน Slippage ที่อีเอตั้งไว้ ก็เลยรวนครับ
ถ้างั้นต้องมาช่วยกันดูโค้ดแล้วล่ะครับ ว่าเป็นอย่างไร ผมเองก็ยังไม่ได้ดูเลยอ่ะ
-
void CloseAllOpens()
{
int total = OrdersTotal();
for(int i=total-1;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS);
int type = OrderType();
bool result = false;
switch(type)
{
//Close opened long positions
case OP_BUY : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red );
break;
//Close opened short positions
case OP_SELL : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red );
}
if(result == false)
{
Alert("Order " , OrderTicket() , " failed to close. Error:" , GetLastError() );
Sleep(3000);
}
}
ดูจากฟังชั่นในการปิดออเดอร์แล้ว บรรทัดที่เป็นสีแดง มันแปลก ๆ ตรง total-1 เพราะว่า total จะรับค่ามาจาก OrdersTotal() ตามบรรทัดที่เป็นสีเขียว ก็แปลว่า จะต้องมีค่าเป็น 3 (เพราะเปิดออเดอร์ทั้งหมด 3 ออเดอร์)
แล้วทำไมต้องเอาไป ลบ 1 ด้วย ทั้ง ๆ ที่มี i-- อยู่ข้างหลังคอยลดจำนวนอยู่แล้ว ตอนนี้ผมลองเอา -1 ออก แล้ว ฟอเวิร์ดเทสต่อแล้วครับ ได้ผลอย่างไรจะมารายงานต่อนะ ;)
-
เหตุผลที่ต้องเริ่มจาก total-1 เพราะ index ตัวแรกของฟังก์ชั่น orderselect เริ่มจาก 0 แต่ total ที่ได้จากฟังก์ชั่น ordertotal จะเป็นจำนวนนับที่เริ่มจาก 1 ถ้าเราต้องการ เลือกตำแหน่งของ order จากฟังก์ชั่น orderselect ต้อง -1 เสมอครับ
-
ตามนี้คับ
G/U=1.7 หรือ 2
E/U=1
E/G=1
คุณ Linconz ช่วยmodifyให้EA วนLoop ซ้ำเพื่อตรวจสอบว่าคู่เงิน ทั้งตอนเปิดOrder และ ปิด Order ครบทั้ง3หรือไม่ ได้ไหมคับ ยกตัวอย่างคับ คือเปิด หรือปิด ครั้งแรก แค่ G/U และ E/U แล้วให้ EA ตรวจสอบซ้ำอีกครั้งเพื่อเปิดออเดอร์ E/G แต่ถ้าเปิด หรือปิด ครบสามคู่เงินแล้วก็ให้ผ่านคับ
รู้สึกว่าตัว hedding ที่ผมเคยเขียนให้ได้ใส่ฟังก์ชั่นตรวจสอบแบบนี้ลงไปแล้วลองเอามาเป็นแนวทางได้ครับ
-
เหตุผลที่ต้องเริ่มจาก total-1 เพราะ index ตัวแรกของฟังก์ชั่น orderselect เริ่มจาก 0 แต่ total ที่ได้จากฟังก์ชั่น ordertotal จะเป็นจำนวนนับที่เริ่มจาก 1 ถ้าเราต้องการ เลือกตำแหน่งของ order จากฟังก์ชั่น orderselect ต้อง -1 เสมอครับ
อย่างนี้นี่เอง ขอบคุณครับ ความรู้ใหม่ อิอิ ;D
-
ea ตัวหนังสือเป็นสีเทา
แล้วใส่กราฟไม่ได้ครับ
มีข้อความบอกว่า cannot open file
-
ต้อง Compile ก่อนคับ :D
-
ตั้ง Profit เท่าไรครับ 75 หรือเปล่าครับ เปิด 1.7,1,1 75 หรือ 750ครับ
วันนี้ผมลอง 0.2,0.1,0.1 profit 75 โอเคเลย +75 4 ครั้งเลย
เลยสงสัยว่าจริงๆ แล้ว ตั้ง profit เท่าไรถึงจะเหมาะสม
ขอบคุณครับ
-
ต้อง Compile ก่อนคับ :D
ขอความกรุณาไฟล์ที่คอมไพล์แล้วได้ไหมครับ
-
ผมตั้ง
gu = 9.0 lot คือเราจ่าย g 900000 เพื่อได้ 900000x1.6294=1466460 u (จริงๆต้องเป็น 9.055 lot)
eu = 10 lot คือเราจ่าย e 1000000 เพื่อได้ 1000000x1.4758=1475800 u
eg = 10 lot คือเราจ่าย e 1000000 เพื่อได้ 1000000x0.9055=905500 g = 905500x1.6294 = 147542.17 USD
สังเกตุ ค่าเงินทุกตัวจะเท่าๆกัน เป็นการ hedge
ถ้าเปิด แบบคุณลักกี้ ถ้า gu ติดลบ จะขาดทุนน๊ะครับ
ลองเอาที่ผมโมไปใช้ดู ดูว่าปัญหาที่ว่า หมดไปหรือไม่
วันนี้ บ่ายสอง เวลาของ server fxopen ผมหมดพอร์ต กับ ea fpi อืม เป็นไปได้ไงอะ งงมาก
gu กับ eg ลบอย่างละ เก้าพันกว่า แต่ eu กลับไม่บวก งง ดีน๊ะ เป็น demo forward test ไม่ไ้ด้อยู่หน้าคอม 2 วัน
แต่ที่ผ่านมา บวกตลอดเลยน๊ะ ตั้ง profit แค่ 750
มีไรมาแชร์กันครับ หรือมีเทคนิคการเทรดมือ ที่เขียวมากกว่า แดงเรื่อยๆ เอามาบอกได้ ผมจะเขียน ea ให้
-
เปิด โปรแกรม MT4 แล้วไปที่ Tool-->Metaquotes Language Editor จากนั้นเลือก File EA ที่ต้องการ แล้วเลือกคำสั่ง compile คับ
เสร็จแล้วก็ลากไปวางในกราฟได้เลยคับ ;)
-
ขอบคุณคับ ที่ร่วมกันต่อยอดความคิด คุณ Linconz เยี่ยมจิงๆ
ทดสอบ=สำเร็จ
ทดสอบ=สำเร็จ
ทดสอบ=สำเร็จ
ทดสอบ=สำเร็จ
ทดสอบ=สำเร็จ
ทดสอบ=สำเร็จ
ทดสอบ=สำเร็จ
ทดสอบ=สำเร็จ
.
.
.
.
...................................................................................... :o :o :o
-
แ้ก้ไข ตัวที่แล้ว เอา sleep ไว้ผิดที่ ทำให้ปิดออร์เดอร์ ไม่พร้อมกัน
ตัวนี้ปิดพร้อมกัน ผลงานใช้ได้เลยทีเดียว นี่ยังไม่ข้ามวันเลย ได้เกือบ 10 % ของทุนแล้ว แจ๋วๆ
แนะนำนิด
เมื่อเปิด 3 ออร์เดอร์รวมกันแล้ว อย่าให้มากกว่า 30% ของมาร์จิน เพราะบางครั้งมีจังหวะลากยาวๆ ทำให้ลบ กระฉูดเหมือนกัน
แต่ยังไงก็กลับมาบวก
-
แล้วต้องเปิดกราฟทั้งสามคู่หรือเปดคู่เดียวครับ
-
คู่เดียวคับ ลากEAมาวางคู่เงินเดียว คู่ไหนก็ได้คับ
ให้ทดสอบไปเรื่อยๆคับ จะมีข้อบกพร่องอยู่ เดียวหาวิธีแก้คับ :D
-
ขอบคุณครับ
;D ;D ;D
-
ทำไม statement แปลกจัง คุณLuckyking set ยังไงครับ ของผมเปิด sell g/u อย่างเดียว อย่างอื่น buyหมดเห็นใน statement บางชุดมี sell หมด 3 คู่ บางชุดมีbuy e/g sell e/uด้วย ดูเหมือนEAจะเปลี่ยนได้เอง ของผมช่วงบ่าย sell g/u buy e/g e/g ไม่ยอมขึ้น อ่วมเลย :'(
-
หัดเขียน INDY อะ ขำๆ
เอาไปดู เล่นๆ แก้เหงา
-
ผมว่า ea ตัวนี้ เขียนผิดแล้ว หรืออาจจะผิด concept จากเจ้าของระบบ
จริงๆ concept หลัก เจ้าของเค้าต้องการให้ hedding แล้วกินค่าส่วนต่างของ fpi แต่การเปิดของตัวนี้มันไม่เป็นการ hedge สามารถลากลงไปได้
ซึ่ง จริงๆแล้ว ต้องเป็น
sell eu
buy gu
buy eg
e/u = g/u*e/g ------------------------------> e/u = e/u
ไม่ใช่
sell gu
buy eu
buy eg
g/u = e/u *e/g---------------------------------> g/u = (e^2)/ug
ลองเปิด 3 ตัวนี้พร้อมกันแบบแรก จะไม่โดนลากไป จะลบแค่ค่า spread และ fpi
ผมว่าแล้วทำไมผมถึงหมดพอร์ตได้ เพราะมันไม่ได้ hedge กันนี่เอง เราก็สะเพร่าไม่ตรวจโค๊ดก่อน
ไอ้ฝรั่งตาน้ำข้าวก็มั่วเหมือนกัน 555
เล่นแบบนี้เหมือนวััดดวง ไม่บวกเลย ก็ติดดอย
-
คุณ Linconz ช่วยModify ให้ด้วยครับ Please......................... ;D ;D ;D
-
ยังไม่ต้องโมก็ได้ครับ ลองเปลี่ยน ค่า ring1 & ring2 สลับกันดูก่อน แล้วคำนวน lot ให้ได้จำนวนเงินเท่าๆกันด้วย ลองดูก่อน
อย่างที่ผมบอก ผมเคยเขียนแล้ว ค่า spread กินหมด ถ้าถือนาน โดน swap อีกแต่ส่วนมากจะไม่ข้ามวัน ลองดูก่อนครับ
ค่าส่วนต่างของ fpi ระหว่าง เปิดกับปิดก็ประมาณ 0.0003 คุณก็ตั้งเอาแล้วกัน ว่า เท่าไหร่ถึงจะเหมาะสมและมีกำไร
-
Thank U very much... ;D
เดี๋ยวลองคับ :-* :-* :-*
-
หลังจากไปตามอ่านเรื่อง FPI ;) ค่อนข้างเห็นด้วยกับคุณ Linconz
ว่าถ้า hedge แบบนี้ไม่น่าจะ มีกำไรเท่าไร เรื่องคำนวน lot ให้ได้จำนวนเงินเท่าๆกัน ไม่น่าจะยาก
ผมว่าเคล็ดลับน่าจะอยูตรงที่ เงื่อนไขการเปิด order มากกว่า
B,B,B หรือ S,S,S หรือ B,S,S หรือ S,B,B หรือ S,B,S หรือ B,S,B อะไรประมาณนี้ มากกว่า ผมก็ยังสงสัย
อยู่ว่าจะใช้หลักเกณฑ์ อะไรมาวัดว่าจะเปิดอย่างไร จริงไหมครับคุณ Luckyking ;D
-
อ่านมาแล้ว ผมสรุปถูกมั้ยครับ
ว่า EA ตัวนี้ ผิดจากระบบจริง
และหากต้องการแก้ไขให้มันถูกจะทำอย่างไรครับ ^^
-
อืม เค้าวางริงผิดครับ จะทำให้ถูกก็ เปลี่ยน ring ใหม่แค่นั้นก็ได้แล้ว
set LoFPI ใหม่ คุณต้องคำนวนว่า FPI 3คู่ที่คุณจะเล่น ระหว่าง ที่ปิดและเปิดเป็นเท่าไหร่ แล้วก็ดูระยะ สวิง ของ FPI คู่นั้น
ยิ่ง spread มากก็ห่างมาก ระยะสวิงก็ต้องมากไปด้วยถึงจะทำกำไร
การเล่นแบบนี้ก็น่าสนใจ อยู่ที่ความเร็วโบรกด้วยถ้าช้า เราสั่งเปิดไปตอน FPI ต่ำแต่ตอนเปิดจริงๆ อาจจะเคลื่อนมาซัก 5 วิ
แค่นี้ก็ขาดทุนแล้ว ต้องไปลอง demo แบบ ecn ถ้าเข้าทันจริง ก็น่าสนใจ
ผมลองเงินจริงแล้ว กำไรบ้างขาดทุนบ้าง เพราะอะไร เพราะโหลด bit อะดิ เปิดออร์เดอร์ช้ากว่าที่คำนวนได้ อิอิ ไม่น่าเลย
-
อืม เค้าวางริงผิดครับ จะทำให้ถูกก็ เปลี่ยน ring ใหม่แค่นั้นก็ได้แล้ว
set LoFPI ใหม่ คุณต้องคำนวนว่า FPI 3คู่ที่คุณจะเล่น ระหว่าง ที่ปิดและเปิดเป็นเท่าไหร่ แล้วก็ดูระยะ สวิง ของ FPI คู่นั้น
ยิ่ง spread มากก็ห่างมาก ระยะสวิงก็ต้องมากไปด้วยถึงจะทำกำไร
การเล่นแบบนี้ก็น่าสนใจ อยู่ที่ความเร็วโบรกด้วยถ้าช้า เราสั่งเปิดไปตอน FPI ต่ำแต่ตอนเปิดจริงๆ อาจจะเคลื่อนมาซัก 5 วิ
แค่นี้ก็ขาดทุนแล้ว ต้องไปลอง demo แบบ ecn ถ้าเข้าทันจริง ก็น่าสนใจ
ผมลองเงินจริงแล้ว กำไรบ้างขาดทุนบ้าง เพราะอะไร เพราะโหลด bit อะดิ เปิดออร์เดอร์ช้ากว่าที่คำนวนได้ อิอิ ไม่น่าเลย
ขอบคุณมากครับ ที่มาให้ความกระจ่าง ^^
-
ดูไม่ได้ครับ เอาขึ้น MT4LIVE ได้ไหมครับ
-
แจ๋วครับ แต่ดูแล้วยัง งงๆ ;D
-
ปรับแก้ Lot Size สามคู่เงิน แค่นั้นครับ เพื่อทำให้เกิดความไม่สมดุล คือจะมีจังหวะติดลบและจังหวะบวก แต่ไม่ลากยาว จะปิดทำกำไรตอนบวกครับ
-
ถ้า g/u มันวิ่งลงเราจะขาดทุนหรือป่าวครับ
-
ดูทีห้อง VIP ครับ
-
ปิดทำกำไรแล้วครับ ;D ;D ;D
-
ผมเห็นมี swap เกือบทุกตัว แสดงว่าข้ามคืนเลยใช่ไหมครับ
ถ้าเล่นเงินจริงไม่อยากเสีย swap ต้องหาโบรคที่ ไม่มีค่า swap หรือป่าวครับ เพราะเท่าทีดู swap ติดลบนิ
-
ถูกต้องครับ
ตอนนี้ผมทดสอบกับสองโบรกเกอ เพื่อดูการทำงานของ Sever Broker จะมีผลอย่างไรบ้างกับการเปิดปิดออเดอ สามคู่เงิน จากการทำงานของอีเอ
-
ผมว่าน่าจะยังสรุปไม่ได้นะตอนนี้
เพราะตัวที่ lot มากสุด คือ GU = 0.5
ซึ่งมันจะบายตลอด และพอดีกับที่เทรนของมันเองเป็นขาขึ้น
ต้องรอดูตอนที่ GU เป็นขาลง ว่ามันจะเกิดอะไรขึ้น
เท่าที่ผมดูยังไม่มีกรณีที่ปิดกำไรแล้วในชุดนั้น GU เป็นลบเลยย
-
แล้ว Ea ตัวนี้เป็นอย่างไร บ้างแล้วครับ ใช้ได้รึป่าว เงียบหายกันเลย :o