設定90日最低點為波段低點並以波段低點為起點尋找末跌高(第一個轉折高點),但是始終跑出來的轉折高點都是以今天開始的最近一期轉折高而非低點開始的最新一期轉折高.
請問:該如何正確的編輯?時間該如何設定?
// 尋找最近90日的最低點並設置為波段低點
Vars: lowestPriceIdx(0), lowestPrice(0), swingHighIdx(0), keyPrice(0);
// 找出最近90日內的最低點
lowestPriceIdx = LowestBar(Low, 90);
lowestPrice = Low[lowestPriceIdx]; // 記錄波段低點的價格
outputField1(Date[lowestPriceIdx], "波段低點日期"); // 標記波段低點日期
outputField2(lowestPrice, "波段低點價格"); // 標記波段低點價格
Vars: startDate(0), endDate(0);
// 設定搜尋轉折高的起點和結束日期
startDate = Date[lowestPriceIdx]; // 波段低點日期往前20日
endDate = DateAdd(Date[lowestPriceIdx], "D", -20); // 波段低點日期作為結束日期
value1 = SwingHighBar(High, 20, 2, 2, 1);
if value1 = -1 then begin
outputField5("未找到轉折高點"); // 標記未找到轉折高點的情況
end;
if value1 >= 0 then begin // 確保找到轉折高點後再進行操作
keyPrice = High[value1]; // 記錄轉折高點的價格,並設置為關鍵價位
outputField3(Date[value1], "轉折高點日期"); // 標記轉折高點日期
outputField4(keyPrice, "關鍵價位"); // 標記關鍵價位
// 選股條件: 今日收盤價大於轉折高點,且昨天收盤小於等於轉折高點
If Close > keyPrice And Close[1] <= keyPrice Then Begin
Ret = 1;
End Else Ret = 0;
end;
4 評論