先來分解SAR語法每句的含意....再來想看看怎樣將DMI加進去當濾網
---------------------------------------------------------
ParabolicSAR // MC定義函數的語法
inputs: //input為宣告參數的值
AfStep( numericsimple ),
AfLimit( numericsimple ),
oParCl( numericref ),
oParOp( numericref ),
oPosition( numericref ),
oTransition( numericref ) ;
//
numericsimple 數字型態 時序 可取歷史值
numericref 數字型態 傳址 可回傳
//
variables: // variables為宣告變數的值
var0( 0 ),
var1( 0 ),
var2( 0 ) ;
if CurrentBar = 1 then //如果K棒編號 = 1 (滿足條件)
begin
oParOp = High ; //
oPosition = -1 ;
var0 = High ;
var1 = Low ;
end ;
oTransition = 0 ;
if High > var0 then var0 = High ;
if Low < var1 then var1 = Low ;
if oPosition = 1 then
begin
if Low <= oParOp then
begin
oPosition = -1 ;
oTransition = -1 ;
oParCl = var0 ;
var0 = High ;
var1 = Low ;
var2 = AfStep ;
oParOp = oParCl + var2 * ( var1 - oParCl ) ;
if oParOp < High then oParOp = High ;
if oParOp < High[1] then oParOp = High[1] ;
end
else
begin
oParCl = oParOp ;
condition1 = var0 > var0[1] and var2 < AfLimit ;
if condition1 then
var2 = MinList( var2 + AfStep, AfLimit ) ;
oParOp = oParCl + var2 * ( var0 - oParCl ) ;
if oParOp > Low then oParOp = Low ;
if oParOp > Low[1] then oParOp = Low[1] ;
end ;
end
else
begin
if High >= oParOp then
begin
oPosition = 1 ;
oTransition = 1 ;
oParCl = var1 ;
var0 = High ;
var1 = Low ;
var2 = AfStep ;
oParOp = oParCl + var2 * ( var0 - oParCl ) ;
if oParOp > Low then oParOp = Low ;
if oParOp > Low[1] then oParOp = Low[1] ;
end
else
begin
oParCl = oParOp ;
condition1 = var1 < var1[1] and var2 < AfLimit ;
if condition1 then
var2 = MinList( var2 + AfStep, AfLimit ) ;
oParOp = oParCl + var2 * ( var1 - oParCl ) ;
if oParOp < High then oParOp = High ;
if oParOp < High[1] then oParOp = High[1] ;
end ;
end ;
ParabolicSAR = 1 ; //總結會變成下面呼叫函數時的值,中間公式太複雜了........
Value1 = ParabolicSAR(*,*,.....)
----------------------------------------------------------
SAR //下面是MC內建SAR的指標
inputs: AfStep( 0.02), AfLimit( 0.2 ) ; //input為宣告參數的值
variables: var0( 0 ), var1( 0 ), var2( 0 ), var3( 0 ), var4( "" ) ; // variables為宣告變數的值,var4=顯示'字串'
Value1 = ParabolicSAR( AfStep, AfLimit, var0, var1, var2, var3 ) ;
//var0 =畫線 ;var1 =高 ;var2 =低 var3=正多負空 應該是這樣沒錯...
Plot1( var0, "ParCl" ) ; // Plot1=指標畫線 (var0, "名稱")

{
if var3 = 1 then
Alert( "Bullish reversal" ) //牛市反轉
else if var3 = -1 then
Alert( "Bearish reversal" ) ;//熊市逆轉
}
如果少了這一段線還是畫得出來耶......甚麼鬼阿?
消化中.....5/21
沒有留言:
張貼留言