2018年5月21日 星期一

MC-SAR語法分析

延續上篇作業
先來分解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

沒有留言:

張貼留言