- UID
- 2
- 积分
- 2893117
- 威望
- 1396590 布
- 龙e币
- 1496527 刀
- 在线时间
- 13326 小时
- 注册时间
- 2009-12-3
- 最后登录
- 2024-12-26
|
【OHLCPeriodsAgo】
- inputs:
- PeriodType( numericsimple ),
-
- PeriodsAgo( numericsimple ),
- oPeriodOpen( numericref ),
- oPeriodHigh( numericref ),
- oPeriodLow( numericref ),
- oPeriodClose( numericref ) ;
- variables:
- var0( 0 ), sess_last_bar(false) ;
- arrays:
- arr0[ 4, 50 ]( -1 ) ;
- sess_last_bar = sessionlastbar;
- condition1 = PeriodsAgo > 50 or BarType > IFF(PeriodType<>0, PeriodType + 1, PeriodType + 2) or BarType > 4 ;
- if condition1 then
- begin
- oPeriodOpen = -1 ;
- oPeriodHigh = -1 ;
- oPeriodLow = -1 ;
- oPeriodClose = -1 ;
- OHLCPeriodsAgo = -1 ;
- end
- else
- begin
-
- if PeriodType = 0 then
- Condition1 = sess_last_bar[1]
- else if PeriodType = 1 then
- Condition1 = Date <> Date[1]
- else if PeriodType = 2 then
- Condition1 = DayOfWeek( Date ) < DayOfWeek( Date[1] )
- else if PeriodType = 3 then
- Condition1 = Month( Date ) <> Month( Date[1] )
- else if PeriodType = 4 then
- Condition1 = Year( Date ) <> Year( Date[1] ) ;
- condition1 = CurrentBar = 1 or Condition1 ;
- if condition1 then
- begin
- var0 = var0 - 1 ;
- if var0 = -1
- then var0 = 50 ;
-
- arr0[ 1, var0 ] = O ;
- arr0[ 2, var0 ] = H ;
- arr0[ 3, var0 ] = L ;
- arr0[ 4, var0 ] = C ;
- end
- else
-
-
- begin
- condition1 = H > arr0[ 2, var0 ] ;
- if condition1 then arr0[ 2, var0 ] = H ;
- condition1 = L < arr0[ 3, var0 ] ;
- if condition1 then arr0[ 3, var0 ] = L ;
- arr0[ 4, var0 ] = C ;
- end ;
-
-
- oPeriodOpen = arr0[ 1, Mod( var0 + PeriodsAgo, 51 ) ] ;
- oPeriodHigh = arr0[ 2, Mod( var0 + PeriodsAgo, 51 ) ] ;
- oPeriodLow = arr0[ 3, Mod( var0 + PeriodsAgo, 51 ) ] ;
- oPeriodClose = arr0[ 4, Mod( var0 + PeriodsAgo, 51 ) ] ;
- OHLCPeriodsAgo = 1 ;
- end ;
-
-
- if false then
- Value1 = OHLCPeriodsAgo[1] ;
复制代码 |
论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
|