Order cấu trúc lệnh, được trả về bởi hàm GetOrder
{
Id: Biểu thức giao dịch duy nhất
Price: Giá đặt hàng
Amount: Số lượng đơn đặt hàng
DealAmount: Số lượng giao dịch
Status: trạng thái của lệnh, trạng thái của lệnh trong hằng số tham chiếu
Type: loại lệnh, kiểu lệnh trong hằng số tham chiếu
}
Một thời gian đặt hàng nữa trong cấu trúc này.
Trong một tình huống mà rất nhiều đơn đăng ký không được thực hiện, thời gian mỗi đơn đăng ký có hiệu lực là rất quan trọng.
Ví dụ: để xóa mã của danh sách dài hơn một khoảng thời gian nhất định:
function DelPendingOrderstime(time) {
while (true) {
var orders = GetRecords();
if (!orders) {
Sleep(2000);
continue;
}
var counter = 0;
for (var i = 0; i < orders.length; i++) {
if (new Date().getTime()-orders[i].Time >= time) {
exchange.CancelOrder(orders[i].Id);
counter++;
Sleep(2000);
}
}
if (counter === 0) {
break;
}
}
}
Điều này có thể xảy ra nếu ORDER có thuộc tính thời gian đặt hàng time.
Trong ngôn ngữ mql4, hàm đặt hàng đặc biệt có một tham số về thời hạn hợp lệ của đơn đặt hàng.
Tôi mong rằng ông già sẽ đưa time này vào trong cấu trúc order.
用了个函数封装返回对象。
function createNewOrder(order){
var opTime = new Date();
return {
Id : order.Id, //交易单唯一标识
Price : order.Price, //下单价格
Amount : order.Amount, //下单数量
DealAmount : order.DealAmount, //成交数量
Status : order.Status, //订单状态, 参考常量里的订单状态 Type
time : opTime // 新增加的属性,为调用该函数的时间,该函数 在下单后 用GetOrder(ID) 函数 获取order结构 后调用新封装入时间
};
}
function main(){
var id = exchange.Buy(-1,1);
var order = exchange.GetOrder(id);
var newOrder = createNewOrder(order);
Log("the newOrder `s time:",newOrder.time);
Log("the newOrder is:",newOrder);
Log("ORDER_STATE_PENDING:",ORDER_STATE_PENDING);//ORDER_STATE_PENDING :未完成
Log("ORDER_STATE_CLOSED:",ORDER_STATE_CLOSED);//ORDER_STATE_CLOSED :已关闭
Log("ORDER_STATE_CANCELED",ORDER_STATE_CANCELED);//ORDER_STATE_CANCELED
}

这样行么?我也是 试试~~嘿嘿
- 1

