有熱心的前輩願意指導語法的問題嗎?

  •   201 
  • 最後發表   吉星  2024 一月 02
吉星 發文於   2024/01/01

 

問題是:如何想找最近第一次轉為綠柱當天;再取得當天的布林通道寬度

//MACD
input: FastLength(12), SlowLength(26), MACDLength(9);
variable: difValue(0), macdValue(0), oscValue(0);
SetTotalBar((maxlist(FastLength,SlowLength,6) + MACDLength) * 4);
SetInputName(1, "DIF短期期數");
SetInputName(2, "DIF長期期數");
SetInputName(3, "MACD期數");
MACD(weightedclose(), FastLength, SlowLength, MACDLength, difValue, macdValue, oscValue);

//布林通道
input: Length(20), UpperBand(2), LowerBand(2), EMALength(3);
variable: up(0), down(0), mid(0), bbandwidth(0), ema(0);
SetInputName(1, "天數");
SetInputName(2, "上");
SetInputName(3, "下");
SetInputName(4, "EMA");
up = bollingerband(Close, Length, UpperBand);
down = bollingerband(Close, Length, -1 * LowerBand);
mid = (up + down) / 2;
bbandwidth = 100 * (up - down) / mid;
ema = XAverage(bbandwidth, EMALength);

value7 = BarsLast(difValue Crosses Below macdValue);   // 1. 先找最近一次的第一支dif轉為綠柱為A日
value8=((up-down),value7);//2.想取得A日當天的上下布林通道寬度
IF close cross Over up //收盤穿過上軌
And close > highest (high[1],3) //收盤高於三天的高點
and close > open
‧‧‧‧‧‧‧‧‧‧
以上編緝在value8就出現錯誤:
34行號18字元在 "," 之前可能少了")", "DOWNTO", "TO", "OR", "XOR", "AND", "=", "<>", "<", ">", "<=", ">=", "Crosses Above", "Crosses Over", "Crosses Below", "Crosses Under", "+", "-", "*", "/"。

 

 

排序方式: 標準 | 最新
GammaCEO 發文於   2024/01/02

應該是 if value7=1 then value8=up-down;吧

沒猜錯的話....

吉星 發文於   2024/01/02

感謝你的回應,但我覺得 if value7=1 then value8=up-down;此段的布林寬度應該不是第一次轉為綠柱當天的布林寬度?

 

GammaCEO 發文於   2024/01/02

那應該是看你宣告的讀取筆數是多少吧

不確定的話直接PLOT劃出來比對就知道了

改成條件式觸發 if dif[1]>0 and dif<0 then value8=up-down;也能試試

吉星 發文於   2024/01/02

謝謝大大的指導,這段語法 if value7=1 then value8=up-down; 應該是對的,

不過取的的布林寬度值,是已轉為綠柱的第二根,不是第一根綠柱的布林寬度。

後來試修正  if value7=1 then value8=(up-down)[1]; 已符合。

謝謝你!

發表回覆
Close