EA Programing => ปัญหาที่พบในการเขียน EA => Topic started by: Redbull on พฤศจิกายน 24, 2011, 03:51:43 pm

Title: รบกวนสอบถามครับ
Post by: Redbull on พฤศจิกายน 24, 2011, 03:51:43 pm
รบกวน Admin หรือท่านใดก็ได้ครับ (ท่าน D_Daimond ก็ได้ครับ) ช่วยดูให้ด้วยครับ
ลองเขียนเล่นน่ะครับ แต่มันติดตรงที่ว่า มันเปิด Order เดียวแล้วไม่เปิดอีกเลยครับ พอลองเอา static ออก ทีนี้มันเปิดต่อเนื่องเลยครับ ก็เลยไม่รู้จะแก้ยังไงต่อครับ 
เงื่อนไขง่ายๆ ครับคือ ให้เปิดออเดอร์ใหม่เมื่อเริ่มแท่ง H1 ใหม่ครับ ถ้าถึง tp หรือ sl ก็หยุดแค่นั้นหรือถ้าไม่ถึง tp หรือ sl ก็ปิดออเดอร์ไปเลยเมื่อจบแท่งและรอแท่งใหม่ค่อยเปิดออเดอร์ใหม่

รบกวนนะครับ...ขอบคุณครับ.../'*_*/"......

static int check =0;

int start()
{

double P_Open  = iOpen (NULL,0,1); 
double P_close = iClose(NULL,0,1);

int a = OrdersTotal();

{
int total=OrdersTotal();
if(total==1)
{
check=1;
}
if(total<1 && check==0)
{

if (P_close > P_Open)
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-Point*100,Ask+Point*20,"Test Sell",123,0,Green);

else
if (P_close < P_Open)
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Bid+Point*100,Bid-Point*20,"Test Sell",123,0,Red);

}
 
return(1) ;
}

}
Title: Re: รบกวนสอบถามครับ
Post by: admin on พฤศจิกายน 24, 2011, 04:03:02 pm
ในกรณีต้องการแค้ทีละ 1 order แล้วรอโดน sl tp ก่อนค่อยเปิดอันใหม่ แก้เป็นแบบนี้ก็พอครับ

int start()
{

double P_Open  = iOpen (NULL,0,1);  
double P_close = iClose(NULL,0,1);


int total=OrdersTotal();

if(total==0)
{

if (P_close > P_Open)
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-Point*100,Ask+Point*20,"Test Sell",123,0,Green);

if (P_close < P_Open)
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Bid+Point*100,Bid-Point*20,"Test Sell",123,0,Red);

}
 
return(1) ;


}

ตัวแปร static ใช้ในกรณีที่เราต้องการให้ระบบจำค่าเอาเมื่อ EA จบ loop การทำงานครับมีประโยชน์มากๆๆในบางกรณีครับ
Title: Re: รบกวนสอบถามครับ
Post by: admin on พฤศจิกายน 24, 2011, 04:16:16 pm
ในกรณีต้องการเปิดต่อเนื่องทีละ 1 order ตามขนาดของ timeframe ก็เขียนง่ายๆๆแบบนี้ก็ได้

int start()
{

double P_Open  = iOpen (NULL,0,1);  
double P_close = iClose(NULL,0,1);


int total=OrdersTotal();


if (P_close > P_Open)
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-Point*100,Ask+Point*20,"Test Sell",123,0,Green);

if (P_close < P_Open)
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Bid+Point*100,Bid-Point*20,"Test Sell",123,0,Red);


 Sleep(60000*Period( ) ); // ใฟ้มันหลับไปเท่ากับ ขนาดของ timeframe เช่น กราฟ h1 ก็จะนอนไป 1 ขั่วโมงครบกำหนดก็จะเริ่มทำงานใหม่ ใช้ใน backtest ไม่ได้นะครับ
return(1) ;


}
Title: Re: รบกวนสอบถามครับ
Post by: Redbull on พฤศจิกายน 24, 2011, 04:40:45 pm
ขอบคุณมากมายครับท่าน Admin.....
รวดเร็วจริงๆ เลย.....
เดี๋ยวผมขอลองก่อนครับ....
ได้ผลยังไงคงต้องรบกวนท่าน Admin อีกครั้งครับ......
Title: Re: รบกวนสอบถามครับ
Post by: D_Diamond on พฤศจิกายน 24, 2011, 05:39:40 pm
ขอถามบ้างครับ

 -> Sleep(60000*Period( ) ); // ใฟ้มันหลับไปเท่ากับ ขนาดของ timeframe เช่น กราฟ h1 ก็จะนอนไป 1 ขั่วโมงครบกำหนดก็จะเริ่มทำงานใหม่ ใช้ใน backtest ไม่ได้นะครับ

แบบนี้ถ้าเราเปิดโปรแกรมมาตอน 4:40 มันก็จะหลับไป 1 ชม. ตื่นมาอีกที 5:40 ถึงจะเทรดต่อหรือเปล่าครับ


อีกข้อ อยากให้ท่าน admin ช่วยยกตัวอย่างการใช้งานที่จำเป็นต้องใช้ static หน่อยครับ ผมไม่รู้จักเลย เคยถามแล้วก็ยังไม่เข้าใจ
Title: Re: รบกวนสอบถามครับ
Post by: Redbull on พฤศจิกายน 24, 2011, 05:44:14 pm
รบกวนท่าน Admin อีกครั้งครับ....
เงื่อนไขแรกที่ท่าน Admin แนะนำครับ คือโดน sl tp ก่อนค่อยเปิดอันใหม่ (ข้อนี้ OK ครับ)
เงื่อนไขที่สองไม่ทำงานครับ (forward test) รบกวนถามเป็นข้อๆ ครับ
1. Sleep(60000*Period( ) ); ตัวเลข 60000 คือหน่วยอะไรครับ และในวงเล็บหลังPeriod ต้องใส่อะไรไหมครับ (เดาว่า 60000 คือ 60 นาที)
2. เพื่อความรวดเร็ว ผม forward test ใน timeframe 5 นาที ก็เลยแก้เป็น
Sleep(5000*Period( ) ); ไม่รู้ถูกไหมครับ แต่ก็ยังไม่ทำงานครับ
3. ที่ท่าน Admin แนะนำว่า Sleep(60000*Period( ) ); มันจะนอนไป 1 ชั่วโมง ไม่ทราบว่ามันจะเริ่มนับจากไหนครับ เมื่อโดน sl tp หรือไม่ หรือเมื่อเริ่มเปิดออเดอร์ครับ ที่ถามเพราะผมเกรงวามันจะไม่ตรงตามเงื่อนไขในแท่งถัดไปครับ คือผมต้องการให้มันเปิดออเดอร์พร้อมกับราคาเปิดของแท่งนั้นๆ ครับ ยกตัวอย่างถ้ามันหลับหลังโดน sl เช่น เปิดออเดอร์เวลา 01.00 น._โดน sl เวลา 01.10 น._ถ้ามันหลับที่ 01.10 น. มันจะไปทำงานอีกทีที่ 02.10 น. ใช่ไหมครับ แต่ผมต้องการให้มันเปิดออเดอร์ทุก 01.00 น. 02.00 น. 03.00 น..............00.00 น. ปรมาณนี้ครับ (งง อธิบายเองงงเอง)

รบกวน Admin ด้วยครับ...อีกนิดเดียวครับ.../-_-''/????
....ขอบคุณมากมายครับ....
Title: Re: รบกวนสอบถามครับ
Post by: admin on พฤศจิกายน 24, 2011, 06:09:43 pm
60000 มาจาก 1 นาทีครับเพราะตามปกติ ถ้าจะให้มันหยุด 1 วินาทีจะเท่ากับ Sleep(1000) ; ครับ ที่ผมเขียน Sleep(60000*Period( ) );  Period() มันจะส่งค่ากราฟที่เป็นนาทีออกมาเองครับเช่น 1 นาทีก็ส่ง 1 ออกมา กราฟชั่วโมงมันจะส่ง 60 ออกมา ที่ถามว่ามันนอนไป 1 ชั่วโมงนับตอนไหนมันนับหลังเปิด order ครับเพระผมดูเงื่อนไขมี 2 ตัวแปรมันไม่โดนอันใดก็อันหนึ่งครับ  ถึงมันโดน sl tp ก็ไม่สนใจครับเพราะมันยังหลับอยู่ครับ แต่ถ้าต้องการเขียน code ที่ละเอียดกว่านี้มันต้องใช้ฟังก์ชั่นในการเทียบเวลามาเพิ่มแล้ว code จะยาวกว่านี้มากครับ เลยเอาสั่นๆๆง่ายๆๆไวก่อน
Title: Re: รบกวนสอบถามครับ
Post by: admin on พฤศจิกายน 24, 2011, 06:11:59 pm
ขอถามบ้างครับ

 -> Sleep(60000*Period( ) ); // ใฟ้มันหลับไปเท่ากับ ขนาดของ timeframe เช่น กราฟ h1 ก็จะนอนไป 1 ขั่วโมงครบกำหนดก็จะเริ่มทำงานใหม่ ใช้ใน backtest ไม่ได้นะครับ

แบบนี้ถ้าเราเปิดโปรแกรมมาตอน 4:40 มันก็จะหลับไป 1 ชม. ตื่นมาอีกที 5:40 ถึงจะเทรดต่อหรือเปล่าครับ


อีกข้อ อยากให้ท่าน admin ช่วยยกตัวอย่างการใช้งานที่จำเป็นต้องใช้ static หน่อยครับ ผมไม่รู้จักเลย เคยถามแล้วก็ยังไม่เข้าใจ
หลังจากเปิด order มันก็จะรอจนครบเวลาถึงทำงานต่อครับ เปิด order เสร็จ 4.40 ก็รอจนกว่า 5.40 ถึงทำงานต่อครับ
เรื่อง static ก็ดูตัวอย่าง 2 อันนี้ดูค่าที่มัน print ออกมานะครับ

//คำว่า static คือคงที่ หมายความว่าตัวแปรนี้จะไม่โดยทำลายแม่งแต่ฟังก์ชั่นที่สร้างมันโดนระบบ delete ไปแล้วครับ
ลองดูตัวอย่างนี้ก่อนครับ ตัวแรก ตัวแปรธรรมดา แบบที่ 2 คือ static แล้วลองสังเกตค่าที่ออกมานะครับ ว่ามันต่างกันยังไง
int start()
  { 
     show();
    return(0);
  }

int show()
{   int a;
     Print("A :",a);
     a=a+1;
   return (a);

}


//////////////////////////////////////////////

int start()
  { 
     show();
    return(0);
  }

int show()
{   static int a;
     Print("A :",a);
     a=a+1;
   return (a);

}

Title: Re: รบกวนสอบถามครับ
Post by: Redbull on พฤศจิกายน 24, 2011, 06:56:10 pm
ท่าน Admin ครับ...
รบกวนอีกนิดส์ครับ ผมเข้าใจเรื่อง sleep แล้วครับ ก็เลยลองเขียนให้มันหลับ 5 นาที และ forward test ที่ 5 นาที แต่มันก็ยังไม่เปิดออเดอร์เลยครับ รบกวนตรวจสอบ code ให้ด้วยครับ ว่าทำไมไม่เทรด (โบรก ThinkForex ครับ) หรือถ้าไม่รบกวนเวลาจนเกินไปจะ Test ให้ด้วยก็ดีขอรับท่าน...

....อีกนิดส์ครับท่าน ไม่งั้นนอนไม่หลับแน่..../"_"/???
....ขอบคุณมากมายครับ...

int start()
{

double P_Open  = iOpen (NULL,0,1); 
double P_close = iClose(NULL,0,1);

int total=OrdersTotal();

if (P_close > P_Open)
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-Point*200,Ask+Point*100,"Test Sell",123,0,Green);

if (P_close < P_Open)
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Bid+Point*200,Bid-Point*100,"Test Sell",123,0,Red);

Sleep(300000*Period( ) ); //ถูกไหมครับเนี่ย 5 นาที
return(1) ;

}
Title: Re: รบกวนสอบถามครับ
Post by: admin on พฤศจิกายน 24, 2011, 07:03:15 pm
Sleep(300000*Period( ) ); //ถูกไหมครับเนี่ย 5 นาที

นี้ใส่กราฟกี่นาทีครับ แบบนี้ถ้าใสกราฟ 5 นาที จะเท่ากับ หลับไป 25 นาทีนะครับ 300000 แก้เป็น 60000 แบบเดิมครับ ส่วนเรื่องไม่เปิดผมลองเอาไป test ดูมันก็ชื้อ order แรกนะครับ
Title: Re: รบกวนสอบถามครับ
Post by: D_Diamond on พฤศจิกายน 24, 2011, 07:05:18 pm
ขอถามบ้างครับ

 -> Sleep(60000*Period( ) ); // ใฟ้มันหลับไปเท่ากับ ขนาดของ timeframe เช่น กราฟ h1 ก็จะนอนไป 1 ขั่วโมงครบกำหนดก็จะเริ่มทำงานใหม่ ใช้ใน backtest ไม่ได้นะครับ

แบบนี้ถ้าเราเปิดโปรแกรมมาตอน 4:40 มันก็จะหลับไป 1 ชม. ตื่นมาอีกที 5:40 ถึงจะเทรดต่อหรือเปล่าครับ


อีกข้อ อยากให้ท่าน admin ช่วยยกตัวอย่างการใช้งานที่จำเป็นต้องใช้ static หน่อยครับ ผมไม่รู้จักเลย เคยถามแล้วก็ยังไม่เข้าใจ
หลังจากเปิด order มันก็จะรอจนครบเวลาถึงทำงานต่อครับ เปิด order เสร็จ 4.40 ก็รอจนกว่า 5.40 ถึงทำงานต่อครับ
เรื่อง static ก็ดูตัวอย่าง 2 อันนี้ดูค่าที่มัน print ออกมานะครับ

//คำว่า static คือคงที่ หมายความว่าตัวแปรนี้จะไม่โดยทำลายแม่งแต่ฟังก์ชั่นที่สร้างมันโดนระบบ delete ไปแล้วครับ
ลองดูตัวอย่างนี้ก่อนครับ ตัวแรก ตัวแปรธรรมดา แบบที่ 2 คือ static แล้วลองสังเกตค่าที่ออกมานะครับ ว่ามันต่างกันยังไง
int start()
  { 
     show();
    return(0);
  }

int show()
{   int a;
     Print("A :",a);
     a=a+1;
   return (a);

}


//////////////////////////////////////////////

int start()
  { 
     show();
    return(0);
  }

int show()
{   static int a;
     Print("A :",a);
     a=a+1;
   return (a);

}



ลองแล้วครับ  บางทีมันก็ค้าง  บางทีมันก็เพิ่ม  
ไม่รู้ว่าเมื่อไรมันจะค้าง เมื่อไรมันจะไม่ค้าง จะเอาไปใช้จริงได้ยังไง งงครับ
Title: Re: รบกวนสอบถามครับ
Post by: admin on พฤศจิกายน 24, 2011, 07:16:03 pm
ถ้าเป็นตัว static ที่เขียนให้ดูของผมจะบวก 1 ตลอดนะครับ แต่ถ้าดูที่ช่อง expert มันจะบวกค่าทีละ 1 เมื่อกราฟกระดิกเท่านั่นครับ ประโยชน์ก็คือ เวลาเขียนฟังก์ชั่นที่ให้คำนวณหรือว่าอะไรก็แล้วต้องการให้มันเก็บค่าที่คำนวณได้เอาไวใช้ในการทำงานของ EA รอบต่อไปไงครับ ที่เขียนเป็น static ในฟังก์ชั่นก็เพื่อประกาศให้ ตัวแปรนี้เป็นตัวแปรแบบ global แต่มีเฉพาะฟังก์ชั่นที่ประกาศมันขึ้นมาเท่านั่นที่เรียกใช้ได้ ต่างจากการที่เราประกาศตัวแปร global เอาไวก่อน start() แบบนั่นทุกๆๆฟังก์ชั่นจะสามารถใช้งานและแก้ไขตัวแปรได้ครับ
Title: Re: รบกวนสอบถามครับ
Post by: D_Diamond on พฤศจิกายน 24, 2011, 07:27:48 pm
ถ้าเป็นตัว static ที่เขียนให้ดูของผมจะบวก 1 ตลอดนะครับ แต่ถ้าดูที่ช่อง expert มันจะบวกค่าทีละ 1 เมื่อกราฟกระดิกเท่านั่นครับ ประโยชน์ก็คือ เวลาเขียนฟังก์ชั่นที่ให้คำนวณหรือว่าอะไรก็แล้วต้องการให้มันเก็บค่าที่คำนวณได้เอาไวใช้ในการทำงานของ EA รอบต่อไปไงครับ ที่เขียนเป็น static ในฟังก์ชั่นก็เพื่อประกาศให้ ตัวแปรนี้เป็นตัวแปรแบบ global แต่มีเฉพาะฟังก์ชั่นที่ประกาศมันขึ้นมาเท่านั่นที่เรียกใช้ได้ ต่างจากการที่เราประกาศตัวแปร global เอาไวก่อน start() แบบนั่นทุกๆๆฟังก์ชั่นจะสามารถใช้งานและแก้ไขตัวแปรได้ครับ

อ๋อ  ขอบคุณครับ
Title: Re: รบกวนสอบถามครับ
Post by: Redbull on พฤศจิกายน 24, 2011, 07:54:41 pm
ท่าน Admin.....
เรื่อง Sleep เขกกะโหลกตัวเองไปแล้วครับ โอเคครับเคลียร์...ส่วนเรื่องไม่เปิดออเดอร์ ผมลองไป Run ในโบรก 4 ตำแหน่ง สามารถเปิดออเดอร์ได้แล้วครับ....
Case นี้จบครับ (นอนหลับหล่ะ) ขอปิดกระทู้เลยแล้วกับ...เดี๋ยวจะมีมาอีกหลายกระทู้ครับ..ปัญหาเยอะครับ...แต่กระทู้นี้ท่าน D_Daimond แย่งซีนผมซะงั้น..อะล้อเล่นครับ..ขอบคุณครับที่ช่วยถามให้ความรู้เพิ่ม...
....ขอบคุณมากมายครับ.../^_^/ ;D
Title: Re: รบกวนสอบถามครับ
Post by: D_Diamond on พฤศจิกายน 24, 2011, 08:24:56 pm
ขอโทษท่าน Redbull ด้วยครับผมคาใจมานานเป็นปีๆ อิอิ

เรื่องที่ไม่เปิดออเดอร์นี่เป็นเพราะว่า Thinkforex มันเป็น ECN ครับ  ตั้ง SL TP ไม่ได้ จึงเทรดไม่ได้
ลองกดปุ่ม New Order ดูครับ
Title: Re: รบกวนสอบถามครับ
Post by: Redbull on พฤศจิกายน 25, 2011, 02:13:16 pm
ฮั่นแน่...ยังไม่จบใช่ไหมท่าน D_Diamond....
ลองกดปุ่ม New Order แล้ว มันเป็นอย่าที่ท่านว่าครับ (ตั้ง SL TP ไม่ได้) ว่าแต่ ECN มันคือะไรน่ะกร๊าบ...และอีกคำถามน่ะกร๊าบ...ทำไม่ EA ตัวอื่นที่ใช้อยู่มันตั้ง SL TP ได้คับ...เช่น MDP หรือ Megadriod ทำไมมันตั้งได้...งงงงง
...รบกวนช่วยเคลียร์ปัญหาให้ด้วยคับ...อืม..จะเข้ามาอ่านกระทู้อีกไหมเนี่ย.../^_^/"...
Title: Re: รบกวนสอบถามครับ
Post by: D_Diamond on พฤศจิกายน 25, 2011, 04:21:53 pm
MDP ที่ตั้งได้ เพราะมันเทรดแบบ Pending Order ครับ ท่านลองเปลี่ยน Type ดูครับ
ส่วน Megadroid เทรดธรรมดา  แล้ว Modify ใส่ SL TP จ้า

ECN คืออะไร  คือโบรกเกอร์ที่เชื่อมต่อกับแบงค์มากกว่า 1 แบงค์  เวลาเทรดโปรแกรมจะดูว่าแบงค์ไหนให้ราคาต่ำกว่า ก็จะส่งออเดอร์ไปให้แบงค์นั้น
จึงเป็นข้อดีว่า ECN สเปรดต่ำกว่าโบรกทั่วไป  และ ECN จะไม่มี Dealing Desk คอยรับและเช็คออเดอร์จากเรา จึงซื้อขายได้เร็วมาก กดปุ๊บติดปั๊บ

ส่วนอีเอมันไม่รู้หรอกครับ ว่าบัญชีเราเป็น ECN หรือไม่ พอมันสั่งเทรดแล้วตั้ง SL ไม่ได้ มันก็เทรดไม่ได้ แค่นั้น  แปลกตรงที่มันไม่มีเออเร่อ  จึงไม่ค่อยมีใครรู้

การส่งคำสั่งเทรดแบบปกติ เรียกว่า Execution มี 2 แบบ
1. instant execution  แบบที่เห็นทั่วไปคือ มีให้ตั้ง SL TP และ Maximum Deviation  แบบนี้เทรดภายใน กินกันเองในโบรก ส่วนใหญ่จะเป็นโบรกที่มี dealing desk
2. market execution  แบบนี้พบในโบรก ECN หรือ STP Direct Market ถ้า ECN แท้ ไม่มี Dealing Desk แต่ ECN ไม่แท้มี  และบางโบรกจะมีแบบกึ่ง คือแล้วแต่ลอตมาก/น้อย หรือแล้วแต่ช่วงตลาด

Dealing Desk มีหรือไม่มี รู้ได้อย่างไร ถ้าไม่อยากรู้ ไม่บอก อิอิ
Title: Re: รบกวนสอบถามครับ
Post by: Redbull on พฤศจิกายน 25, 2011, 04:45:59 pm
ขอบพระคุณท่าน D_Diamond เป็นอย่างสูงครับ ที่กลับมาให้ความรู้.....
แต้ถ้าให้ดีกลับมาใหเรื่อง Dealing Desk อีกนะครับ...อยากรู้..อิอิ../#_#/? ???
Title: Re: รบกวนสอบถามครับ
Post by: D_Diamond on พฤศจิกายน 25, 2011, 05:25:28 pm
เมื่ออยากรู้ก็จะบอกให้ อิอิ
Dealing Desk แปลว่าโต๊ะรับกิน  ก็คือ โบรกรับกินออเดอร์ของเรานั่นเองครับ พบได้ทั่วไปในโบรก 4 หลัก สเปรดคงที่
Dealing Desk จะมีหลักๆ2แบบ คือ กินทั้งหมด  กับกินบ้างไม่กินบ้าง

เวลาเราสั่งเทรด โบรกที่มี dealing desk ก็จะรับออเดอร์ไป แล้วจับคู่กับอีกฝั่ง ถ้าเราขายก็จับกับคนซื้อ ถ้าเราซื้อก็จับกับคนขาย  ถ้าจับไม่ได้ก็กินเอง
ถ้าเราเทรดเก่งๆ เงินหนาๆ โบรกก็จะไม่กล้ารับกิน ถ้าจับคู่ไม่ได้ก็ค้าง ไม่รับกิน หรือบอกให้เราเปลี่ยนไปเล่นบัญชีใหญ่ที่ผูกกับแบงค์
โบรกที่มี Dealing Desk รับกินออเดอร์ มักจะมีกลยุทธิ์ต่างๆเพื่อให้เราเทรดเสีย เช่นช่วงข่างออก สเปรดจะขึ้นบ้าง(ทั้งที่โบรกมันสเปรดคงที่)  ลากกราฟไปกิน SL บ้าง แถมบางทียังทะลุ SL ไปไกลทั้งที่ปกติไม่ทะลุ หรืออาจจะเทรดบวกแล้วปิดออเดอร์ไม่ได้  สารพัดวิธีหาเรื่องให้เราเทรดเสีย

ส่วนโบรกที่ไม่มี Dealing Desk ( เรียกว่า NDD ) จะเป็นโบรกที่เป็น STP Direct Market หรือ ECN โบรกจะไม่รับกิน  ทุกออเดอร์จะส่งเข้าแบงค์ มี 2แบบ หลักๆ
1.กินค่าคอมมิชชั่น เนื่องจากโบรกไม่รับกิน จึงไม่มีรายได้จากสเปรด โบรกจึงกินคอมมิชชั่นแทน ส่วนใหญ่จะอยู่ที่ 0.4 - 1.0 pip ต่อออเดอร์  โบรกแบบนี้น่าเชื่อถือที่สุด เช่น roboforex-pro ecn แต่ไม่ใช่ว่าจะดีที่สุด
2.กินสเปรด เรียกว่า Mark Up โบรกเกอร์จะไม่กินคอมมิชชั่น  แต่จะบวกคอมมิชชั่นเข้าไปใน spread แทน มักจะพบได้ในโบรกเดียวกับข้อ1 แต่เป็นบัญชีเล็ก
อาจจะมี Dealing Desk หรือไม่มีก็แล้วแต่โบรก แต่ถึงมีก็ไม่รับกิน  โดยรวมจะเหมือน ECN ต่างกันเรื่องคอมมิชชั่น  บางโบรกจึงมีหลายบัญชี  สเปรดต่างกัน ขึ้นอยู่กับจำนวนเงินเปิดบัญชี

อีกแบบคือโบรกลูกผสม เช่น Roboforex-pro  บางออเดอร์ผ่าน Dealing Desk บางออเดอร์ไม่ผ่าน

ECN คนไม่เคยเล่นจะนึกว่ามันดี บางคนฝันไว้ว่ามีตังเยอะแล้วจะย้ายไป ECN เพราะมันไว เพราะสเปรดต่ำ เพราะมันไม่โกง
แต่จริงๆแล้ว ECN มีข้อเสียบานตะไท

โบรกไหนมีหรือไม่มี Dealing Desk ดูได้ใน MT4 ตามรูปครับ



Title: Re: รบกวนสอบถามครับ
Post by: preeyada on พฤศจิกายน 25, 2011, 06:19:04 pm
สุดยอดเลยครับ เข้าใจแจ่มแจ้งเลยครับ เพิ่งรู้นะเนี๊ยะว่ามีแบบนี้ด้วย
อ่านกำลังมันเลย แล้วก็ที้งเงื่อนไว้ ออกแนวหนังฝรั่งเลยนะท่าน D_Diamond  อิอิ
เลยทำให้อยากรู้เลยว่า ECN มีข้อเสียอย่างไรครับ
Title: Re: รบกวนสอบถามครับ
Post by: D_Diamond on พฤศจิกายน 25, 2011, 07:26:25 pm
เมื่ออยากรู้ก็จะบอกให้ครับ  ข้อเสียบานตะไทของ ECN

1. เสียคอมมิชชั่น  ทำให้เวลาใช้อีเอ ที่เก็บสั้นๆจะไม่คุ้มเอาซะเลย เช่นปิด +3 pip โดนหักคอมไป 0.6 pip เหลือ 2.4 pip
2. spread แกว่ง  และจะสูงมากตอนตี 4 จากเสปรด 0.8 จะกลายเป็น 8  เคยมีครับ ใช้ fapturbo จะปิดกำไร +12 แต่ 00.00 พอดี สเปรดขึ้นไป -50 ปิดขาดทุนเฉย
  อันเนื่องมาจากแบงค์จะทำอะไรซักอย่างในช่วงเวลานั้นทุกวัน  โบรกบอกมาตอนแจ้งเคลมออเดอร์  แต่ลืมไปแล้วว่าทำอะไร
3. ตั้ง SL และ TP ไม่ได้  ทำให้ใช้อีเอบางตัวไม่ได้
4. ทะลุ SL ( เขาเรียกว่า Slippage ) ตั้ง SL ไว้ +1 มันทะลุไป -2 ครับ แต่ TP มันไม่ค่อยทะลุ
5. ทะลุ Pending order เคยดักข่าวนอนฟาร์ม บน-ล่าง 20 pip ไหมครับ มันทะลุไป 40 pip 
   ถ้าจะเทรดแบบ break out โดยการดัก buy stop ก็ลืม ECN ไปได้เลย

ECN ไม่เหมาะอย่างยิ่งกับการเทรดตอนกราฟพุ่ง  ไม่เหมาะกับ Traialing Stop สั้นๆ  ไม่เหมาะกับ Pending   เหมาะกับการเทรดธรรมดาๆ ที่ต้องการความเสถียรเท่านั้นครับ

pending order ของ ecn ไม่ใช่การตั้งซื้อขายล่วงหน้าที่แท้จริงครับ  มันจะเป็นการส่งออเดอร์ไปค้างไว้ที่โบรก  พอราคาไปถึงที่ตั้งไว้  โบรกก็ส่งต่อเข้าแบงค์  พอไปถึงแบงค์มันก็เลยราคาที่เราตั้งไว้ไกลแล้ว  นับทั้ง buy stop buylimit sell stop sell limt และ SL TP แต่ TP นี่หลายโบรกไม่ทะลุ ทะลุแต่ SL  หัวหมออีก
Title: Re: รบกวนสอบถามครับ
Post by: Redbull on พฤศจิกายน 25, 2011, 08:47:06 pm
ตายๆๆ..เพิ่งเริ่มเล่น พออ่านแล้วถอดใจเลยเนี่ยยยยยยย...
จากที่คุณ D_Diamond บอกว่า
"โบรกที่มี Dealing Desk รับกินออเดอร์ มักจะมีกลยุทธิ์ต่างๆเพื่อให้เราเทรดเสีย เช่นช่วงข่างออก สเปรดจะขึ้นบ้าง(ทั้งที่โบรกมันสเปรดคงที่)  ลากกราฟไปกิน SL บ้าง แถมบางทียังทะลุ SL ไปไกลทั้งที่ปกติไม่ทะลุ หรืออาจจะเทรดบวกแล้วปิดออเดอร์ไม่ได้  สารพัดวิธีหาเรื่องให้เราเทรดเสีย"
ผมเข้าใจว่ามันเป็นไปตามกลไกตลาดนะเนี่ย...
"ลากกราฟไปกิน SL" นั่นแสดงว่าทุกโบรกพร้อมใจกันลากไปกินใช่ไหมครับ...ยั่งงี้ต้องเล่นตรงข้าม..
"เทรดบวกแล้วปิดออเดอร์ไม่ได้"อันนี้เจอบ่อยครับ ไอ้เราก็นึกว่า Net ล่ม..โธ่เอ้ย...
...ขอบคุณท่าน D_Diamond มากมายครับ...
...เอาไงดีหว่า จะเลิก..หรือจะเล่นต่อดีหว่าเรา...ติ๊กต๊อกๆๆ..(?_?)///????
Title: Re: รบกวนสอบถามครับ
Post by: preeyada on พฤศจิกายน 25, 2011, 09:00:49 pm
ขอบคุณมากเลยครับ แจ่มแจ้งไปอีกหนึ่ง
รบกวนถามอีกนิด แล้วตอนนี้ท่าน D_Diamond ใช้แบบใดอยู่ครับ
(จะได้ใช้ตาม แสดงว่าถูวิเคราะห์มาอย่าดีแล้ว อิอิ)   ;D
Title: Re: รบกวนสอบถามครับ
Post by: D_Diamond on พฤศจิกายน 25, 2011, 09:10:25 pm
ตายๆๆ..เพิ่งเริ่มเล่น พออ่านแล้วถอดใจเลยเนี่ยยยยยยย...
จากที่คุณ D_Diamond บอกว่า
"โบรกที่มี Dealing Desk รับกินออเดอร์ มักจะมีกลยุทธิ์ต่างๆเพื่อให้เราเทรดเสีย เช่นช่วงข่างออก สเปรดจะขึ้นบ้าง(ทั้งที่โบรกมันสเปรดคงที่)  ลากกราฟไปกิน SL บ้าง แถมบางทียังทะลุ SL ไปไกลทั้งที่ปกติไม่ทะลุ หรืออาจจะเทรดบวกแล้วปิดออเดอร์ไม่ได้  สารพัดวิธีหาเรื่องให้เราเทรดเสีย"
ผมเข้าใจว่ามันเป็นไปตามกลไกตลาดนะเนี่ย...
"ลากกราฟไปกิน SL" นั่นแสดงว่าทุกโบรกพร้อมใจกันลากไปกินใช่ไหมครับ...ยั่งงี้ต้องเล่นตรงข้าม..
"เทรดบวกแล้วปิดออเดอร์ไม่ได้"อันนี้เจอบ่อยครับ ไอ้เราก็นึกว่า Net ล่ม..โธ่เอ้ย...
...ขอบคุณท่าน D_Diamond มากมายครับ...
...เอาไงดีหว่า จะเลิก..หรือจะเล่นต่อดีหว่าเรา...ติ๊กต๊อกๆๆ..(?_?)///????

จะเลิกทำไมครับ  ก็เล่นตอนกราฟสวยๆสิครับ ตอนมันปั่นปว่น หรือช่วงข่าวใหญ่ก็อยู่เฉยๆ
โบรกไม่ลากมากิน SL เราตลอดหรอกครับ จุดที่เรา SL อาจเป็นจุดที่คนอื่น TP ก็ได้
ยังไงตอนปกติๆ กราฟมันก็ต้องวิ่งเหมือนกันทุกโบรกอยู่แล้ว  ที่บอกคือนตอนไม่ปกติ

ที่หนักกว่าเทรดเสีย  เทรดได้กำไรแล้วโบรกเอาคืนก็ยังมีครับ  มีนะครับนอนตื่นมามันส่งเมล์มาบอกว่าเมื่อวานที่เราเทรดได้กำไรมัน non market เป็นที่ช่วงที่ตลาดไม่เปิด ( แปลว่าไรหว่านอนมาเก็ต ตลาดไม่เปิด แล้วกราฟวิ่งได้ไง เทรดได้ไง ก็โบรกมันไม่ได้ส่งออเดอร์ออกนิครับ  เทรดอยู่ในโบรกนั่นแหละ แล้วมันก็เอาคืน)
บางโบรกบอกเทรดสไตล์แบบนี้ไม่ได้  เลิกซะ  แล้วยึดกำไรคืน

ถ้าเทรดแล้วลำบากก็แค่เปลี่ยนโบรกครับ  
หาดูตามเว็บโบรกไหนเรตติ้งดีๆ คนชมเยอะๆบ่นน้อยๆ  อย่าง fxprimus นี่ผมแนะนำเลย มีแต่คนชม หาคนด่าไม่เจอ

แต่ที่หนักกว่าและหนักที่สุดคือเทรดยังไงให้กำไรงอก อิอิ
Title: Re: รบกวนสอบถามครับ
Post by: D_Diamond on พฤศจิกายน 25, 2011, 09:26:36 pm
ขอบคุณมากเลยครับ แจ่มแจ้งไปอีกหนึ่ง
รบกวนถามอีกนิด แล้วตอนนี้ท่าน D_Diamond ใช้แบบใดอยู่ครับ
(จะได้ใช้ตาม แสดงว่าถูวิเคราะห์มาอย่าดีแล้ว อิอิ)   ;D

ที่ผมเทรดอยู่ตอนนี้มี 4 โบรกครับ
1. Hot Forex ( STP ) บัญชี pamm ในลายเซ็น  โบรกนี้ก็เรตติ้งดี  กลางคืนสเปรดไม่ค่อยขึ้น
2. Roboforex - procent และ pro ECN  โบรกนี้เสถียรมากๆ เทรดมาเกือบปีกราฟไม่เคยค้างให้ผมเห็นเลย  ทั้ง cent และ ECN
3. Fxprimus - premier ECN  โบรกนี้สุดยอด ไม่ทะลุ SL แต่ทะลุ TP โบรกเดียวในโลกเลยมั้งครับ  โบรกนี้อะไรอะไรก็ดีหมด  แต่ค่าคอมแพงลอตละ $1 เต็มๆ
   ถ้าจะเล่นก็เล่นบัญชี Variable ดีกว่าครับ 4 หลัก สเปรดแกว่ง+ต่ำ ไม่มีค่าคอม
4. Thinkforex - standard ( STP Direct)  ปล่อยอีเอ MDP + DMP โบรกนี้ไม่ทะลุ SL สเปรดต่ำแต่ไม่เก็บค่าคอม
5. Exness เลิกไปแล้ว ไม่ค่อยเสถียร ค้างและเทรดไม่ติดบ่อยๆ

Title: Re: รบกวนสอบถามครับ
Post by: Redbull on พฤศจิกายน 25, 2011, 10:05:18 pm
โอ๊ะโอ่...เอาเป็นว่าเล่นต่อครับ...โบรก Thinkforex ที่เล่นยังอยู่ในขอบข่ายครับ..ว่าแต่ DMP เป็น EA ประเภทไหนครับ..ตอนนี้ผมใช้ MDP ช่วงนี้แย่นิดส์นึงครับ..อยากได้ตัวอื่นมาชดเชยหน่อยครับช่วงนี้...
ผมว่าที่ท่าน D_Diamond อธิบายมาเป็นประโยชน์กับมือใหม่และมือเก่าที่ไม่รู้มากเลยครับ...
แต่หัวข้อกระทู้ไม่น่าสนใจเท่าไหร่..เอ..จะเปลี่ยนหัวข้อกระทู้ยังไงหว่าที่จะเป็นประโยชน์กับทุกท่านที่ผ่านมา...ขอบคุณมากมายอีกครั้งครับ.../^_^/$$$
แต่ท่าน preeyada ผมนึกว่าเป็นหญิงนะเนี่ย...พอมีครับ..อ๋อ..ผู้ชายนี่หว่า..ล้อเล่นนะครับ..ขำ ขำ
...ปิดกระทู้อีกรอบครับ... See you next กระทู้คับบบบบบบ
Title: Re: รบกวนสอบถามครับ
Post by: D_Diamond on พฤศจิกายน 25, 2011, 10:29:52 pm
ท่านทิ้งคำถามไว้แล้วจะปิดกระทู้ได้ไง อิอิ
DMP เป็นอีเอที่ผมโมมาจาก MDP เวอร์ชั่นแรกสุดครับ  จริงหรือเปล่านี่ผมก็ไม่รู้  ของจริงไม่เคยเห็น  ผมมาก็ 1.2.0 แล้ว  แต่น่าจะจริงเพราะมี DLL ติดมาด้วย
เดิมมันเทรด 1 ออเดอร์ ถ้าเปิดโหมด Hispeed จะเทรดเยอะมากแทบจะทั้งวันเลย
ผมจึงโมจนมันเทรดน้อยลง และแม่นยำถึงระดับที่พอใจ  แล้วก็โมการเลื่อน SL  แล้วใส่ Funky Exit ( เอามาจาก 1.2.0 ) แต่ตอนหลังเอาออกดีกว่า
สุดท้ายโมใส่ Money Management ผมเรียกว่ามันว่า Hyper Mode เวลาเทรดเสียจะมี MM เขาช่วยเพื่อแก้คืนได้เร็วขึ้น 
MM แบบนี้ไม่อันตราย ไม่ได้เบิ้ลลอตจนล้างพอร์ต แต่ละเพิ่มลอตบ้างเมื่อเทรดเสีย ลดลอตบ้างเมื่อเทรดบวก ถ้าบวกมากจะลดกลับมาที่ลอตเริ่มต้น

ลองแบคเทสแล้วเปิด visual mode จะเห็นการทำงานครับ ตั้งสติให้ดีก่อนแบคเทสนะครับ

บัญชีเก่าวันที่ 1 - 11 ได้ 22% ครับ
บัญชีใหม่วันนี้เทรดไป 1 ออเดอร์ +3.6 ได้มา 14ดอล บัญชีนี้เริ่ม 16 พ.ย. ตอนนี้กำไรอยู่ที่ 14% ครับ
ย้ายบัญชีเพราะว่าเซิฟเวอร์อเมริกามันเน่า จึงต้องย้ายมาฮ่องกงครับ

ปิดกระทู้!@#$%^&&*()
Title: Re: รบกวนสอบถามครับ
Post by: linconz on พฤศจิกายน 25, 2011, 10:50:42 pm
exness ระวังครับ สเปรด แวรี่   ขนาดผมตั้ง sl ไว้แบบได้กำไรแน่นอน คือบวกไปแล้ว พอดีต้องออกไปธุระ แล้วอีกไม่กี่นาทีข่าวออก

ปรากฏว่า ปิดลบครับ เซ็งมาก  คุยกับซัพพอร์ต มันบอก สลิปเพจ  แมร่งงงงล่ิอไปเกือบ 30 จุดเลยน๊ะนั่น หลังจากวันนั้นผมไม่คุยกับมันอีกเลย

คิดว่ามรึงโกงได้โกงไป เดี๋ยวผมจะทำให้มันไล่ผมออกให้ได้  ขอเวลาซัก หน่อย ที่ผมทนใช้โบรคนี้เพราะสะดวกฝากถอนเท่านั้นแหละ ฝากเซเว่นได้ ถอนเข้าแบงค์เลย
Title: Re: รบกวนสอบถามครับ
Post by: honda2006 on เมษายน 18, 2012, 09:16:58 pm
หาคำตอบมานานแล้วครับ ขออนุญาตรบกวนถามคุณ D_Diamond บัญชี ECN ทั้ง 4 โบร้คต้องยืนยันตัวตนด้วยมั้ยครับตอนสมัคร

ขอบคุณครับ
Title: Re: รบกวนสอบถามครับ
Post by: D_Diamond on เมษายน 18, 2012, 10:47:04 pm
ต้องยืนยันหมดครับ

เดี๋ยวนี้ผมเล่นโบรก tradefort กับ rvdmarkets เป็นหลัก(แต่โบรกอื่นก็ยังเล่นอยู่)  โบรกแรกชอบมากใช้อีเอได้ทุกตัวเลย

tradefort - leverage 1:1000 มีบัญชี cent
แนะนำให้เล่นบัญชี  Flex  สเปรดอียูไม่เกิน 1.4 จียู ไม่เกิน 1.9  คู่อื่นก็ต่ำ ไม่เสียค่าคอม ไม่เสีย swap
โดยปกติจะไม่มี slippage แต่บางทีก็มีนานๆที   มีเซิฟเวอร์ยุโรป+เอเชีย

rvdmarket  โบรกนี้มี ECN แบบบริจ 3 ชนิด เลือก integral จะได้สเปรดต่ำที่สุด  โบรกนี้สเปรดต่ำมาก  เสียค่าคอม 0.5 ดอล ต่อ 100 000 usd ( อียู 0.7 pip จียู 0.8 pip ยูเจ 0.5 pip )
leverage 1:500  ความเร็วเฉลี่ยประมาณ 350 ms  มี slippage ตามปกติของ ECN แต่ดันใช้ MDP แล้วผลงานดี
เซิฟเวอร์อมเริกาที่เดียว
โบรกนี้แถมอีเอ Euronis มาให้  แต่ถ้าเราเปิดใช้  จะเสียค่าคอมเพิ่มเป็น 0.7 (0.2 เอาไปให้เจ้าของอีเอ  รวมทั้งออเดอร์อื่นที่ไม่ใช่อีเอนี้เทรดด้วย)

โบรกที่มี slippage แล้วใช้ mdp ได้กำไรปัจจุบันผมเจอแค่ 2 โบรกคือ ibfx กับ rvdmarket
สำหรับผมตอนนี้โบรกที่เหมาะจะใช้อีเอที่สุดคือ Tradefort บัญชี Flex  เนื่องจาก สเปรดต่ำ ไม่เสียค่าคอม+swap และไม่มี slippage ครับ

ปล. ปีนี้โบรก fxprimus ความเร็วตก เนื่องจากได้เพิ่ม Dealing desk เข้ามา อย่างอื่นยังเหมือนเดิม(แต่สเปรดต่ำลงหลายคู่)

ตอนนี้กำลังสนใจ octafx พึ่งจะลองได้1สัปดาห์ครับ