GetOrder 함수에서 반환되는 Order 구조
{
ID: 거래 부서의 고유한 ID
가격: 주문 가격
Amount: 주문량
거래액: 거래액
Status: 주문 상태, 참조 상수에서 주문 상태
Type: 명령형, 참조 상수의 명령형
}
이 구조에서 한 번 더 주문할 수 있습니다.
많은 상표가 거래되지 않은 상황에서, 각 상표가 유효한 시간은 중요합니다.
예를 들어: 특정 시간 이상 걸린 목록의 코드를 삭제하려면:
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;
}
}
}
ORDER 구조에 time라는 속성이 있어야 이 함수가 성립할 수 있다.
mql4 언어에서, 주문 함수는 주문 유효 기간에 대한 특수한 arguments를 가지고 있습니다.
이 시간대 (time) 를 오더 (orders) 구조에 포함할 수 있었으면 좋겠습니다.
用了个函数封装返回对象。
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

