MACD問題

  •   431 
  • 最後發表   re  2021 十一月 09
re 發文於   2021/10/30

偉大的小編您好:

我以下的警示模組邏輯是:

1.MACD的DIF在零軸上

2.OSC綠柱轉紅柱

但是我想要加上一個條件就是

均線的5T跟60T交叉,不知道要怎麼加比較好?

直接加一個變數?

 

 

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);

 

if oscValue[1] < 0 and oscValue > 0 and difValue > 0 then ret = 1;

 

 

 

排序方式: 標準 | 最新
XQ小幫手 發文於   2021/11/02

Hello re,

 

您只需要另外計算兩條均線並判斷是否有交錯。

就如同判斷OSC綠轉紅和DIF在0上一樣。

附上警示腳本供您參考。

小幫手另外建議您可以參考官網上的教學區,裡面有XS語法的基礎與應用。

附加文件

re 發文於   2021/11/02

感恩小編!

那如果我想要加上時間條件

就是,我只要每天9:05的時候

符合這個邏輯的跳出來,可以嗎?

 

奇怪的人 發文於   2021/11/03

在開頭加上

if time = 090500 then begin

就是在9點05分時候執行

但如果是要在9點05分後開始持續執行

就要把等於改成大於

  • 按讚來自於
  • AEY9998
XQ小幫手 發文於   2021/11/04

Hello re,

 

您可以參考 奇怪的人 的作法。

需注意XQ的time是Bar開始的時間。

所以如果您使用1分鐘頻率非逐筆的話就會是在該根Bar結束的時候運算,也就是09:06:00以後運算。

如果是逐筆的話就不會有這問題,只要在該分鐘內有交易的話腳本都會運算。

 

感謝 奇怪的人 的熱心回覆。

re 發文於   2021/11/07

謝謝學長回覆!

re 發文於   2021/11/07

if time = 090500 then begin

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);

 

value1 = average(close, 5);

value2 = average(close, 60);

condition1 = value1 cross over value2;  //5期均線向上跨越60期均線 (向下跨越改為 cross under) 

 

if oscValue[1] < 0 and oscValue > 0 and difValue > 0 and condition1 then ret = 1; 

 

小幫手您好:

我加了if時間條件之後,轉譯不成功,請問是用了兩個if的關係嗎?

請協助查看,謝謝

XQ小幫手 發文於   2021/11/09

Hello re,

 

您的 if time = 090500 then begin 在區間結束後需要有end。

附上小幫手修改的警示腳本。

另外您可以參考官網上的教學區,裡面有XS語法的基礎與應用。

附加文件

發表回覆
Close