前交易時(shí)段開(kāi)/高/低/收 [MultiCharts MC]
作者:MultiCharts MC 來(lái)源:cxh99.com 發(fā)布時(shí)間:2012年07月16日 點(diǎn)擊數(shù):
【收藏到本網(wǎng)的會(huì)員中心】
- 咨詢內(nèi)容:版本: 6.0 Beta2
交易商品: NYMEX 原油期貨 (美國(guó)交易時(shí)間 18:00 - 隔日 17:15 相當(dāng)於臺(tái)灣時(shí)間 6:00-隔日5:15)
程式 中需要取得前一交易時(shí)段開(kāi)/高/低/收價(jià) 以進(jìn)行計(jì)算,當(dāng)然最直覺(jué)就想到OPEND/HIGHD/LOWD/CLOSED 等FUNCTION..
但 國(guó)外交易所的交易時(shí)間往往都有跨過(guò)每天00:00 ,結(jié)果透過(guò)OPEND/HIGHD/LOWD/CLOSED 等FUNCTION取得前一交易時(shí)段
開(kāi)/高/低/收 價(jià)位時(shí),卻發(fā)現(xiàn)MC 會(huì)在換日的時(shí)候當(dāng)作是兩交易時(shí)段的分界...結(jié)果就抓到 前一日而非前一交易時(shí)段的開(kāi)/高/低/收,
請(qǐng)問(wèn)有另外的FUNCTION可以使用嗎? THANKS
- MC技術(shù)部:[發(fā)問(wèn)] 前交易時(shí)段開(kāi)/高/低/收 by 2010-02-05 17:38:120 昵稱:SeanWang信箱:不顯示成就:發(fā)文(3) / 回文(30) / 推薦(3) 恩.... 已經(jīng)解決了。
解決方法如下(無(wú)論Time Zone 設(shè)為Exchange 或是 Local 都OK)..... 透過(guò)SESSION 函數(shù)很方便
新增 一個(gè) Function 命名 為 $OHLCPeriodsAgo
Inputs:
PeriodsAgo(numericsimple),
oPeriodOpen(numericref),
oPeriodHigh(numericref),
oPeriodLow(numericref),
oPeriodClose(numericref) ; Variables: Count(0) ; Arrays: arr0[4,5000](-1) ; // O/H/L/C if (PeriodsAgo > 5000 or BarType > 4) then //Only keep 5000 days of records
begin
oPeriodOpen = -1 ;
oPeriodHigh = -1 ;
oPeriodLow = -1 ;
oPeriodClose = -1 ;
$OHLCPeriodsAgo = -1 ;
end
else
begin
For Value1 = 1 to SessionCount(0)-1 begin
Condition1 = CurrentBar = 1 or (SessionEndDayMS(Value1) = DayofWeek(Date[1])) and (Time[1] <= SessionEndTimeMS(Value1))
AND
(SessionStartDayMS(Value1+1) = DayofWeek(Date)) and (Time >= SessionStartTimeMS(Value1+1)); if Condition1 then
begin
Count = Count- 1 ;
if Count <= -1 then Count = 5000
else
arr0[2,Count] = H[1] ;
arr0[3,Count] = L[1] ;
arr0[4,Count] = C[1] ;
end
else
begin
arr0[1,Count - 1] = O;
if H > arr0[2,Count] then arr0[2,Count] = H ;
if L < arr0[3,Count] then arr0[3,Count] = L ;
arr0[4,Count] = C[1] ;
end ;
end; oPeriodOpen = arr0[1,Mod(Count + PeriodsAgo, 5001)] ;
oPeriodHigh = arr0[2,Mod(Count + PeriodsAgo, 5001)] ;
oPeriodLow = arr0[3,Mod(Count + PeriodsAgo, 5001)] ;
oPeriodClose = arr0[4,Mod(Count+ PeriodsAgo, 5001)] ; $OHLCPeriodsAgo = 1 ;
end; 然後 .... 新增以下名為 $OpenD 的函數(shù) inputs: PeriodsAgo( numericsimple ) ;
variables: var1(0), var2(0), var3(0), var4(0) ; Value1 = $OHLCPeriodsAgo( PeriodsAgo, var1, var2, var3, var4 ) ; $OpenD = var1 ; 新增以下名為 $HighD 的函數(shù) inputs: PeriodsAgo( numericsimple ) ;
variables: var1(0), var2(0), var3(0), var4(0) ; Value1 = $OHLCPeriodsAgo( PeriodsAgo, var1, var2, var3, var4 ) ; $HighD = var2 ; 新增以下名為 $LowD 的函數(shù) inputs: PeriodsAgo( numericsimple ) ;
variables: var1(0), var2(0), var3(0), var4(0) ; Value1 = $OHLCPeriodsAgo( PeriodsAgo, var1, var2, var3, var4 ) ; $LowD = var3 ; 新增以下名為 $CloseD 的函數(shù) inputs: PeriodsAgo( numericsimple ) ;
variables: var1(0), var2(0), var3(0), var4(0) ; Value1 = $OHLCPeriodsAgo( PeriodsAgo, var1, var2, var3, var4 ) ; $CloseD = var4 ;
- MC客服:感謝您的分享
- MC客服:謝謝你幫我們實(shí)作出來(lái)當(dāng)初有這個(gè)想法,一忙就沒(méi)去弄^^
- MC客服:很實(shí)用的函數(shù),先收下來(lái),感謝分享~
相關(guān)文章
-
沒(méi)有相關(guān)內(nèi)容