AT-E06 可否提供奇狐的萬用 API 範例 ?
我的程式碼不是標準的 1,0,-1 的總倉位輸出,而是分為進L,出L,進S,出S四個條件,該怎麼修改來使用「萬用 API」下單呢 ? (以下是我原來的程式碼)
進L:=DoLS=1 or DoLS=3; //多進
出L:=DoLS=2 or DoLS=-3 or DoLS=4 or DoLS=5; //多出
進S:=DoLS=-1 or DoLS=-3; //空進
出S:=DoLS=-2 or DoLS=3 or DoLS<=-4 or DoLS=-5; //空出
ENTERLONG:進L;
EXITLONG:出L;
ENTERSHORT:進S;
EXITSHORT:出S;
回答:
// 請注意:請先至「公告設定」之「一鍵搞定」中「註冊-萬用 API 元件」
// 需更新至最新版,並「重新註冊元件」,才能用 GetNowPosition() 函式
進L:=DoLS=1 or DoLS=3; //多進
出L:=DoLS=2 or DoLS=-3 or DoLS=4 or DoLS=5; //多出
進S:=DoLS=-1 or DoLS=-3; //空進
出S:=DoLS=-2 or DoLS=3 or DoLS<=-4 or DoLS=-5; //空出
ENTERLONG:進L;
EXITLONG:出L;
ENTERSHORT:進S;
EXITSHORT:出S;
NowPoInt:= 0; // 因奇狐無法記錄變數值,總倉位要從萬用 API 抓出來
// 取得倉位:若沒有初始化倉位,會回傳 99999
<%
Dim OMCOMAPI, rtn
Set OMCOMAPI = CreateObject(“OMSignAPI.OMCOMAPI”)
rtn = OMCOMAPI.GetNowPosition(“FTX”)
if rtn <> 99999 then FFL.VarData(“NowPoInt”) = rtn
%>
NowPo:= NUMTOSTR(NowPoInt,0);
//作多 +1
NowPO:= IF(ENTERLONG,’1′, NowPO);
//作空 -1
NowPO:= IF(ENTERSHORT,’-1′, NowPO);
// 平倉 0
NowPO:= IF((EXITLONG and NowPO= ‘1’) or (EXITSHORT and NowPO= ‘-1′) ,’0′, NowPO);
// 當沖 1:25 平倉 0
NowPO:= IF(OPENMINUTES(TIME)>=280,’0’, NowPO);
//K線時間
NowDT:= NUMTOSTR(YEAR,0) + ‘/’ +NUMTOSTR(MONTH,0)+ ‘/’+NUMTOSTR(DAY,0) + ‘ ‘+NUMTOSTR(HOUR,0)+’:’+NUMTOSTR(MINUTE,0)+’:00′;
//最新收盤價
NowC := NUMTOSTR(C,0);
<% Dim OMCOMAPI, rtn NowDT = FFL.VarData(“NowDT”) NowPO = FFL.VarData(“NowPO”) NowC = FFL.VarData(“NowC”) Set OMCOMAPI = CreateObject(“OMSignAPI.OMCOMAPI”) rtn = OMCOMAPI.GoOrder(“FTX”,””,NowDT,NowPO,NowC) %>