假設想使用20分鐘線篩選 CCI位置
請問該如何寫呢
感謝
JL01 您好
如果您是在20分K 頻率下進行的話
那只要使用 CCI 的函式就可以了
以下附上該函式介紹連結
https://xshelp.xq.com.tw/XSHelp/?HelpName=CommodityChannel&group=TECHINDEXFUNC
----------
如果您是要跨頻率做使用的話
需要自行修改CCI 函數的內容變成自訂函數
以下為CCI的公式 請將"開高低收"修改成您要的頻率
SetBarMode(2);
// CommodityChannel function (for CCI指標)
//
input: length(numericsimple);
variable: avgtp(0);
variable: idx(0);
variable: sumDist(0);
avgtp = average(High + Low + Close, length);
sumDist = 0;
for idx = 0 to length - 1
begin
sumDist = sumDist + AbsValue(avgtp[idx] - (High + Low + Close)[idx]);
end ;
sumDist = sumDist / length;
if sumDist <> 0 then
CommodityChannel = (High + Low + Close - avgtp) / (0.015 * sumDist)
else
CommodityChannel = 0;
請問 請將"開高低收"修改成您要的頻率 這是什麼意思
另外若要30分K 做這個公式 我該怎麼改呢
請問您是要跨頻率做使用嗎?
EX 20分K 抓 日K CCI
30分K and 抓30分鐘的CCI值
謝謝
JL01 您好
1. 30分K的話 直接用CCI函數就可以了
2. 意思是說,您必須自訂一個函數,
並修改裡面的參數 像是這樣
SetBarMode(2);
// CommodityChannel function (for CCI指標)
//
input: length(numericsimple);
variable: avgtp(0);
variable: idx(0);
variable: sumDist(0);
avgtp = average(GetField("最高價","30") + GetField("最低價","30") + GetField("收盤價","30"), length);
sumDist = 0;
for idx = 0 to length - 1
begin
sumDist = sumDist + AbsValue(avgtp[idx] - (GetField("最高價","30") + GetField("最低價","30") + GetField("收盤價","30"))[idx]);
end ;
sumDist = sumDist / length;
if sumDist <> 0 then
CommodityChannel = (GetField("最高價","30") + GetField("最低價","30") + GetField("收盤價","30") - avgtp) / (0.015 * sumDist)
else
CommodityChannel = 0;
5 評論