如何用自編RSI函數(shù)表示RSI值的增大或降低?
作者:開(kāi)拓者 TB 來(lái)源:cxh99.com 發(fā)布時(shí)間:2018年11月24日
-
咨詢內(nèi)容:
完全復(fù)制系統(tǒng)的RSI做了個(gè)自編RSI函數(shù): RSIvalue(length)
在我的一個(gè)交易策略中需要用到“前一根K線的RSI值比前面第二根K線的RSI值變大了”作為判斷條件,
if(RSIvalue[1](length)>RSIvalue[2](length))
{
}
這樣表示可以嗎?
//------------------------------------------------------------------------
// 簡(jiǎn)稱: RSIvalue
// 名稱: 計(jì)算RSI值
// 類別: 用戶函數(shù)
// 類型: 用戶函數(shù)
// 輸出: 數(shù)值型
//------------------------------------------------------------------------
Params
? ? ? ? Numeric Length(14) ;
Vars
? ? ? ? NumericSeries NetChgAvg( 0 );
? ? ? ? NumericSeries TotChgAvg( 0 );
? ? ? ? Numeric SF( 0 );
? ? ? ? Numeric Change( 0 );? ? ? ?
? ? ? ? Numeric ChgRatio( 0 ) ;
? ? ? ? NumericSeries RSIValue;
? ? ? ? NumericSeries CP;
Begin
? ? ? ? CP=Close;
? ? ? ? If(CurrentBar <= Length - 1)
? ? ? ? {
? ? ? ? ? ? ? ? NetChgAvg = ( CP - CP[Length] ) / Length ;
? ? ? ? ? ? ? ? TotChgAvg = Average( Abs( CP - CP[1] ), Length ) ;
? ? ? ? }Else
? ? ? ? {
? ? ? ? ? ? ? ? SF = 1/Length;
? ? ? ? ? ? ? ? Change = CP - CP[1] ;
? ? ? ? ? ? ? ? NetChgAvg = NetChgAvg[1] + SF * ( Change - NetChgAvg[1] ) ;
? ? ? ? ? ? ? ? TotChgAvg = TotChgAvg[1] + SF * ( Abs( Change ) - TotChgAvg[1] ) ;? ? ? ?
? ? ? ? }
? ? ? ?
? ? ? ? If( TotChgAvg <> 0 )
? ? ? ? {
? ? ? ? ? ? ? ? ChgRatio = NetChgAvg / TotChgAvg;
? ? ? ? }else
? ? ? ? {
? ? ? ? ? ? ? ? ChgRatio = 0 ;
? ? ? ? }? ? ? ?
? ? ? ? RSIValue = 50 * ( ChgRatio + 1 );? ? ? ?
? ? ? ? Return RSIValue;
End
//------------------------------------------------------------------------
?
?來(lái)源:CXH99.COM
-
TB技術(shù)人員:
自已頂一下。
或者我將RSI的自編函數(shù)中的Close用Close[1]表示,如下:
//------------------------------------------------------------------------
// 簡(jiǎn)稱: RSIvalue
// 名稱: 計(jì)算RSI值
// 類別: 用戶函數(shù)
// 類型: 用戶函數(shù)
// 輸出: 數(shù)值型
//------------------------------------------------------------------------
Params
? ? ? ? Numeric Length(14) ;
Vars
? ? ? ? NumericSeries NetChgAvg( 0 );
? ? ? ? NumericSeries TotChgAvg( 0 );
? ? ? ? Numeric SF( 0 );
? ? ? ? Numeric Change( 0 );? ? ? ?
? ? ? ? Numeric ChgRatio( 0 ) ;
? ? ? ? NumericSeries RSIValue;
? ? ? ? NumericSeries CP;
Begin
? ? ? ? CP=Close[1];//修改了
? ? ? ? If(CurrentBar <= Length - 1)
? ? ? ? {
? ? ? ? ? ? ? ? NetChgAvg = ( CP - CP[Length] ) / Length ;
? ? ? ? ? ? ? ? TotChgAvg = Average( Abs( CP - CP[1] ), Length ) ;
? ? ? ? }Else
? ? ? ? {
? ? ? ? ? ? ? ? SF = 1/Length;
? ? ? ? ? ? ? ? Change = CP - CP[1] ;
? ? ? ? ? ? ? ? NetChgAvg = NetChgAvg[1] + SF * ( Change - NetChgAvg[1] ) ;
? ? ? ? ? ? ? ? TotChgAvg = TotChgAvg[1] + SF * ( Abs( Change ) - TotChgAvg[1] ) ;? ? ? ?
? ? ? ? }
? ? ? ?
? ? ? ? If( TotChgAvg <> 0 )
? ? ? ? {
? ? ? ? ? ? ? ? ChgRatio = NetChgAvg / TotChgAvg;
? ? ? ? }else
? ? ? ? {
? ? ? ? ? ? ? ? ChgRatio = 0 ;
? ? ? ? }? ? ? ?
? ? ? ? RSIValue = 50 * ( ChgRatio + 1 );? ? ? ?
? ? ? ? Return RSIValue;
End
//------------------------------------------------------------------------
然后if條件可以這樣寫(xiě)了:
if(RSIvalue(length)>RSIvalue(length))
{
}
但我實(shí)際在編譯這個(gè)RSI自編函數(shù)時(shí)無(wú)法通過(guò)編譯(將原RSI中的Close改成Close[1]之后,無(wú)法通過(guò)編譯了)
?
-
TB客服:
自已頂一下。
或者我將RSI的自編函數(shù)中的Close用Close[1]表示,如下:
//------------------------------------------------------------------------
// 簡(jiǎn)稱: RSIvalue
// 名稱: 計(jì)算RSI值
// 類別: 用戶函數(shù)
// 類型: 用戶函數(shù)
// 輸出: 數(shù)值型
//------------------------------------------------------------------------
Params
? ? ? ? Numeric Length(14) ;
Vars
? ? ? ? NumericSeries NetChgAvg( 0 );
? ? ? ? NumericSeries TotChgAvg( 0 );
? ? ? ? Numeric SF( 0 );
? ? ? ? Numeric Change( 0 );? ? ? ?
? ? ? ? Numeric ChgRatio( 0 ) ;
? ? ? ? NumericSeries RSIValue;
? ? ? ? NumericSeries CP;
Begin
? ? ? ? CP=Close[1];//修改了
? ? ? ? If(CurrentBar <= Length - 1)
? ? ? ? {
? ? ? ? ? ? ? ? NetChgAvg = ( CP - CP[Length] ) / Length ;
? ? ? ? ? ? ? ? TotChgAvg = Average( Abs( CP - CP[1] ), Length ) ;
? ? ? ? }Else
? ? ? ? {
? ? ? ? ? ? ? ? SF = 1/Length;
? ? ? ? ? ? ? ? Change = CP - CP[1] ;
? ? ? ? ? ? ? ? NetChgAvg = NetChgAvg[1] + SF * ( Change - NetChgAvg[1] ) ;
? ? ? ? ? ? ? ? TotChgAvg = TotChgAvg[1] + SF * ( Abs( Change ) - TotChgAvg[1] ) ;? ? ? ?
? ? ? ? }
? ? ? ?
? ? ? ? If( TotChgAvg <> 0 )
? ? ? ? {
? ? ? ? ? ? ? ? ChgRatio = NetChgAvg / TotChgAvg;
? ? ? ? }else
? ? ? ? {
? ? ? ? ? ? ? ? ChgRatio = 0 ;
? ? ? ? }? ? ? ?
? ? ? ? RSIValue = 50 * ( ChgRatio + 1 );? ? ? ?
? ? ? ? Return RSIValue;
End
//------------------------------------------------------------------------
然后if條件可以這樣寫(xiě)了:
if(RSIvalue(length)>RSIvalue(length))
{
}
但我實(shí)際在編譯這個(gè)RSI自編函數(shù)時(shí)無(wú)法通過(guò)編譯(將原RSI中的Close改成Close[1]之后,無(wú)法通過(guò)編譯了)
?
-
網(wǎng)友回復(fù):
自已頂一下。
或者我將RSI的自編函數(shù)中的Close用Close[1]表示,如下:
//------------------------------------------------------------------------
// 簡(jiǎn)稱: RSIvalue
// 名稱: 計(jì)算RSI值
// 類別: 用戶函數(shù)
// 類型: 用戶函數(shù)
// 輸出: 數(shù)值型
//------------------------------------------------------------------------
Params
? ? ? ? Numeric Length(14) ;
Vars
? ? ? ? NumericSeries NetChgAvg( 0 );
? ? ? ? NumericSeries TotChgAvg( 0 );
? ? ? ? Numeric SF( 0 );
? ? ? ? Numeric Change( 0 );? ? ? ?
? ? ? ? Numeric ChgRatio( 0 ) ;
? ? ? ? NumericSeries RSIValue;
? ? ? ? NumericSeries CP;
Begin
? ? ? ? CP=Close[1];//修改了
? ? ? ? If(CurrentBar <= Length - 1)
? ? ? ? {
? ? ? ? ? ? ? ? NetChgAvg = ( CP - CP[Length] ) / Length ;
? ? ? ? ? ? ? ? TotChgAvg = Average( Abs( CP - CP[1] ), Length ) ;
? ? ? ? }Else
? ? ? ? {
? ? ? ? ? ? ? ? SF = 1/Length;
? ? ? ? ? ? ? ? Change = CP - CP[1] ;
? ? ? ? ? ? ? ? NetChgAvg = NetChgAvg[1] + SF * ( Change - NetChgAvg[1] ) ;
? ? ? ? ? ? ? ? TotChgAvg = TotChgAvg[1] + SF * ( Abs( Change ) - TotChgAvg[1] ) ;? ? ? ?
? ? ? ? }
? ? ? ?
? ? ? ? If( TotChgAvg <> 0 )
? ? ? ? {
? ? ? ? ? ? ? ? ChgRatio = NetChgAvg / TotChgAvg;
? ? ? ? }else
? ? ? ? {
? ? ? ? ? ? ? ? ChgRatio = 0 ;
? ? ? ? }? ? ? ?
? ? ? ? RSIValue = 50 * ( ChgRatio + 1 );? ? ? ?
? ? ? ? Return RSIValue;
End
//------------------------------------------------------------------------
然后if條件可以這樣寫(xiě)了:
if(RSIvalue(length)>RSIvalue(length))
{
}
但我實(shí)際在編譯這個(gè)RSI自編函數(shù)時(shí)無(wú)法通過(guò)編譯(將原RSI中的Close改成Close[1]之后,無(wú)法通過(guò)編譯了)
?
-
網(wǎng)友回復(fù):
自已頂一下。
或者我將RSI的自編函數(shù)中的Close用Close[1]表示,如下:
//------------------------------------------------------------------------
// 簡(jiǎn)稱: RSIvalue
// 名稱: 計(jì)算RSI值
// 類別: 用戶函數(shù)
// 類型: 用戶函數(shù)
// 輸出: 數(shù)值型
//------------------------------------------------------------------------
Params
? ? ? ? Numeric Length(14) ;
Vars
? ? ? ? NumericSeries NetChgAvg( 0 );
? ? ? ? NumericSeries TotChgAvg( 0 );
? ? ? ? Numeric SF( 0 );
? ? ? ? Numeric Change( 0 );? ? ? ?
? ? ? ? Numeric ChgRatio( 0 ) ;
? ? ? ? NumericSeries RSIValue;
? ? ? ? NumericSeries CP;
Begin
? ? ? ? CP=Close[1];//修改了
? ? ? ? If(CurrentBar <= Length - 1)
? ? ? ? {
? ? ? ? ? ? ? ? NetChgAvg = ( CP - CP[Length] ) / Length ;
? ? ? ? ? ? ? ? TotChgAvg = Average( Abs( CP - CP[1] ), Length ) ;
? ? ? ? }Else
? ? ? ? {
? ? ? ? ? ? ? ? SF = 1/Length;
? ? ? ? ? ? ? ? Change = CP - CP[1] ;
? ? ? ? ? ? ? ? NetChgAvg = NetChgAvg[1] + SF * ( Change - NetChgAvg[1] ) ;
? ? ? ? ? ? ? ? TotChgAvg = TotChgAvg[1] + SF * ( Abs( Change ) - TotChgAvg[1] ) ;? ? ? ?
? ? ? ? }
? ? ? ?
? ? ? ? If( TotChgAvg <> 0 )
? ? ? ? {
? ? ? ? ? ? ? ? ChgRatio = NetChgAvg / TotChgAvg;
? ? ? ? }else
? ? ? ? {
? ? ? ? ? ? ? ? ChgRatio = 0 ;
? ? ? ? }? ? ? ?
? ? ? ? RSIValue = 50 * ( ChgRatio + 1 );? ? ? ?
? ? ? ? Return RSIValue;
End
//------------------------------------------------------------------------
然后if條件可以這樣寫(xiě)了:
if(RSIvalue(length)>RSIvalue(length))
{
}
但我實(shí)際在編譯這個(gè)RSI自編函數(shù)時(shí)無(wú)法通過(guò)編譯(將原RSI中的Close改成Close[1]之后,無(wú)法通過(guò)編譯了) |