2009年9月8日 星期二

在K線圖上顯示進出價位(HTS)


延續之前提過有特殊商業需求的「到期提醒」功能。今天來做一個自用的訊號進出場價位在圖面上提示的功能。

這段程式只要加在自己的買賣訊號程式最末端即可,相關的顯示價位數字的位置可自行調整其中參數。藍色的部份則需放在變數宣告區,程式碼如下:

VAR:TXT_onChart(0),TXT_Content("0")

Value97=MarketPosition
if Value97<>Value97[1] then
TXT_Content = NumToStr( iff( Value97=0, ExitPrice(0), EntryPrice(0) ),0 )
TXT_onChart = TXT_New(Date , Time, iff(Value97>Value97[1], L-105, H+95) Points,"")
TXT_SetString(TXT_onChart, TXT_Content)
TXT_SetStyle(TXT_onChart, 2, 2)
TXT_SetColor(TXT_onChart, DarkMagenta)
end if

得到下圖這樣的效果:



控制把點位數字顯示位置的就在以上程式碼裡的這一行中:
TXT_onChart = TXT_New(Date , Time, iff(Value97>Value97[1], L-105, H+95) Points,"")
主要從L-105(最低價往下105個點)與H+95(最高價往上95個點)去做出來的,什麼點?我也還不知道。

目前我沒找到很好很聰明的顯示位置的定義方式,這樣的方式會受到圖面縮放時的影響,而使得顯示數字的位置不盡理想,還希望各位有更好的方式可以一起分享。

==================================

98/09/09 追加修改:在網友 z2452002 的分享下這個方式可以得到更好的畫面效果,不會因為畫面縮放而使顯示數值位置跑掉了。以下為修改後的程式碼。

//在圖面上顯示進出點價位
Value100=MarketPosition
if Value100<>Value100[1] then
TXT_Content = NumToStr( iff( Value100=0, ExitPrice(0), EntryPrice(0) ),0 )


TXT_onChart = TXT_New(Date , Time, iff(Value100>Value100[1], L, H) Points,"")
TXT_SetString(TXT_onChart,iff(Value100>Value100[1],"|n"+"|n"+"|n"+"|n"+"|n"+"|n"+"|n"+TXT_Content,TXT_Content+"|n"+"|n"+"|n"+"|n"+"|n"+"|n"))
TXT_SetStyle(TXT_onChart, 2, 2)
TXT_SetColor(TXT_onChart, Yellow)
end if

**************************************
相同功能在 MulriCharts 上:http://www.yctseng.net/2011/07/k.html

熱門文章