สวัสดี คุณจะนับ net pip จากคำสั่งซื้อขายที่เปิดอยู่ในเทอร์มินัลใน mql4 ได้อย่างไร
สวัสดี คุณจะนับ net pip จากคำสั่งซื้อขายที่เปิดอยู่ในเทอร์มินัลใน mql4 ได้อย่างไร
ตกลงสิ่งนี้ใช้งานไม่ได้จริง ๆ .. มันจะแสดง 35.xx เสมอด้วยเหตุผลบางอย่างแม้ว่าฉันจะรู้ว่านั่นไม่ใช่จำนวน pip ลอยตัวที่ถูกต้องOriginally Posted by ;
อาฉันเห็น ขอขอบคุณ!
OrderSelect เป็นบูล ดังนั้น #8220;==1#8221; ไม่จำเป็น#8217; คูณด้วย 0.1 เพื่อแปลงจากจุดเป็น pip และไม่จำเป็นต้องใช้วงเล็บหากมีสิ่งเดียวเท่านั้นที่ตามมา ยังนับคำสั่งของคุณเสมอ แต่ใช่ ฉันพิมพ์ผิดOriginally Posted by ;
ทำบนโทรศัพท์ของฉัน ฉันแก้ไขมันเมื่อกี้
บางสิ่งเช่นนี้: แทรกโค้ด double sum=0; สำหรับ(int o=OrdersTotal()-1;ogt;=0;o#8212 if(OrderSelect(o,SELECT_BY_POS,MODE_TRADES){ RefreshRates(); if(OrderType()==0)sum =Bid-OrderOpenPrice (); if(OrderType())sum =OrderOpenPrice()-Ask;} sum*=0.1; Print(#8220;Order Pip Sum=#8220; (string)sum);Originally Posted by ;
ทำไมคุณคูณผลรวมด้วย 0.1? แล้ววงเล็บของคุณที่ดูเหมือนว่าไม่มี for loop ล่ะ? นี่คือความพยายามของฉัน .... ใส่รหัส double calcNetPips () { ผลรวมสองเท่า = 0; สำหรับ (int i=0; ilt;OrdersTotal; i ) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == 1) { RefreshRates(); if(OrderType==0) sum =Bid-OrderOpenPrice(); อื่น sum =OrderOpenPrice()-Ask; } } ผลตอบแทนรวม*=0.1; }Originally Posted by ;
คุณใช้รหัสของคุณ โดยเฉพาะ #8220;else#8221;? หากคุณใช้ #8220;else#8221; กำลังติดตาม #8220;if(OrderType()==0)#8221; จากนั้นจะรวมคำสั่งซื้อที่รอดำเนินการในผลรวมด้วย ใส่รหัส if(OrderType()==0)//buy market order else {}//คำสั่งซื้ออื่น ๆ ในตลาด รอดำเนินการ I#8217;m ไม่แน่ใจว่าเป็นปัญหาของคุณหรือไม่ แต่ถ้าเป็นเช่นนั้น คุณต้องระบุประเภทคำสั่งให้ชัดเจน เป็นรายบุคคล ใส่รหัส if(OrderType()==0)/buy market order if(OrderType()==1)//sell market order นอกจากนี้ if(OrderType())//sell market order/อาจใช้เงื่อนไข enum :/OP_BUY=0,OP_SELL=1 if(OrderType()==OP_BUY) if(OrderType()==OP_SELL) นอกจากนี้ คุณไม่สามารถส่งคืนงานได้ ดังนั้น: return sum*=0.1; จะไม่ทำงาน; ต้องทำการคูณก่อนแล้วจึงคืนค่า: Inserted Code sum*=0.1; ผลตอบแทนรวม;/หรือส่งคืนผลรวม*0.1;Originally Posted by ;