COCO研究院

 找回密碼
 註冊
搜索
查看: 26375|回復: 4

請問 MT4 Chart 圖中文字定位的問題

[複製鏈接]
發表於 17-7-15 16:58 | 顯示全部樓層 |閱讀模式
請問圖中,我可以顯示第一行文字,

文字第一行顯示

文字第一行顯示

因為 charts 中文字定位只有
ANCHOR_LEFT_UPPER
Anchor point at the upper left corner
ANCHOR_LEFT
Anchor point to the left in the center
ANCHOR_LEFT_LOWER
Anchor point at the lower left corner
ANCHOR_LOWER
Anchor point below in the center
ANCHOR_RIGHT_LOWER
Anchor point at the lower right corner
ANCHOR_RIGHT
Anchor point to the right in the center
ANCHOR_RIGHT_UPPER
Anchor point at the upper right corner
ANCHOR_UPPER
Anchor point above in the center
ANCHOR_CENTER
Anchor point strictly in the center of the object

現在我在每一點,想要顯示第二行文字,

請問要如何處理,
發表於 17-7-15 19:30 | 顯示全部樓層
感謝kuolung大大分享
發表於 17-7-16 09:01 | 顯示全部樓層
感謝分享 期待高手解答
發表於 17-7-21 16:30 | 顯示全部樓層
這是之前接一個客制委託指標的設計,如同你的需求委託條件需要有兩行顯示在 K 棒上下。

QQ截图20170721160742.png

如果要定位文字顯示在 K 棒上下可以用 K 棒時間和價格兩個值來定位,用 OBJ_TEXT 的設計方式比較便利。

OBJ_TEXT 調用範例在 MQL4 官網上可以找到,應該 default 就是置中,或是 Anchor 設 ANCHOR_UPPER,
也可以設不同角度旋轉。

要定位到第二行的行距離,先取圖表右邊最大價格減最小價格的價格距離,這樣設計會保證不同週期的
圖表價格範圍不同也能夠動態調整,然後再除以當前圖表寬的像素。

   dPixelToPriceRatio=(ChartGetDouble(0,CHART_PRICE_MAX)-ChartGetDouble(0,CHART_PRICE_MIN))/(double)ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS);


把你要顯示第二行的距離像素例如字體是14點再加3點行距=17點乘以上面公式得到的像素轉價格比例,
然後再加到顯示第一行用的價格位置就會正確定位第二行。

ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS) 這個函數取回來的是整數,需要前面加(double)轉換,不然
直接除以整數得到像素價格比例轉換值就會錯誤,因為圖表最大最小範圍的價格差距如果是在貨幣商品通常
是很小的值。


上面的圖示是 MT4 指標,不是 MT5 指標。彩色 Zigzag 在 MT5 指標設計很單純,因為有現成的 MT5 彩色 Zigzag
選項可以選擇,在 MT4 不能直接用 MT4 版的 DRAW_SECTION 因為永遠是單色的,需要用其他方式來設計變色
有斷點的線性設計,不過如果不是商用銷售的指標,不需這麼麻煩的設計,如果是個人使用用簡單的設計即可。 



 樓主| 發表於 17-7-22 07:37 | 顯示全部樓層
謝謝,解惑,果然能解決我的問題
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-4-19 23:29

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 | AI繪圖AI超擬真美女AI beauty AI Stable DiffusionAI正妹AI Lookbook