請教: day open-hi-lo lines指標
這個指標是mc 自帶的, 會把當天的open, high, low 晝一條水平線出來, 看coding 時有些看不太懂, 有沒有高人可解釋一下呢?問題1:
var1 = TL_New( Date, Time, var4, Date, Time, var4 ) ;
既然TL_New 已經定義了趨勢線的起點和終點, 那為什麼還有下面這3個呢{:4_144:} :
TL_SetEnd( var1, Date, Time, var4 ) ;
TL_SetExtLeft( var1, false ) ;
TL_SetExtRight( var1, true ) ;
問題2:if Time <> var7 then
begin
var8 = var7 ;
var7 = Time ;
end ;
這段看來是要把var7 keep 在"現在"(Time), 但有什麼用呢{:4_144:}
問題3:
TL_SetEnd( var3, Date, Time, var6 ) ;
TL_SetBegin( var3, Date, var8, var6 ) ;
End 的位置應該是今天吧? 那趨勢線不是會由昨天晝至今天嗎? 但為主又只會見到晝至昨天收市而沒有bug 呢{:4_144:}
不好意思有點煩, 但我自己看的懂也不會想煩人了, 請指教{:4_160:}
原始碼如下:
====================================================
inputs:
OpenColor( Red ),
HighColor( Yellow ),
LowColor( Cyan ),
DataNum( 1 ) ;
variables:
var0( false ),
var1( 0 ),
var2( 0 ),
var3( 0 ),
var4( 0 ),
var5( 0 ),
var6( 0 ),
intrabarpersist var7( 0 ),
intrabarpersist var8( 0 ) ;
if BarType <= 1 then //confirm intraday bar
begin
condition1 = Date <> Date and BarStatus( DataNum ) = 2 ;
if condition1 then
begin
if var0 then
begin
TL_SetEnd( var1, Date, Time, var4 ) ;//TL_SetEnd 設置指定趨勢線的終點
TL_SetEnd( var2, Date, Time, var5 ) ;
TL_SetEnd( var3, Date, Time, var6 ) ;
TL_SetExtRight( var1, false ) ;//TL_SetExtRight 設置指定趨勢線是否向右延伸
TL_SetExtRight( var2, false ) ;
TL_SetExtRight( var3, false ) ;
end ;
var4 = Open ;
var5 = High ;
var6 = Low ;
var7 = Time ;
var8 = Time ;
var1 = TL_New( Date, Time, var4, Date, Time, var4 ) ;//TL_New (sDate, sTime, sPriceValue, eDate, eTime, ePriceValue)
var2 = TL_New( Date, Time, var5, Date, Time, var5 ) ;
var3 = TL_New( Date, Time, var6, Date, Time, var6 ) ;
TL_SetColor( var1, OpenColor ) ;
TL_SetColor( var2, HighColor ) ;
TL_SetColor( var3, LowColor ) ;
TL_SetExtLeft( var1, false ) ;
TL_SetExtLeft( var2, false ) ;
TL_SetExtLeft( var3,false ) ;
TL_SetExtRight( var1, true ) ;
TL_SetExtRight( var2, true ) ;
TL_SetExtRight( var3, true ) ;
if var0 = false then
var0 = true ;
end
else if var0 = true then
begin
if Time <> var7 then
begin
var8 = var7 ;
var7 = Time ;
end ;
if High > var5 then
begin
var5 = High ;
TL_SetEnd( var2, Date, Time, var5 ) ;
TL_SetBegin( var2, Date, var8, var5 ) ;
end ;
if Low < var6 then
begin
var6 = Low ;
TL_SetEnd( var3, Date, Time, var6 ) ;
TL_SetBegin( var3, Date, var8, var6 ) ;
end ;
end ;
end
else
RaiseRunTimeError( "Day Open-Hi-Lo Lines requires intraday bars." ) ; 問題1:
var1 = TL_New( Date, Time, var4, Date, Time, var4 ) ;
既然TL_New 已經定義了趨勢線的起點和終點, 那為什麼還有下面這3個呢 :
TL_SetEnd( var1, Date, Time, var4 ) ;
TL_SetExtLeft( var1, false ) ;
TL_SetExtRight( var1, true ) ;
<==簡單說,TL已經new了,但後面若要更改它的結束位置就是用TL_SetEnd;而TL_SetExtLeft及TL_SetExtRight就是設定
趨勢線是否向左右延伸出去..
問題2:if Time <> var7 then
begin
var8 = var7 ;
var7 = Time ;
end ;
<==這段看來是要把var7 keep 在"現在"(Time), 但有什麼用呢
用在後面有一段if Time <> var7 then是在比較現在時間是否不等於現在時間時,把現在時間給var7把前一個符合條件的時間給var8
問題3:
TL_SetEnd( var3, Date, Time, var6 ) ;
TL_SetBegin( var3, Date, var8, var6 ) ;
End 的位置應該是今天吧? 那趨勢線不是會由昨天晝至今天嗎? 但為主又只會見到晝至昨天收市而沒有bug 呢
<==在前面condition1 = Date <> Date這段裡就有重設相關變數的數值!
所以不會劃到昨天去喔...XD {:4_93:} 大大, 謝謝你, 你太強了{:4_160:}
那如果不想改變tl_new, 就不用後面那些TL_SetEnd,TL_SetExtLeft,TL_SetExtRight 了?
唉, 看的懂也這麼困難, 何時才懂修改和寫指標呀{:4_155:}
頁:
[1]