如何解决“检索有效价格过程中存在延迟。订单将不被发送,直到一个有效价格被检索出来。”?

待办订单提示:检索有效价格过程中存在延迟。订单将不被发送,直到一个有效价格被检索出来。这是因为在用TradeStation下单(手动或EasyLanguage下单)时,会预先获取该只代码的盘口(行情)以验证委托是否有效(包括市价单和限价单),一般而言,这种情况在委托的期限与委托的类型不匹配时或代码为非法代码(不存在的代码)时会出现这个错误提示。此外,在EasyLanguage中用OrderTicket发单时,为了避免该问题,可以使用属性设置跳过本地验证,直接发送委托至服务器。

若是想在OrderBar中发送委托时避免客户端验证,直接发送该委托,可以在 文件-默认选项-TradeStation下单栏 中进行设置,将 提交委托前自动验证委托属性取消选中即可,这样的设置在发送普通市价单、限价单时不会受任何影响。但是值得注意的是,若是取消选中,在提交一些需要行情的委托单(Improve,Shave等)时可能会以错误的价格发送,所以请慎重使用。

示例1:如何在EasyLanguage中跳过本地验证以避免该问题发生

using guosen;
using elsystem;
using tsdata.common; 
using tsdata.marketdata;
using elsystem.collections;

vars:
    guosen.OrderTicket otk1(null),
    guosen.Order ord(null),
    string accID("410038122059");//根据情况修改Account ID

method void AnalysisTechnique_Initialized( elsystem.Object sender, elsystem.InitializedEventArgs args ) 
begin
    otk1 = new guosen.OrderTicket;  
    otk1.Symbol = "000002.SZ";
    otk1.Quantity = 100;
    otk1.BypassClientValidation = True;//跳过本地验证
    otk1.Account = accID;
    otk1.Action = OrderAction.Buy;
    otk1.SymbolType = tsdata.common.SecurityType.Stock;
    otk1.Type = tsdata.trading.OrderType.Market;
    otk1.Duration="AUT";
    otk1.ExtendedProperties.SetItem("OrderName", "customOrderIDxxxxxxxx");
    ord = otk1.Send();
    ord.Updated += ord_Updated;//为该order对象绑定updated事件
end;


//Order 更新事件
Method void ord_Updated(elsystem.Object sender,guosen.OrderUpdatedEventArgs args)
vars:Order od;
Begin
    if(args.Order<>null)then
    Begin
        print(OrderToString(args.Order,";","="));
    End;

End;

//将一个Order对象的基本属性输出到字符串,并以sep分隔属性,以sepChar分隔键值对
Method string OrderToString(Order ord,string sep,string sepChar)
vars:string str,Vector vec_tmp,int loop;
Begin
    str = "";
    vec_tmp = new Vector;
    vec_tmp.Push_back("account" + sepChar + ord.AccountID);
    vec_tmp.Push_back("action" + sepChar + ord.Action.ToString().ToLower());
    vec_tmp.Push_back("Duration" + sepChar + ord.Duration.ToString().ToLower());
    vec_tmp.Push_back("EnteredQuantity" + sepChar + ord.EnteredQuantity.ToString().ToLower());
    vec_tmp.Push_back("EnteredTime" + sepChar + ord.EnteredTime.ToString().ToLower());
    vec_tmp.Push_back("FilledQuantity" + sepChar + ord.FilledQuantity.ToString().ToLower());
    vec_tmp.Push_back("FilledTime" + sepChar + ord.FilledTime.ToString().ToLower());
    vec_tmp.Push_back("LimitPrice" + sepChar + ord.LimitPrice.ToString().ToLower());
    vec_tmp.Push_back("OrderID" + sepChar + ord.OrderID.ToString().ToLower());
    vec_tmp.Push_back("State" + sepChar + ord.State.ToString().ToLower());
    vec_tmp.Push_back("StateDetail" + sepChar + ord.StateDetail.ToString().ToLower());
    vec_tmp.Push_back("LimitPrice" + sepChar + ord.LimitPrice.ToString().ToLower());
    vec_tmp.Push_back("Symbol" + sepChar + ord.Symbol.ToString().ToLower());
    vec_tmp.Push_back("Type" + sepChar + ord.Type.ToString().ToLower());
    vec_tmp.Push_back("LimitPrice" + sepChar + ord.LimitPrice.ToString().ToLower());
    vec_tmp.Push_back("OrderName" + sepChar + ord.ExtendedProperties["OrderName"].ToString());

    for loop = 0 to vec_tmp.Count-1
    Begin
        str = str + vec_tmp[loop].ToString()+",";
    End;

    Return str; 
End;
Copyright © 1998-2018 国信证券股份有限公司 版权所有发布时间: 2018-05-14 15:06:24

results matching ""

    No results matching ""