FAQ

為了檢測游標的位置,需在「ChartSetInteger」使用「CHART_EVENT MOUSE_MOVE」進行宣言。在OnInit函數下的「SetIndexBuffer(0,MA);」下方,如以下所示寫入編碼。

ChartSetInteger(0, CHART_EVENT_MOUSE_MOVE, true);
接著,在OnChartEvent函數旗下寫入移動滑鼠的處理動作。首先以「ChartXYToTimePrice」,將游標的XY座標變更為價格與時間資訊。X座標為「lparam」、Y座標為「dparam」。取得游標位置的時間之後,以「iBarShift」取得該時間的K線數量與位置。

if (id == CHARTEVENT_MOUSE_MOVE) {

datetime time;

double price;

int win = 0;

ChartXYToTimePrice(0, (int)lparam, (int)dparam, win, time, price);

int bar = iBarShift(NULL, 0, time);
其後,將取得該游標位置的移動平均線資訊。具體來說,應取得移動平均線的2個點,並從該處得出角度。使用將圖表時間與價格變更為XY座標的「ChartTimePriceToXY」,第1點為K線位置,故寫入x[0]與y[0] ;第2點為前一個點,因此依樣寫入x[1]與y[1] 。

int x[2], y[2];

ChartTimePriceToXY(0, 0, Time[bar], MA[bar], x[0], y[0]);

ChartTimePriceToXY(0, 0, Time[bar + 1], MA[bar + 1], x[1], y[1]);
如此即可取得2個點。