FREE EA AND INDICATOR คือแจกฟรีจริงๆไม่ต้องสมัคร Downline => แจก EA ฟรี => Topic started by: gagoi on ธันวาคม 01, 2010, 06:55:04 pm
-
ว่าจะรอเขียนเอง แต่ท่าจะอีกนาน ;D
ขอรบกวนแอดมิน หรือพี่ น้องท่านใดจะกรุณาครับ
อยากได้ EA ตามเงื่อนไขนี้ครับ
ระบบเทรด จากแนวความคิดที่ว่า เมื่อเทรนด์ขึ้น สัณญานขึ้นน่าเชื่อถือกว่าสัณญานลง
เมื่อเทรนด์ลง สัณญานลงน่าเชื่อถือกว่าสัณญานขึ้น
ด้งนั้น
1 ต้องการ ma 2 เส้น(ตั้งค่ายาวหน่อย) เพื่อยืนยันเทรนด์ ว่าอยู่ ซื้อ หรือขาย
2 ต้องการ ma 2 เส้น (ตั้งค่าสั้นลงมา) เพื่อใช้เป็นตัวส่งสัณญาน ซื้อ หรือขายตามเทรนด์ (จะไม่ส่งคำสั้งสวนเทรนด์)
3 เมื่อซื้อแล้ว จะใช้ t/s เพื่อ ตั้ง s/l ทันที และตั้งค่า t/s เพื่อปกป้องกำไร และปัองกันแรงตกสวนทางเทรนด์
(ดังนั้นจึงไม่ใช้ค่า ma )
ซึ่งค่าของ ma ทั้ง 4 เส้น และ t/s s/l จะต้องปรับแต่งได้ครับ เพื่อปรับใช้กับคุ่เงิน และช่วงเวลาที่เหมาะสมได้
ขอบคุณล่วงหน้าครับผม
-
ครับเดียวอีก 2วันผมว่างจะทำให้พร้อมกับอืกท่านที่ฝากผมเขียนครับ
-
ขอบคุณมาก ๆ ครับ
-
extern double lot=0.1;
extern double long1=50;
extern double long2=100;
extern double short1=5;
extern double short2=10;
extern double TP=0.1;
extern double SL=0.1;
int start()
{ double ma1 =iMA(NULL,0,long1,8,MODE_SMMA,PRICE_MEDIAN,0);
double ma2 =iMA(NULL,0,long2,8,MODE_SMMA,PRICE_MEDIAN,0);
double ma3 =iMA(NULL,0,short1,8,MODE_SMMA,PRICE_MEDIAN,0);
double ma4 =iMA(NULL,0,short2,8,MODE_SMMA,PRICE_MEDIAN,0);
จากนั่นก็นำค่า ma1 ma2 ที่เป็นเส้น MA ยาว กับ ma3 ma4 ซึ้งเป็นเส้นสั้นไปตรวจสอบเงื่อนไขการเปิดครับ เขียนได้เท่านี้จากที่คุณอธิบายมาอ่ะครับ
return (0);
}
-
ขอบคุณมากครับ
อันนี้จะไม่เปิดออเดอร์สวนเทรนด์(จากเส้น ma long 1,2 )แล้วใช่ไหมครับ
แล้วคำสั่งชุดนี้ให้ก๊อปใส่ใน ea เลยใช่ไหมครับ(ขออภัยที่ถามครับ พอดีที่ว่าจะหัดยังอ่านไปได้แค่บทที่สาม ที่สี่อยู่เลยครับ)
-
ขอบคุณมากครับ
อันนี้จะไม่เปิดออเดอร์สวนเทรนด์(จากเส้น ma long 1,2 )แล้วใช่ไหมครับ
แล้วคำสั่งชุดนี้ให้ก๊อปใส่ใน ea เลยใช่ไหมครับ(ขออภัยที่ถามครับ พอดีที่ว่าจะหัดยังอ่านไปได้แค่บทที่สาม ที่สี่อยู่เลยครับ)
ตัวนี้เป็นแค่ชุดคำสั่งในการเตรียค่า ma สั้นยาวเท่านั่นเองครับจากนั่นตุณก็แค่เอาตัวแปร ma1 ma2 ma3 ma4 ไปใช้เงื่อนไขตรวจสอบถ้าตรงตามแนวคิดคุณก็เขียนตำสั่งเปิดครับ มีตรงไหนไม่เข้าใจก็ถามต่อได้ครับ
-
ขอบคุณครับผม
เท่าที่นำไปลอง (ทดลองแต่ว่าเปิด ปิดออเดอร์หรือไม่) ก็ไม่มีปัญหาครับ
ตอนนี้ขาด trailing stop ที่จะใช้เพื่อรักษาผลกำไร และป้องกันโดนสวนเทรนด์ เท่านั้น ครับ
-
ขอบคุณครับผม
เท่าที่นำไปลอง (ทดลองแต่ว่าเปิด ปิดออเดอร์หรือไม่) ก็ไม่มีปัญหาครับ
ตอนนี้ขาด trailing stop ที่จะใช้เพื่อรักษาผลกำไร และป้องกันโดนสวนเทรนด์ เท่านั้น ครับ
trailing stop ถ้าไม่เข้าใจก็ถามได้ครับ
-
//+------------------------------------------------------------------+
//| firstea.mq4 |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
double ma10 , ma15 ,ma20 ,ma50 ;
int total;
int ticket;
ma10=iMA(NULL,0,10,0,MODE_SMMA,PRICE_MEDIAN,0);
ma15=iMA(NULL,0,15,0,MODE_SMMA,PRICE_MEDIAN,0);
ma20=iMA(NULL,0,20,0,MODE_SMMA,PRICE_MEDIAN,0);
ma50=iMA(NULL,0,50,0,MODE_SMMA,PRICE_MEDIAN,0);
total=OrdersTotal();
if(total<1)
{
if((ma20>ma50)==(Ask>=ma10>ma15))
{
if(ma10>ma15)
{
ticket=OrderSend(Symbol(),OP_BUY,0.5,Ask,3,Bid-Point*50,Ask+Point*50,"firstea",0,0,Green);
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
}
return (0);
}
if((ma50>ma20)==(ma15>ma10>=Bid))
{
ticket=OrderSend(Symbol(),OP_SELL,0.5,Bid,3,Ask+Point*50,Bid-Point*50,"firstea",0,0,Red);
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
}
}
return(0);
}
//+------------------------------------------------------------------+
-
ตอนนี้ดัดแปลงจากโค๊ดที่ admin ทำให้เป็นตัวอย่างครับ
ทดลองว่าสั่งซื้อผิดเทรนด์หรือเปล่าเท่านั้น ได้ผลเป็นที่น่าพอใจ (คือไม่ออเดอร์ผิดเทรนด์)
แต่ยังมีปัญหาตรงที่ เวลาเทรนด์ติดไซด์เวย์ จะขาดทุนจาการปิด เปิดออเดอร์เร็วตามราคาที่แกว่งตัวตามไซด์เวย์
จึงคิดจะกรองสัญณานด้วยการเพิ่ม trailling stop โดยเพิ่มขอรบกวน admin เพิ่มโค๊ดเข้าไป
ให้ทำการขายจาก trailling stop เท่านั้น (คือขายเมื่อราคาติด stoploss ที่ตั้งไว้ด้วย trailling stop )
ถ้ายังกรองได้ไม่ดีพอ อาจจะเพิ่ม parabolic sar อีกสักตัวเพื่อกรองสัญณานให้นิ่งขึ้น ไม่ให้ปิดออเดอร์ผิดอีก
ถ้ายังไง ขอคำแนะนำ และขอรบกวน ด้วยนะครับ
-
;D ลองก๊อป โค๊ตตัวนี้ใส่ลงไป ไม่ได้ผลครับ
ยังไม่มี trailling stop เกิดขึ้น ;D
extern int MagicNumber = 0;
extern bool SignalMail = true;
extern bool EachTickMode = True;
extern double Lots = 0.50;
extern int Slippage = 3;
extern bool UseStopLoss = True;
extern int StopLoss = 20;
extern bool UseTakeProfit = false;
extern int TakeProfit = 500;
extern bool UseTrailingStop = True;
extern int TrailingStop = 20;
-
ลองเอาไปดูครับครับผมยังไม่ได้ทดลองนะครับ
extern int trailingStop = 20;
int start()
{
double ma10 , ma15 ,ma20 ,ma50 ;
int total;
int ticket;
ma10=iMA(NULL,0,10,0,MODE_SMMA,PRICE_MEDIAN,0);
ma15=iMA(NULL,0,15,0,MODE_SMMA,PRICE_MEDIAN,0);
ma20=iMA(NULL,0,20,0,MODE_SMMA,PRICE_MEDIAN,0);
ma50=iMA(NULL,0,50,0,MODE_SMMA,PRICE_MEDIAN,0);
total=OrdersTotal();
if(total<1)
{
if((ma20>ma50)==(Ask>=ma10>ma15))
{
if(ma10>ma15)
{
ticket=OrderSend(Symbol(),OP_BUY,0.5,Ask,3,Bid-Point*50,Ask+Point*50,"firstea",0,0,Green);
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
}
return (0);
}
if((ma50>ma20)==(ma15>ma10>=Bid))
{
ticket=OrderSend(Symbol(),OP_SELL,0.5,Bid,3,Ask+Point*50,Bid-Point*50,"firstea",0,0,Red);
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
}
}
if(total==1)
{
if(OrderType() == OP_BUY)
{
if(trailingStop > 0)
{
if(Bid - OrderOpenPrice() > trailingStop*Point)
{
if(OrderStopLoss()==0 || (Bid - OrderStopLoss()> trailingStop*Point))
OrderModify(OrderTicket(), OrderOpenPrice(),
Bid - trailingStop*Point, OrderTakeProfit(), 0, Blue);
}
}
}
else
{
if(trailingStop > 0)
{
if(OrderOpenPrice() - Ask > trailingStop*Point)
{
if(OrderStopLoss() == 0 || OrderStopLoss()-Ask > trailingStop*Point)
OrderModify(OrderTicket(), OrderOpenPrice(),
Ask + trailingStop*Point, OrderTakeProfit(), 0, Red);
}
}
}
}
return(0);
}
-
เพิ่งทดสอบครับ
ไม่ทราบเป็นอะไร มันไม่ส่งออเดอร์เลยครับ
-
if((ma20>ma50)==(Ask>=ma10>ma15))
if((ma50>ma20)==(ma15>ma10>=Bid))
เงื่อนไขเขียนแบบนี้ผิดครับคูณต้องการเงื่อนไขยังไงครับลอง พิมเป็นคำพูดออกมาให้ผมอ่านหน่อยครับ
-
อ้าว เหรอครับ
แต่ผมทำ back test แล้วมันส่งออเดอร์นะครับ
เงื่อนไขก็เหมือนเดิมครับ เพียงแต่อันนี้ผมดัดแปลงเอาจากที่ท่าน admin ทำไว้เป็นตัวอย่าง ยังไม่ได้เอาที่เขียนใหม่ไปลง
พอดีเห็นทำ back test แล้วมันได้ ;D
เงื่อนไขเดิม คือ
1. ถ้าเส้น 20 ตัดเส้น 50 ขึ้น เป็นตัวกรองให้ สั่งเฉพาะคำสั่ง ซื้อ (long)
2. ถ้าเส้น 10 ตัดเส้น 15 ขึ้น ก็คือ ส่งออเดอร์ ซื้อ (long)(ซึ่งตอนข้อ 1. จะยังไม่ส่งออเดอร์ แค่กรองว่า เทรนด์ไหนแน่)
3.ปิดด้วย trailling stop เท่านั้น (ไม่สนใจเส้น ma)
เวลาส่งออเดอร์ขายก็เช่นกันครับ
1. ถ้าเส้น 20 ตัดเส้น 50 ลง เป็นตัวกรองให้ สั่งเฉพาะคำสั่ง ขาย(shot)
2. ถ้าเส้น 10 ตัดเส้น 15 ลง ก็คือ ส่งออเดอร์ ขาย (shot)(ซึ่งตอนข้อ 1. จะยังไม่ส่งออเดอร์ แค่กรองว่า เทรนด์ไหนแน่)
3.ปิดด้วย trailling stop เท่านั้น (ไม่สนใจเส้น ma)
ขอบคุณครับ
-
if((ma20>ma50) == ((Ask>=ma10)&& (ma10 >ma15) ))
if((ma50>ma20) == ((ma15>ma10) && (ma10>=Bid) ))
ลองเปลี่ยนเงื่อนไขเป็นแบบนี้ดูครับ
-
ขอบคุณอีกครั้งครับผม
ได้ผลยังไงจะรีบแจ้งครับ
-
แจ้งผลครับผม
ตอนนี้การส่งคำสั่ง ซื้อ ขาย ทำงานได้ปกติแล้วครับ
ทว่า trailling stop นั้น เมื่อมันอยู่เหนื่อค่าเปิดออเดอร์แล้ว มันควรจะเปลี่ยน stop loss ให้สูงขึ้นไม่ใช่หรือครับ
แต่ดูเหมือนตัวยังจะยังไม่เปลี่ยนครับผม
-
ยืนยันครับผม
ตอนนี้คำสั่งเปิดออเดอร์ ซื้อ ขายทำงานปกติ
โดยใช้คำสั่งเป็น
if((ma20>ma50)==(ma10>ma15)) กับ if((ma50>ma20)==(ma15>ma10)) เท่านั้นครับ
ส่วน trailling stop นั้นยังคงมีปัญหาตรงที่
ปกติ ถ้าตั้ง trailling stop ไว้ที่ 10 แล้วเปิดออเดอร์ ซื้อ ที่ 110
stoploss ตั้งที่ 20 แล้ว
ask = 110
stoploss=20 (คือ 90)
trailling stop =10(คือ 100)
trailling stop จะต้องตั้งค่าใหม่ให้ stoploss เป็น 100
แต่ปัญหาอยู่ที่ ตอนที่
ask =100 trailling stop จะต้องไม่ทำงาน คือ stoploss จะยังคงอยู่ที่ 100 เท่าเดิม (ซึ่งคือปิดออเดอร์)
แต่ตอนนี้มันดันปรับลงตามมาด้วย เป็น 90 และลงอีก ก็ปรับอีก :o
เลยแทนที่จะได้กำไร กลับขาดทุนแทน ;D ;D
ควรปรับยังไงดีครับ
-
ขอรายละเอียด ชนิด order ที่ tralilng ทำงานผิดพลาดแล้วขอ code ทั้งหมดที่คุณไปปรับแก้แล้วมาดูด้วยครับ
-
นี่คือตัวที่ทำ backtest เลยครับ bass มาจาก firstea ที่ท่าน admin ทำไว้นั่นแหละครับ
เพราะยังอ่านค่าตัวอื่น ๆ ไม่ออก 555 ;D
ไม่ได้ทำอะไรนอกจากตัด ค่า ask/bid ออกจากคำสั่งส่งออเดอร์ ซื้อ/ขาย ครับ ;D
extern int trailingStop = 50;
int start()
{
double ma10 , ma15 ,ma20 ,ma50 ;
int total;
int ticket;
ma10=iMA(NULL,0,10,0,MODE_SMMA,PRICE_MEDIAN,0);
ma15=iMA(NULL,0,15,0,MODE_SMMA,PRICE_MEDIAN,0);
ma20=iMA(NULL,0,20,0,MODE_SMMA,PRICE_MEDIAN,0);
ma50=iMA(NULL,0,50,0,MODE_SMMA,PRICE_MEDIAN,0);
total=OrdersTotal();
if(total<1)
{
if((ma20>ma50)==(ma10>ma15))
{
if(ma10>ma15)
{
ticket=OrderSend(Symbol(),OP_BUY,0.5,Ask,3,Bid-Point*150,Ask+Point*100,"firstea",0,0,Green);
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
}
return (0);
}
if((ma50>ma20)==(ma15>ma10))
{
ticket=OrderSend(Symbol(),OP_SELL,0.5,Bid,3,Ask+Point*150,Bid-Point*100,"firstea",0,0,Red);
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
}
}
if(total==1)
{
if(OrderType() == OP_BUY)
{
if(trailingStop > 0)
{
if(Bid - OrderOpenPrice() > trailingStop*Point)
{
if(OrderStopLoss()==0 || (Bid - OrderStopLoss()> trailingStop*Point))
OrderModify(OrderTicket(), OrderOpenPrice(),
Bid - trailingStop*Point, OrderTakeProfit(), 0, Blue);
}
}
}
else
{
if(trailingStop > 0)
{
if(OrderOpenPrice() - Ask > trailingStop*Point)
{
if(OrderStopLoss() == 0 || OrderStopLoss()-Ask > trailingStop*Point)
OrderModify(OrderTicket(), OrderOpenPrice(),
Ask + trailingStop*Point, OrderTakeProfit(), 0, Red);
}
}
}
}
return(0);
}
-
น่าจะได้แล้วนะ แนกำ เดิมมันหายไปบรรทัดหนึ่ง Trilling stop เลยทำงานมั่ว
extern int trailingStop = 50;
int start()
{
double ma10 , ma15 ,ma20 ,ma50 ;
int total;
int ticket;
ma10=iMA(NULL,0,10,0,MODE_SMMA,PRICE_MEDIAN,0);
ma15=iMA(NULL,0,15,0,MODE_SMMA,PRICE_MEDIAN,0);
ma20=iMA(NULL,0,20,0,MODE_SMMA,PRICE_MEDIAN,0);
ma50=iMA(NULL,0,50,0,MODE_SMMA,PRICE_MEDIAN,0);
total=OrdersTotal();
if(total<1)
{
if((ma20>ma50)==(ma10>ma15))
{
if(ma10>ma15)
{
ticket=OrderSend(Symbol(),OP_BUY,0.5,Ask,3,Bid-Point*150,Ask+Point*100,"firstea",0,0,Green);
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
}
return (0);
}
if((ma50>ma20)==(ma15>ma10))
{
ticket=OrderSend(Symbol(),OP_SELL,0.5,Bid,3,Ask+Point*150,Bid-Point*100,"firstea",0,0,Red);
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
}
}
if(total==1)
{
OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
if(OrderType() == OP_BUY)
{
if(trailingStop > 0)
{
if(Bid - OrderOpenPrice() > trailingStop*Point)
{
if(OrderStopLoss()==0 || (Bid - OrderStopLoss()> trailingStop*Point))
{
OrderModify(OrderTicket(), OrderOpenPrice(),Bid - trailingStop*Point, OrderTakeProfit(), 0, Blue);
}
}
}
}
if(OrderType() == OP_SELL)
{
if(trailingStop > 0)
{
if(OrderOpenPrice() - Ask > trailingStop*Point)
{
if(OrderStopLoss() == 0 || ( OrderStopLoss()-Ask > trailingStop*Point ) )
{
OrderModify(OrderTicket(), OrderOpenPrice(),Ask + trailingStop*Point, OrderTakeProfit(), 0, Red);
}
}
}
}
}
return(0);
}
-
อ้าว งั้นผมคงมั่วหายไปเองแหละครับ
ต้องขอโทษด้วยครับ
และก็ขอบคุณมาก ๆ ครับ ประสบการ์ณนี้ก็ช่วยให้ผมรู้เรื่อง ea ขึ้นมาอีกเยอะทีเดียวครับผม
-
ยืนยันผลการทำงานปกติดีแล้วครับผม
;D ;D ;D ;D ;D
ทีนี้ก็จะเริ่มทำการตรวจสอบค่าที่เหมาะสม เพื่อใช้เป็นเลขาช่วยเทรดล่ะครับทีนี้
-
if((ma20>ma50)==(ma10>ma15))
{
if(ma10>ma15)
{
ticket=OrderSend(Symbol(),OP_BUY,0.5,Ask,3,Bid-Point*150,Ask+Point*100,"firstea",0,0,Green);
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
}
return (0);
}
if((ma50>ma20)==(ma15>ma10))
{
ticket=OrderSend(Symbol(),OP_SELL,0.5,Bid,3,Ask+Point*150,Bid-Point*100,"firstea",0,0,Red);
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
}
}
คืออยากถามว่า ทำไมคำสั่ง ตรงที่เป็นสีแดง เป็นคำสั่งเปิดออเดอร์ ซื้อ
แต่ว่าส่วนที่เป็นสีเขียว ที่เป็นคำสั่งเปิดออเดอร์ ขาย มันไม่ต้องมีส่วนสีแดงล่ะครับ แล้วมีผลอะไรหรือเปล่าครับผม
-
เอ่อ มันทำให้ไม่ส่งออเดอร์ ขาย หรือเปล่าครับผม
รุ้สึกว่ามันจะเป็นอีกครับ แต่ยังไม่ยืนยันนะครับ ขอตรวจสอบอีกที (หลาย ๆ ทีก่อน)ครับ
-
แกไขได้แล้วครับผม
ตอนแรกส่งแต่ออเดอร์ ซื้อ จริง ๆ ด้วย
แต่พอเปลี่ยนส่วนที่เป็น สีแดง แล้วทำไมส่งได้ก็ไม่รู้ครับ
if((ma20>ma50)==(ma10>ma15))
{
if(ma10>ma15)
{
ticket=OrderSend(Symbol(),OP_BUY,0.5,Ask,3,Bid-Point*1000,Ask+Point*5000,"firstea",0,0,Green);
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
}
return (0);
}
if((ma20<ma50)==(ma10<ma15))
{
ticket=OrderSend(Symbol(),OP_SELL,0.5,Bid,3,Ask+Point*1000,Bid-Point*5000,"firstea",0,0,Red);
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
}
}
-
ขอสอบถามครับ
ถ้าเราจะปรับให้มันเปิด 2 หรือมากกว่า 1 ออเดอร์ ปรับตัวไหนครับ
ขอบคุณมากครับ
-
ขอโทษครับ อยากได้อีเอตัวนี้ไปทดสอบน่ะครับ ทดลองเขียนเองไม่ค่อยเวิค แต่หลักการคล้ายๆกับของผม รบกวนถ้าได้ขอรายละเอียดการเปิดออเดอร์คร่าวๆหน่อยก็ดีครับ
ถ้าได้ส่งที่ yainarak@hotmail.com ชอบใช้อีเอหลักการไม่ซับซ้อนครับ แต่สามารถปรับค่าเลือกใช้ได้ (จะทดสอบเงินจริงให้เลยครับ)
-
ได้ครับผม ยินดีครับ ;D
เดี๋ยวผมทำการอัพโหลดไว้ให้ครับ แต่ว่าผมยังไม่ได้หาค่าเฉพาะเลยนะครับ
ตั้งใจว่าเมื่อทดลองได้คุณสมบัติต่าง ๆ พอใจแล้ว จะหาค่าที่เหมาะสม กับคู่เงิน ระยะเวลา
แล้วค่อยเอามาส่งคืนน่ะครับ งั้นก็รบกวนช่วยกันเลยนะครับ ขอบคุณครับ ;D
-
ทำลิงค์มาให้แล้วครับ
ขอบคุณครับ
http://www.4shared.com/file/WJtqoVeT/super_admin.html
-
โอเค ขอบคุณมากครับ เดี๋ยวจัดให้เลย ได้ผลยังไงจะทยอยแจ้งมาเรื่อยๆครับ
-
ขอบคุณครับ เดี๋ยวยังไงไปเปิดเป็นกระทู้ต่างหากดีกว่าครับ
ท่านอื่น ๆ จะได้หาข้อมูลง่ายขึ้น
-
ขอรบกวนเพิ่ม Option อีกนิดครับผม
;D จาก
อออออออออออออออออออออออออออออออออออออออออออออออออออออออ
//+------------------------------------------------------------------+
//| supper admin.mq4 |
//| Copyright © 2010, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
extern int trailingStop = 500;
int start()
{
double ma10 , ma15 ,ma20 ,ma50 ;
int total;
int ticket;
ma10=iMA(NULL,0,10,0,MODE_SMMA,PRICE_MEDIAN,0);
ma15=iMA(NULL,0,15,0,MODE_SMMA,PRICE_MEDIAN,0);
ma20=iMA(NULL,0,10,0,MODE_SMMA,PRICE_MEDIAN,0);
ma50=iMA(NULL,0,15,0,MODE_SMMA,PRICE_MEDIAN,0);
total=OrdersTotal();
if(total<1)
{
if(ma10>ma15)
{
if(ma10>ma15)
{
ticket=OrderSend(Symbol(),OP_BUY,0.5,Ask,3,Bid-Point*200,Ask+Point*500,"firstea",0,0,Green);
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
}
return (0);
}
if(ma50>ma20)
{
ticket=OrderSend(Symbol(),OP_SELL,0.5,Bid,3,Ask+Point*200,Bid-Point*500,"firstea",0,0,Red);
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
}
}
if(total==1)
{
OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
if(OrderType() == OP_BUY)
{
if(trailingStop > 0)
{
if(Bid - OrderOpenPrice() > trailingStop*Point)
{
if(OrderStopLoss()==0 || (Bid - OrderStopLoss()> trailingStop*Point))
{
OrderModify(OrderTicket(), OrderOpenPrice(),Bid - trailingStop*Point, OrderTakeProfit(), 0, Blue);
}
}
}
}
if(OrderType() == OP_SELL)
{
if(trailingStop > 0)
{
if(OrderOpenPrice() - Ask > trailingStop*Point)
{
if(OrderStopLoss() == 0 || ( OrderStopLoss()-Ask > trailingStop*Point ) )
{
OrderModify(OrderTicket(), OrderOpenPrice(),Ask + trailingStop*Point, OrderTakeProfit(), 0, Red);
}
}
}
}
}
return(0);
}
ออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออ
อยากเพิ่ม option ให้
หลังจากปิดออเดอร์แล้ว ให้ ea หน่วงเวลาไว้ สัก 4 แท่งก่อน ถึงจะสามารถเปิดออเดอร์ใหม่ได้ เพื่อรอยืนยันสัญณานครับ
ขอบคุณครับผม ;D ;D
-
//+------------------------------------------------------------------+
//| supper admin.mq4 |
//| Copyright ? 2010, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright ? 2010, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
extern int trailingStop = 500;
static int aaa=0;
int start()
{
double ma10 , ma15 ,ma20 ,ma50 ;
int total;
int ticket;
ma10=iMA(NULL,0,10,0,MODE_SMMA,PRICE_MEDIAN,0);
ma15=iMA(NULL,0,15,0,MODE_SMMA,PRICE_MEDIAN,0);
ma20=iMA(NULL,0,10,0,MODE_SMMA,PRICE_MEDIAN,0);
ma50=iMA(NULL,0,15,0,MODE_SMMA,PRICE_MEDIAN,0);
total=OrdersTotal();
if(total==0 && aaa==1)
{
double wait= 4*Period( ) ;
wait=wait*60000;
Sleep(wait);
aaa=0;
}
if(total<1 && aaa==0)
{
if(ma10>ma15)
{
if(ma10>ma15)
{
ticket=OrderSend(Symbol(),OP_BUY,0.5,Ask,3,Bid-Point*200,Ask+Point*500,"firstea",0,0,Green);
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
}
aaa=1;
return (0);
}
if(ma50>ma20)
{
ticket=OrderSend(Symbol(),OP_SELL,0.5,Bid,3,Ask+Point*200,Bid-Point*500,"firstea",0,0,Red);
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
aaa=1;
}
}
if(total==1 && aaa==1)
{
OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
if(OrderType() == OP_BUY)
{
if(trailingStop > 0)
{
if(Bid - OrderOpenPrice() > trailingStop*Point)
{
if(OrderStopLoss()==0 || (Bid - OrderStopLoss()> trailingStop*Point))
{
OrderModify(OrderTicket(), OrderOpenPrice(),Bid - trailingStop*Point, OrderTakeProfit(), 0, Blue);
}
}
}
}
if(OrderType() == OP_SELL)
{
if(trailingStop > 0)
{
if(OrderOpenPrice() - Ask > trailingStop*Point)
{
if(OrderStopLoss() == 0 || ( OrderStopLoss()-Ask > trailingStop*Point ) )
{
OrderModify(OrderTicket(), OrderOpenPrice(),Ask + trailingStop*Point, OrderTakeProfit(), 0, Red);
}
}
}
}
}
return(0);
}
-
ขอรบกวนอีกครับ
ดูเหมือนมันยังไม่หน่วงเวลาเลยครับ
แล้วก็อีกอย่าง
ไม่เข้าใจตรงนี้ครับ
double wait= 4*Period( ) ;
wait=wait*60000;
Sleep(wait);
aaa=0;
ค่า 60000 คืออะไรครับ
แล้วถ้าจะปรับเป็น ค่าอื่น ๆ ล่ะครับ เช่น 5 หรือ 10 เป็นต้นน่ะครับ
-
Blcktest มันไม่หน่วงนะต้องลอง Demo เท่านั่นเพรา Sleep จะไม่ทำงานบน blacktest ถ้าจะเปลี่ยนจำนวนแท่งก็ให้เปลี่ยนตรงเลข 4
-
อ้อ ขอบคุณครับ
มิน่างง ๆ อยู่นึกว่าทำอะไรพลาดไป
-
อิิอิ มีเพิ่มแล้วฟังชั่นก็มะบอก กำไอ้ผมก็จะทักว่าออเดอร์สองเปิดช้าจัง จะเปลี่ยนสัญญาณ ฮาๆๆ พี่เล่นหน่วงอีก ฮาๆๆ
งั้นก็ขอเอาไปลองเพิ่มละกัน รันจียู M30 ครับพอไหวอยู่ ทดสอบที่ทุน $30 Ceat2 lot = 0.2 (ขอแก้หน่อยโหดเกิน)รันสามวันพุธ-ศุกร์ forex4you เป็น 3000 Cent ดีที่ได้ลูกยาวไม่ผิดเทรนครับกำไรไป นิดๆ $6-7 = ุ600-700 Cent รบกวนช่วยเพิ่ม พารามิเตอร์ภายนอกให้หน่อย พวก sl tp lot trailing stop จะได้สะดวกเวลาทดสอบอ่ะคับ แล้วจะมาอัพข้อมุลให้เรื่อยๆ(ผมรัน 24 ชม ไม่มีปิด เพียงแต่เข้าไปดูนิดหน่อยเท่านั้น)
-
อิิอิ มีเพิ่มแล้วฟังชั่นก็มะบอก กำไอ้ผมก็จะทักว่าออเดอร์สองเปิดช้าจัง จะเปลี่ยนสัญญาณ ฮาๆๆ พี่เล่นหน่วงอีก ฮาๆๆ
งั้นก็ขอเอาไปลองเพิ่มละกัน รันจียู M30 ครับพอไหวอยู่ ทดสอบที่ทุน $30 Ceat2 lot = 0.2 (ขอแก้หน่อยโหดเกิน)รันสามวันพุธ-ศุกร์ forex4you เป็น 3000 Cent ดีที่ได้ลูกยาวไม่ผิดเทรนครับกำไรไป นิดๆ $6-7 = ุ600-700 Cent รบกวนช่วยเพิ่ม พารามิเตอร์ภายนอกให้หน่อย พวก sl tp lot trailing stop จะได้สะดวกเวลาทดสอบอ่ะคับ แล้วจะมาอัพข้อมุลให้เรื่อยๆ(ผมรัน 24 ชม ไม่มีปิด เพียงแต่เข้าไปดูนิดหน่อยเท่านั้น)
555 ;D ;Dเพิ่งขอเพิ่ม Option จากท่าน admin เช่นเคยครับ
พอดีสุ่ม ๆ ดูแล้ว รู้สึกว่ายังโดนไซด์เวย์อยู่ ก็เลยอยากหน่วงเวลาไว้ช่วงนึงครับ เพื่อรอยืนยันสัญณานสักนิดน่ะครับ
ได้ผลยังไงแล้วจะแจ้งอีกทีครับ คราวนี้จะทดสอบเป็นตัว ๆ ไป อาจใช้เวลานิดนึงเพราะต้องรันเดโมเอา
ขอบคุณครับ