EA Programing => ปัญหาที่พบในการเขียน EA => Topic started by: veronika on สิงหาคม 02, 2014, 07:30:20 pm
-
ตามหัวข้อเลยครับ อยากจะสร้างปุ่มสำหรับส่งคำสั่ง เพื่อเป็น Guide line สำหรับ งานต่อยอดน่ะครับ
เช่น ปุ่มกด สั่งซื้อ ปุ่มกดสั่งขาย ปุ่มปิด order ปุ่ม modify
พอจะมีตัวอย่าง code คร่าวๆมั้ยครับ แบบที่ไม่ต้องไปดึง dll ของคนอื่น แต่ดึงเฉพาะส่วนที่เป็นของระบบก็พอ
ตัวอย่างก็ประมาณนี้ครับ
(http://image.ohozaa.com/i/4ae/gnbt1q.jpg)
ขอบคุณครับ
-
http://www.thaiforexea.com/index.php/topic,1963.msg10127.html#msg10127
-
ขอบคุณครับ เดี๋ยวจะลองเอาไปทดสอบดู ถ้าได้ผลแล้วจะมา update เรื่อยๆนะครับ
-
มีคำถามครับ admin
อย่างถ้าผมจะสร้างปุ่ม ที่กดแล้ว ให้มันทำงานเหมือน hot key นี่ต้องทำยังไงครับ
เช่น กดเมาส์ที่ปุ่ม a มีค่าเท่ากับกด f7 ที่ keyboard
-
สวัสดีครับ
คือผมต้องการให้ตัวเลขของ OrderType แสดงแต่ 3 ตัวหลังน่ะครับ
ควรเขียนยังไงครับ อันนี้เป็น code ที่ผมเขียนออกมา มันแสดงหมดเลย เลยทำให้มันเป็นแบบในรูปครับ
string Type;
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA){
if(OrderType()==0)Type="Buy";
if(OrderType()==1)Type="Sell";
ObjectCreate("Order"+OrderTicket(),OBJ_LABEL,0,0,0);
ObjectSet("Order"+OrderTicket(),OBJPROP_HIDDEN,true);
ObjectSet("Order"+OrderTicket(),OBJPROP_XDISTANCE,25);
ObjectSet("Order"+OrderTicket(),OBJPROP_YDISTANCE,185+(i*18));
ObjectSet("Order"+OrderTicket(),OBJPROP_SELECTABLE,false);
ObjectSetText("Order"+OrderTicket(),OrderTicket()+" | "+Type+" | "+OrderLots()+" | "+OrderProfit(),10,"Times New Roman",clrWhiteSmoke);
รูปครับ
(http://upload.siamza.com/file_upload/thumb/150814/1413572.jpg)
อยากให้ตัว Ticket แสดงผลเป็นแบบ "..123" แค่นี้พอครับ
ขอบคุณครับ
ps.ถ้าได้คำตอบข้างบนด้วยก็ขอบคุณมากๆครับ
-
สวัสดีครับ
คือผมต้องการให้ตัวเลขของ OrderType แสดงแต่ 3 ตัวหลังน่ะครับ
ควรเขียนยังไงครับ อันนี้เป็น code ที่ผมเขียนออกมา มันแสดงหมดเลย เลยทำให้มันเป็นแบบในรูปครับ
string Type;
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA){
if(OrderType()==0)Type="Buy";
if(OrderType()==1)Type="Sell";
ObjectCreate("Order"+OrderTicket(),OBJ_LABEL,0,0,0);
ObjectSet("Order"+OrderTicket(),OBJPROP_HIDDEN,true);
ObjectSet("Order"+OrderTicket(),OBJPROP_XDISTANCE,25);
ObjectSet("Order"+OrderTicket(),OBJPROP_YDISTANCE,185+(i*18));
ObjectSet("Order"+OrderTicket(),OBJPROP_SELECTABLE,false);
ObjectSetText("Order"+OrderTicket(),OrderTicket()+" | "+Type+" | "+OrderLots()+" | "+OrderProfit(),10,"Times New Roman",clrWhiteSmoke);
รูปครับ
(http://upload.siamza.com/file_upload/thumb/150814/1413572.jpg)
อยากให้ตัว Ticket แสดงผลเป็นแบบ "..123" แค่นี้พอครับ
ขอบคุณครับ
ps.ถ้าได้คำตอบข้างบนด้วยก็ขอบคุณมากๆครับ
ใช้
double NormalizeDouble(
double value, // normalized number
int digits // number of digits after decimal point
);
-
มีคำถามครับ admin
อย่างถ้าผมจะสร้างปุ่ม ที่กดแล้ว ให้มันทำงานเหมือน hot key นี่ต้องทำยังไงครับ
เช่น กดเมาส์ที่ปุ่ม a มีค่าเท่ากับกด f7 ที่ keyboard
ไม่น่าจะทำได้นะครับ เพราะ hot key ตามปกติโปรแรกมตัวใดตัวหนึ่งจะมี hot key ได้ต้อง map message กับ Form นั่นตอนสร้างโปรแกรม ส่วน CHARTEVENT_KEYDOWN ถึงจะจับค่า a ได้แต่จะส่ง key message ไปที่ MT4 ยังไงนี้อ่ะสิครับ
-
มีคำถามครับ admin
อย่างถ้าผมจะสร้างปุ่ม ที่กดแล้ว ให้มันทำงานเหมือน hot key นี่ต้องทำยังไงครับ
เช่น กดเมาส์ที่ปุ่ม a มีค่าเท่ากับกด f7 ที่ keyboard
ไม่น่าจะทำได้นะครับ เพราะ hot key ตามปกติโปรแรกมตัวใดตัวหนึ่งจะมี hot key ได้ต้อง map message กับ Form นั่นตอนสร้างโปรแกรม ส่วน CHARTEVENT_KEYDOWN ถึงจะจับค่า a ได้แต่จะส่ง key message ไปที่ MT4 ยังไงนี้อ่ะสิครับ
งั้นแบบนี้จะได้มั้ยครับ?
if(id==CHARTEVENT_OBJECT_CLICK) {
if(clickedChartObject=="ButtonA"){
id=CHARTEVENT_KEYDOWN
.
.
.
}
}
แล้วให้มันส่ง F7 แทน
-
คุณต้องลองทำดูครับ แต่ค่า Key ที่รับได้น่าจะเป็น ascii นะครับ แต่ปัญหามันอยู่ตรงที่คุณจะส่งค่า F7 ให้ Form ของ Mt4 ผ่านทางไหนอ่ะครับ
-
ตอนนี้ต้องใช้ให้กด F7 เอาครับ ลองดูแล้วไม่ได้ผล :-[
ขอความช่วยเหลือเพิ่มเติมครับ
ตอนนี้ อยากจะทราบผลกำไร Profit ของ Order ที่ปิดไปแล้ว
แยกออกตามเงื่อนไข คือ
วันนี้
เมื่อวาน
สัปห์ดานี้
เดือนนี้
ตอนนี้ได้ แบบเดือน กับ เมื่อวานแล้ว
มีปัญหาคือ วันนี้ order แรกมันไม่เอามารวม :-[
ส่วนของสัปห์ดานี่ อยากได้ตัวอย่างหน่อยครับ
ขอบคุณครับ
ps อ่อ ถ้าได้แล้ว จะเอามาแชร์นะครับ
Edit : ของวันนี้ได้แล้วครับ
int i;
double ProfitDay,ProfitDay1,ProfitDay2,SumProfits;
SumProfits = 0;
//----
for(i=OrdersHistoryTotal();i>=0;i--){
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA){
if((TimeDay(OrderCloseTime())==TimeDay(TimeCurrent()))&&(TimeMonth(OrderCloseTime())==TimeMonth(TimeCurrent()))&&(TimeYear(OrderCloseTime())==TimeYear(TimeCurrent()))){
ProfitDay = OrderProfit();
ProfitDay1 = OrderCommission();
ProfitDay2 = OrderSwap();
SumProfits = SumProfits+ProfitDay+ProfitDay1+ProfitDay2;
}
}
}
เหลือของสัปห์ดา
-
ที่คุณติดเรื่อง week เพราะมันไม่มีฟังก์ชั่นสำเร็จรูป คุณก็กำหนดวันลงไปสิครับว่าเราจะให้เริ่มวันค้นหา Order ที่ปิดตั้งแต่วันนี้ย้อนหลังลงไปถึงวันอาทติย์ แล้วใช่ If กรองถ้า Order ใดเข้าเงื่อนไขก็ให้แสดงผผลหรือจะนำค่าไปใช่งานอะไรก้แล้วแต่คุณ