MACD零軸上金叉

  •   428 
  • 最後發表   Jeff chou  2024 十一月 01
Jeff chou 發文於   2024/10/31

請幫我確認XQ的程式,Macd在0軸上作一次黃金交叉且5日內收盤價要在60日均線以上,以及收盤價要在20日均線以下的程式碼,為什麼找不到股票

// 設定參數

input: fastLength(12), slowLength(26), MACDLength(9), smaLength(20), volumeLength(60), checkDays(5);

// 計算 MACD

variable: difValue(0), macdValue(0), oscValue(0); MACD(weightedclose(), fastLength, slowLength, MACDLength, difValue, macdValue, oscValue);

// 計算均線

var: sma20(0), sma60(0); sma20 = Average(close, smaLength); sma60 = Average(close, volumeLength);

// 檢查近5日的收盤價是否在60日均線以上

var: isAboveSMA60(true); for value1 = 1 to checkDays begin if (close[value1] <= sma60) then isAboveSMA60 = false; end;

// 檢查條件

if (difValue > 0 and difValue crosses above macdValue and isAboveSMA60) then begin if (close < sma20) then begin;

end;

end;

排序方式: 標準 | 最新
虎科大許教授 發文於   2024/10/31

程式跑迴圈,太沒效率,而且容易出錯。用下列腳本試試看,若還是找不到股票的話,可能是條件太嚴格。

 

setTotalBar(300);
input: fastLength(12), slowLength(26), MACDLength(9), smaLength(20), volumeLength(60), checkDays(5);
var: difValue(0), macdValue(0), oscValue(0);
var: sma20(0), sma60(0); 
MACD(weightedclose(), fastLength, slowLength, MACDLength, difValue, macdValue, oscValue);
sma20 = Average(close, smaLength);
sma60 = Average(close, volumeLength);
condition1=difValue > 0 and difValue crosses above macdValue;
condition2=trueAll(c>sma60,checkDays);
condition3=c<sma20;
if condition1 and condition2 and condition3 then ret=1;

Jeff chou 發文於   2024/11/01

有選出來了,非常謝謝

發表回覆
Close