EA Programing => ปัญหาที่พบในการเขียน EA => Topic started by: Nantipat on ธันวาคม 13, 2015, 10:40:13 am
-
:'(รบกวน Admin หรือผู้รู้ครับ
ผมจะสามารถให้ OrderModify (TrailingStop)ทุกOrder ที่เข้าเงื่อนไขตามที่เราตั้งไว้ได้ไหมครับ
เช่น EA เปิดทั้งหมด 10 Order
TrailingStop ที่ 150 pips พอถึง150 pips แล้ว Order ที่ EA เปิดไว้ เข้าเงื่อนไข TrailingStop 5 Order
???จะต้องเขียน code แบบไหน ครับถึงจะ Modify 5 Order ที่เข้าเงื่อนไขตามที่เราตั้งไว้พร้อมกันครับ ???
:)ขอบคุณครับ
จากcode นี้ จะ Modify แค่ ทีละ1 Order ครับ
{
int ordertotal=OrdersTotal()-1;
for(;ordertotal>=0;ordertotal--){
int Count=OrderSelect(ordertotal,MODE_TRADES);
if(OrderMagicNumber( )== Magic )
if(OrderType()== OP_BUY) // long position is opened
{
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>Point*TrailingStop)
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
int res=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-Point*TrailingStop,Digits),OrderTakeProfit(),0,Green);
if(!res)
Print("Error in OrderModify. Error code=",GetLastError());
else
Print("Order modified successfully.");
}
}
}
else
{
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
{
int res=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask-Point*TrailingStop,Digits),OrderTakeProfit(),0,Red);
if(!res)
Print("Error in OrderModify. Error code=",GetLastError());
else
Print("Order modified successfully.");
}
}
}
return (TrailingStop);
}
-
คือจะให้มันตั้ง Trailling ทุก order ที่เข้าเงื่อนไขใช่ไหมครับ ผมต้องถามก่อน ทุก order นี้เปิดพร้อมกันหรือเปล่าครับ เพราะ Trailing มันจะดูราคาเปิดเป็นหลัก
-
คือจะให้มันตั้ง Trailling ทุก order ที่เข้าเงื่อนไขใช่ไหมครับ ผมต้องถามก่อน ทุก order นี้เปิดพร้อมกันหรือเปล่าครับ เพราะ Trailing มันจะดูราคาเปิดเป็นหลัก
คือจะให้มันตั้ง Trailling ทุก order ที่เข้าเงื่อนไขใช่ไหมครับ=ใช่ครับ
ทุก order นี้เปิดพร้อมกันหรือเปล่าครับ= ทุกOrder ไม่ได้เปิดพร้อมกันครับ ทุกๆ 4 ชม. จะเปิด 1 Order ถ้าเข้าเงื่อนไขในการเปิดครับ และจะเปิดสูงสุดที่ 100 Order ครับ
-
ผมเดาน่าจะผิดตรงนี้ครับ
for(;ordertotal>=0;ordertotal--){
คุณไม่ได้ใส่ค่าเริ่มต้นให้มัน มันเลยไม่ได้วนลูปหรือเปล่า ไม่แน่ใจเหมือนกันผมไม่เคยเขียนไม่ครบแบบนี้
ตามปกติน่าจะเขียนแบบนี้ครับ
int ordertotal=OrdersTotal()-1;
for(ordertotal;ordertotal>=0;ordertotal--){
-
ขอบคุณครับ