|
Post by Xa Em on Jun 2, 2016 14:37:52 GMT 7
กำลัง งง หลายๆๆ อย่าง ปัญหาเกิดขึ้นเรื่อยๆ สู้ๆๆ Attachments:
|
|
|
Post by iamgotzaa on Jun 2, 2016 15:55:54 GMT 7
สุดยอดครับ แนว hedging แน่ๆ ดูจากภาพ
|
|
|
Post by iamgotzaa on Jun 2, 2016 16:01:24 GMT 7
ผมขอแนบไฟล์ ที่เคยทำไว้เผื่อเป็น แนวทาง เผื่อว่าจะเป็นการกระตุ้นการสนทนาเลยการเรียนรู้ได้อีกเยอะ ชื่อ ea ว่า "replica" พอดีผมต้องการ reverse engineering ea ตัวนึงของ mql5 ที่เค้าขายกันราคา 799$ นามว่า "MicroBot" เค้าโฆษณาว่า 10 ปี backtest ไม่เคยไม่ผ่าน แต่รันเฉพาะ EU ลองไปเสิร์ชหาดูได้ ที่นี้ผมก็ลองโหลดเดโม่มาลองเขียน ได้ประมาณไฟล์แนบนี้ ต้องเอาไฟล์สองตัวไว้ใน include folder ด้วย จานดราก้อน ลองเอาไปเปิดดูได้เป็น function ที่ผมเขียนทิ้งไว้ แล้วใช้งานบ่อยมากๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆ #include <SmallFunc.mqh> #include <LastOrder.mqh> ท่านดราก้อนลองทดสอบได้ //+------------------------------------------------------------------+ //| bb.mq4 | //| iamgotzaa | //| http://a7a8zz.blogspot.com/ | //+------------------------------------------------------------------+ #property copyright "iamgotzaa" #property link "http://a7a8zz.blogspot.com/" #property version "1.00" #property strict
#include <SmallFunc.mqh> #include <LastOrder.mqh>
input int stopdist=30; bool once_buy; bool once_sell; input double risk=1.0; int barh1; bool newh1; double cal_lot_size; double execute_lot_size; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //---
//--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //---
} //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- double red1=iCustom(Symbol(),60,"Fractals",0,2); double blue1=iCustom(Symbol(),60,"Fractals",1,2);
double red2=iCustom(Symbol(),240,"Fractals",0,2); double blue2=iCustom(Symbol(),240,"Fractals",1,2);
newh1=false; if(iBars(NULL,240)>barh1) { newh1=true; barh1=iBars(NULL,240); } if(newh1) { once_buy=true; once_sell=true; } cal_lot_size=AccountEquity()*risk/100/stopdist*Point*100000; cal_lot_size=NormalizeDouble(cal_lot_size,2); //if(Bid>hpx(60,4) && once_buy==true) if((red1>0 || red2>0) && once_buy==true && order_count2(0,OP_BUYSTOP)<2) { double op=0; if(red1!=0) op=red1; if(red2!=0) op=red2;
if(op>Bid) { int t=OrderSend(NULL,OP_BUYSTOP, cal_lot_size,op,2,op-stopdist*Point,0,NULL,0,TimeCurrent()+5*24*60*60); once_buy=false; } while(IsTradeContextBusy()){Sleep(100);} } //if(Ask<lpx(60,4) && once_sell==true) if((blue1>0 || blue2>0) && once_sell==true && order_count2(0,OP_SELLSTOP)<2)
{ double op=0; if(blue1!=0) op=blue1; if(blue2!=0) op=blue2;
if(op<Ask) { int t=OrderSend(NULL,OP_SELLSTOP, cal_lot_size,op,2,op+stopdist*Point,0,NULL,0,TimeCurrent()+5*24*60*60); once_sell=false; } while(IsTradeContextBusy()){Sleep(100);} }
int buyticket=get_last_order(0,OP_BUY); int sellticket=get_last_order(0,OP_SELL);
if(OrderSelect(buyticket,SELECT_BY_TICKET)) { //stoplosswheelbarrel(buyticket,30*Point,15*Point); if(OrderSelect(buyticket,SELECT_BY_TICKET)==true) {
if(Bid-OrderOpenPrice()>20*Point) { double newstop=OrderStopLoss()+0.1*(Bid-OrderOpenPrice()); newstop=NormalizeDouble(newstop,Digits); if(newstop>OrderStopLoss()) { int mod=OrderModify(OrderTicket(),OrderOpenPrice(), newstop,OrderTakeProfit(), OrderExpiration(),clrYellow); } } } }
if(OrderSelect(sellticket,SELECT_BY_TICKET)) { //stoplosswheelbarrel(sellticket,30*Point,15*Point); if(OrderOpenPrice()-Ask>20*Point) { double newstop=OrderStopLoss()-0.1*(OrderOpenPrice()-Ask); newstop=NormalizeDouble(newstop,Digits); if(newstop<OrderStopLoss()) { int mod=OrderModify(OrderTicket(),OrderOpenPrice(), newstop,OrderTakeProfit(), OrderExpiration(),clrYellow); } } }
Comment(cal_lot_size); } //+------------------------------------------------------------------+ //| ChartEvent function | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { //---
} //+------------------------------------------------------------------+
Attachments:replica.mq4 (4.69 KB)
LastOrder.mqh (77.2 KB)
SmallFunc.mqh (66.57 KB)
|
|
|
Post by Xa Em on Jun 2, 2016 16:56:51 GMT 7
ขอบคุณมากครับ อิอิ เป็นแนวอีกแล้ว
|
|
|
Post by Xa Em on Jun 2, 2016 17:15:26 GMT 7
ของเก่ายังไม่เครีย ของใหม่มาอีก เอาๆๆ สู้ๆๆละ
|
|
|
Post by Xa Em on Jun 2, 2016 17:32:06 GMT 7
อาจารย์ลืมแนบไฟล์ อินดี้ มาให้ครับ Fractals
|
|
|
Post by iamgotzaa on Jun 2, 2016 19:22:44 GMT 7
อาจารย์ลืมแนบไฟล์ อินดี้ มาให้ครับ Fractals ลองดูที่โครงสร้างโปรแกรมนะครับ ลองเปลี่ยนเป็นiFractal ก็ได้ครับ ของ mt4 อยู่แล้ว
|
|
|
Post by Xa Em on Jun 2, 2016 21:12:45 GMT 7
หาได้แล้วครับ ลอง Test ดู ระบบดีครับ test 1 ปี ผ่านเลยครับ กำไร เน้น เดี่ยวเอาไปเป็นแนวทางครับ
|
|
|
Post by iamgotzaa on Jun 3, 2016 8:25:19 GMT 7
หาได้แล้วครับ ลอง Test ดู ระบบดีครับ test 1 ปี ผ่านเลยครับ กำไร เน้น เดี่ยวเอาไปเป็นแนวทางครับ อัยยะ เอาไปเทสกับ คู่ไหนครับ กำไร? ผมเทสมีแต่หมดตัว โชว์หน่อยจิ
|
|
|
Post by Xa Em on Jun 3, 2016 8:26:45 GMT 7
แปปครับ เดี่ยวเอามาโชว
|
|
|
Post by Xa Em on Jun 3, 2016 8:31:39 GMT 7
ผมกำลัง Optimization ตั้งแต่เมื่อวานยังไม่เสร็จเลยครับ ดูค่าคราวๆ ไปก่อน ใช้คู่เงิน EURUSD Attachments:
|
|
|
Post by Xa Em on Jun 3, 2016 8:43:03 GMT 7
อันนี้ที่ลอง Test ดูครับ 1 ปี 1 ม.ค. 58 - 31 ธ.ค. 58 Attachments:
|
|
|
Post by Xa Em on Jun 3, 2016 11:46:21 GMT 7
อาจารย์ครับ อยากรู้คราวๆ ว่า ฟังชัน สองตัวนี้มันมีหน้าที่อะไรบ้างครับ ผมชอบครับ แต่มี error 130 อยู่ ผมกำลังแก้ให้อยู่ครับ
LastOrder.mqh
SmallFunc.mqh
|
|
|
Post by Xa Em on Jun 3, 2016 12:22:26 GMT 7
อันนี้ผมแก้เรื่อง lost Max_lost มันเกิน มันจะไม่ออกออเดอ ผมว่ามันแปลกๆๆ ทำไมมันเกินไปป่าว Attachments:
|
|
|
Post by iamgotzaa on Jun 3, 2016 13:41:21 GMT 7
อาจารย์ครับ อยากรู้คราวๆ ว่า ฟังชัน สองตัวนี้มันมีหน้าที่อะไรบ้างครับ ผมชอบครับ แต่มี error 130 อยู่ ผมกำลังแก้ให้อยู่ครับ LastOrder.mqh SmallFunc.mqh 130 invalid stop บางทีมันมี ระยะต่ำสุดที่ให้วาง stop ได้ MarketInfo(Symbol(),MODE_STOPLEVEL) บางทีมันมี order lot invalid ก็พวก ขนาดล๊อตผิดน่ะครับ ทศนิยม lot มากเกินไป มันให้แค่ 1 หรือ 2 ตำแหน่ง เพราะฉะนั้น lot 0.1059 อะไรอย่างงี้ไม่ได้ ขนาดเล็กไป เกิน MODE_MINLOT, MODE_MAXLOT ขนาดใหญ่ไป
|
|
|
Post by iamgotzaa on Jun 3, 2016 13:44:02 GMT 7
ใน
LastOrder.mqh
SmallFunc.mqh
ลองไฟล์นี้ก็มีพวก function น่ะครับ เช่น นับจำนวนออเดอร์ โมดิฟายออเดอร์ ส่งออเดอร์ ที่ผมต้องเรียกใช้บ่อยๆ นับล๊อต หา breakeven
|
|
|
Post by Xa Em on Jun 3, 2016 13:47:51 GMT 7
55555555 กำลังหา อยู่ครับ ยังไม่เจอ
|
|
|
Post by iamgotzaa on Jun 3, 2016 13:50:54 GMT 7
|
|
yuth
New Member
Posts: 7
|
Post by yuth on Jun 5, 2016 23:11:08 GMT 7
ขขอถามหน่อย ครับ...ผมจะลองหัดเขียน EA นะครับ ผมลองเอา Code ไป compile ผ่านหมดแล้วครับ...ลง Indicator ครบแล้ว... แต่ลองรัน Backtest แล้วมีการเปิดออเดอร์ เยอะมาก แต่ไม่มีการ TP ไม่ทราบเกิดจ่กอะไร หรือ ต้องเพิ่มโค๊ด ตรงไหนมั๊ยครับ แล้วไม่ทราบจะขอ Code ที่คุณ goddragon99 ลอง Backtest มาลองรันดูหน่อยได้มั๊ยครับ StrategyTester.htm (148.25 KB)
|
|
|
Post by iamgotzaa on Jun 6, 2016 16:08:56 GMT 7
ขขอถามหน่อย ครับ...ผมจะลองหัดเขียน EA นะครับ ผมลองเอา Code ไป compile ผ่านหมดแล้วครับ...ลง Indicator ครบแล้ว... แต่ลองรัน Backtest แล้วมีการเปิดออเดอร์ เยอะมาก แต่ไม่มีการ TP ไม่ทราบเกิดจ่กอะไร หรือ ต้องเพิ่มโค๊ด ตรงไหนมั๊ยครับ แล้วไม่ทราบจะขอ Code ที่คุณ goddragon99 ลอง Backtest มาลองรันดูหน่อยได้มั๊ยครับ View AttachmentView Attachmenttest ที่ tf m1 หรือครับ เอ ไม่แน่ใจ ว่าถูก ท่านดราก้อนว่าไง? Xa Em
|
|
|
Post by Xa Em on Jun 6, 2016 16:32:43 GMT 7
ลองดูครับ Fractals เอาไว้ใน อินดิ replica เอาไว้ใน Expert ลอง ตั้ง ค่า 35 / 3 Attachments:fractals.mq4 (7.19 KB)
replica.mq4 (4.76 KB)
|
|
|
Post by Xa Em on Jun 6, 2016 16:39:36 GMT 7
แกโค๊ดด้วยครับ ผมลืม ไฟล์ EA replica.mq4 แล้วคอมไฟลใหม่นะครับ ตามรูป เพิ่มคำสั่งเข้าไป Attachments:
|
|
|
Post by Xa Em on Jun 6, 2016 16:40:21 GMT 7
TF m1 ครับ ลองกับ EURUSD ก่อนนะครับ
|
|
|
Post by Xa Em on Jun 6, 2016 16:45:02 GMT 7
ที่ผม แก้คือ ถ้า Lots Size เกิน 10 มันจะออก Buy Stop / Sell Stop ไว้เฉยๆ ครับ มันไม่ได้ออก อ๋อเด่อครับ เพราะ Lots 33.33 มันออกไม่ได้ Attachments:
|
|
|
Post by Xa Em on Jun 6, 2016 17:26:52 GMT 7
ไฟล์นี้สมบูณแบบเลย จัดไป คอมไฟลเรียบร้อยแล้ว ยังไม่ได้แก้ Error 130 เอาไว้ที่หลังแล้วกันครับ Attachments:
replica.mq4 (4.85 KB)
|
|
|
Post by Xa Em on Jun 6, 2016 17:27:54 GMT 7
ถ้าได้ตามนี้นะ โบนัสสิ้นปีเลยครับ มันเป็นแค่ การ BT นะครับ ถ้า TEST จริงๆ ต้องปล่อย Demo ทั้งปีเลย
|
|
yuth
New Member
Posts: 7
|
Post by yuth on Jun 6, 2016 22:46:59 GMT 7
ขอบคุณ goddragon99 มากนะครับ....เดี๋ยวผมลองศึกษาดู...ถือว่าเป็น EA ตัวแรกเลยครับ..ที่ผมจะเริ่มเรียนรู้ ศึกษาวิธีการเขียน EA ครับ
|
|
|
Post by iamgotzaa on Jun 6, 2016 23:21:49 GMT 7
ท่านทั้งหลาย เอาไปลอง gu สิ....
นรก
|
|
|
Post by Xa Em on Jun 7, 2016 12:20:40 GMT 7
ใช้ไม่ได้กับ USDJPY นะครับ ต้องแก้โค๊ดใหม่ Lots มันเยาะเกิน อันนี้ ทดสอบมา สองวันครับ มี EURUSD AUDUSD NZDUSD GBPUSD จาก 120$ ประมาณนั้น Attachments:
|
|
yuth
New Member
Posts: 7
|
Post by yuth on Jun 7, 2016 23:12:17 GMT 7
ผมเอาไฟล์ replica.mq4 มา compile แล้ว มันฟ้องว่า " function not defied " ต้องแก้ยังไงครับ
|
|