黃金交叉創新高 警示回測跑不出來

  •   91 
  • 最後發表   paulpaul  2022 二月 08
paulpaul 發文於   2022/01/28

value1=average(close,5);//5日均線

value2=average(close,10);//10日均線

value7=barslast(value1 cross over value2);//上次黃金交叉距今期數

variable: n(0);

variable: count(0);

variable:HH(0);

if  close<value2 and value1>value2 then Begin  //收盤小於10均

//執行迴圈,檢查過去黃金交叉有無破新高4次以內

   HH=SimpleHighest(high,value7);

   n=HighestBar(high,value7);

while n<value7 begin//以下的陳述(到end;為止),n=1執行一次,n=2執行一次,一直到n=剛黃金交叉

if HH>high[n+1]

then  begin 

       count=count+1;

       HH=high[n+1];

  end;

   n=n+1;

 

end;

 

//設定警示條件:if.. then ret=1;

if count<=4

then ret=1;

end; 

 

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

Hello paulpaul,

 

您可以使用print函數來檢查腳本中的運算是否正確。

如果您將count print出來的話,可以看到count在資料讀取筆數運算時就已經突破4了,所以 if count<=4 不會符合。

須注意count函數每次腳本執行時都要重置,所以您在迴圈開始前應該要加一行 count = 0;。

另外您的 HH 是上次黃金交叉到當下的最高點,換句話說,也就是這段區間內的所有價格都會小於等於 HH。

小幫手不確定迴圈內的計算是否符合您所謂的 破新高4次。

 

  • 按讚來自於
  • 賴若樸
paulpaul 發文於   2022/02/08
發表回覆
Close