發現個goto 很奇怪的問題 [金字塔]
- 咨詢內容:
if 金叉=0 then goto 沒金叉@;
if 金叉>0 && h>h[金叉時間] then 金叉:=0;
if 金叉>0 && l<if(barslast(破頂)>5,l[金叉時間+1],l[金叉時間+1]-2*MINDIFF) && 突破>0 then begin 突破:=-1; 金叉:=0; end沒金叉@;
上面的程序,沒注釋掉第一句goto時,當全局變量“金叉=1”時,第3行里的“if(barslast(破頂)>5”執行效果大于號反過來了;注釋掉第一行后,執行效果是正確的。也就是說,有用goto時,把第2行里改成“if(barslast(破頂)<5”執行就恢復為沒用goto時的正確結果。
于是我用DRAWNUMBER顯示barslast(破頂)數值,發現也是對的,就是大于號的邏輯出錯。
- 金字塔客服:
大于號肯定是沒問題的,樓主可以不可以發一個完整的能夠重現你認為的問題的代碼出來讓我們看看
- 用戶回復:
不應該是goto語句導致的,goto只能起到跳轉作用。還請樓主詳細檢查一下自己的代碼。
- 網友回復:
問題主要出在下面這句話上,因為你把他放在了GOTO語句的后面,會因為前面的跳轉語句影響到后面的統計,如果你在逐K線模式下運行,那么你必須要進行改進
barslast(破頂)>5
改進如下:
AA:=barslast(破頂)>5;
if 金叉=0 then goto 沒金叉@;
if 金叉>0 && h>h[金叉時間] then 金叉:=0;
if 金叉>0 && l<if(AA,l[金叉時間+1],l[金叉時間+1]-2*MINDIFF) && 突破>0 then begin 突破:=-1; 金叉:=0; end沒金叉@;
保證含有統計類的函數在條件跳轉語句之前能夠正常計算即可
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 262069696 進行 有償 編寫!(不貴!點擊查看價格!)
- 上一篇:實際持倉問題
- 下一篇:怎么表示5日內成交量的最大值
相關文章
-
指定的模型還沒有相關內容!